]> git.pld-linux.org Git - packages/poldek.git/blame_incremental - poldek.spec
correct comment for th-snap-all
[packages/poldek.git] / poldek.spec
... / ...
CommitLineData
1#
2# Conditional build:
3%bcond_with static # don't use shared libraries
4%bcond_without imode # don't build interactive mode
5%bcond_without python # don't build python bindings
6%bcond_with snap # install configs for official Th snapshot
7%bcond_with db61 # DB 6.1 instead of 5.2
8%bcond_with rpm4 # use rpm4/db4.7 instead of rpm5
9
10# current snapshot name
11%define SNAP 2014
12
13# required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
14# NOTE: poldek links with "system db" (-ldb) anyway if it exists
15%if %{with db61}
16%define db_pkg db6.1
17%define ver_db 6.1
18%define ver_db_rel 1
19%else
20%define db_pkg db5.2
21%define ver_db 5.2
22%define ver_db_rel 3
23%endif
24
25%if %{with rpm4}
26%define ver_db 4.7.25
27%define ver_db_rel 1
28%define ver_rpm 4.5-49
29%else
30%define ver_rpm 5.4.10
31%endif
32
33%define rel 5
34Summary: RPM packages management helper tool
35Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
36Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
37Name: poldek
38Version: 0.30.1
39Release: %{rel}%{?with_snap:.%{SNAP}}
40License: GPL v2
41Group: Applications/System
42#Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
43Source0: http://carme.pld-linux.org/~megabajt/releases/poldek/%{name}-%{version}.tar.xz
44# Source0-md5: e569c8454df0932df53b09cee9998927
45Source1: %{name}.conf
46Source2: %{name}-multilib.conf
47Source5: %{name}-aliases.conf
48Source6: %{name}.desktop
49Source7: %{name}.png
50Source8: %{name}-debuginfo.conf
51Source9: %{name}-aidath.conf
52Source10: %{name}-multilib-aidath.conf
53Source11: %{name}-archive.conf
54Source100: %{name}-snap.conf
55Source101: %{name}-multilib-snap.conf
56Source102: %{name}-debuginfo-snap.conf
57Patch0: %{name}-size-type.patch
58Patch1: %{name}-config.patch
59Patch2: %{name}-missing-include.patch
60URL: http://poldek.pld-linux.org/
61BuildRequires: %{db_pkg}-devel >= %{ver_db}-%{ver_db_rel}
62BuildRequires: autoconf
63BuildRequires: automake >= 1:1.11
64BuildRequires: bzip2-devel
65BuildRequires: check-devel
66BuildRequires: docbook-dtd412-xml
67BuildRequires: gettext-tools
68BuildRequires: libtool
69BuildRequires: libxml2-devel
70BuildRequires: neon-devel
71BuildRequires: openssl-devel >= 0.9.7d
72BuildRequires: pcre-devel
73BuildRequires: pkgconfig
74BuildRequires: popt-devel
75%{?with_python:BuildRequires: python-devel}
76BuildRequires: readline-devel >= 5.0
77BuildRequires: rpm-devel >= %{ver_rpm}
78%{?with_python:BuildRequires: rpm-pythonprov}
79BuildRequires: swig-python
80BuildRequires: tar >= 1:1.22
81BuildRequires: xmlto
82BuildRequires: xz
83BuildRequires: zlib-devel
84%if %{with static}
85BuildRequires: %{db_pkg}-static >= %{ver_db}-%{ver_db_rel}
86BuildRequires: bzip2-static
87BuildRequires: glibc-static
88BuildRequires: libxml2-static
89BuildRequires: ncurses-static
90BuildRequires: openssl-static
91BuildRequires: pcre-static
92BuildRequires: popt-static
93BuildRequires: readline-static
94BuildRequires: rpm-static
95BuildRequires: zlib-static
96%endif
97Requires(triggerpostun): awk
98Requires(triggerpostun): sed >= 4.0
99Requires: %{db_pkg} >= %{ver_db}-%{ver_db_rel}
100Requires: %{name}-libs = %{version}-%{release}
101Requires: rpm >= %{ver_rpm}
102Requires: rpm-db-ver = %{ver_db}
103Requires: rpm-lib >= %{ver_rpm}
104# vf* scripts use sed
105Requires: sed
106BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
107
108%define _libexecdir %{_prefix}/lib/%{name}
109
110%description
111poldek is an RPM package management tool which allows you to easily
112perform package verification, installation (including system
113installation from scratch), upgrading, and removal.
114
115Program can be used in batch (like apt-get from Debian's APT) or
116interactive mode. The interactive mode puts you into a readline
117interface with command line autocompletion and history, similar to the
118shell mode of Perl's CPAN.
119
120%{?with_static:This version is statically linked.}
121
122%{!?with_imode:This version hasn't got interactive mode.}
123#'vim
124
125%description -l hu.UTF-8
126poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
127csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
128nulláról), frissítést és eltávolítást.
129
130A program használható parancssorból (mint a Debian apt-get programja)
131vagy interaktív módban. Az interaktív mód egy readline környezetet
132jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
133shell módjához.
134
135%{?with_static:Ez a verzió statikusan linkelt.}
136
137%{!?with_imode:Ennek a verziónak nincs interaktív módja.}
138
139%description -l pl.UTF-8
140poldek jest narzędziem linii poleceń służącym do weryfikacji,
141instalacji (włączając instalację systemu od zera), aktualizacji i
142usuwania pakietów.
143
144Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
145interaktywnym. Tryb interaktywny posiada interfejs readline z
146dopełnianiem komend i historią, podobny do trybu shell perlowego
147modułu CPAN.
148
149%{?with_static:Ta wersja jest konsolidowana statycznie.}
150
151%{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
152
153%package libs
154Summary: poldek libraries
155Summary(hu.UTF-8): A poldek könyvtárai
156Summary(pl.UTF-8): Biblioteki poldka
157Group: Libraries
158
159%description libs
160poldek libraries.
161
162%description libs -l hu.UTF-8
163A poldek könyvtárai.
164
165%description libs -l pl.UTF-8
166Biblioteki poldka.
167
168%package devel
169Summary: Header files for poldek libraries
170Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
171Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
172Group: Development/Libraries
173Requires: %{name}-libs = %{version}-%{release}
174Requires: rpm-devel >= %{ver_rpm}
175
176%description devel
177Header files for poldek libraries.
178
179%description devel -l hu.UTF-8
180A poldek könyvtár fejlesztői fájljai.
181
182%description devel -l pl.UTF-8
183Pliki nagłówkowe bibliotek poldka.
184
185%package static
186Summary: poldek static libraries
187Summary(hu.UTF-8): poldek statikus könyvtárak
188Summary(pl.UTF-8): Biblioteki statyczne poldka
189Group: Development/Libraries
190Requires: %{name}-devel = %{version}-%{release}
191
192%description static
193poldek static libraries.
194
195%description static -l hu.UTF-8
196poldek statikus könyvtárak.
197
198%description static -l pl.UTF-8
199Biblioteki statyczne poldka.
200
201%package -n python-poldek
202Summary: Python modules for poldek
203Summary(hu.UTF-8): Python modulok poldek-hez
204Summary(pl.UTF-8): Moduły języka Python dla poldka
205Group: Libraries/Python
206Requires: %{name}-libs = %{version}-%{release}
207Requires: python-libs
208
209%description -n python-poldek
210Python modules for poldek.
211
212%description -n python-poldek -l hu.UTF-8
213Python modulok poldek-hez.
214
215%description -n python-poldek -l pl.UTF-8
216Moduły języka Python dla poldka.
217
218%prep
219%setup -q
220%patch0 -p1
221%patch1 -p1
222%patch2 -p1
223
224%{__rm} m4/libtool.m4 m4/lt*.m4
225
226# cleanup backups after patching
227find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
228chmod u+x ./configure ./doc/conf-xml2.sh
229
230%build
231%{__gettextize}
232%{__libtoolize}
233%{__aclocal} -I m4
234%{__autoheader}
235%{__autoconf}
236%{__automake}
237cd tndb
238%{__libtoolize}
239%{__aclocal}
240%{__autoheader}
241%{__autoconf}
242%{__automake}
243cd ../trurlib
244%{__libtoolize}
245%{__aclocal}
246%{__autoheader}
247%{__autoconf}
248%{__automake}
249cd ..
250
251CPPFLAGS="%{rpmcppflags} -std=gnu99 -fgnu89-inline"
252%configure \
253 %{?with_static:--enable-static --disable-shared} \
254 %{!?with_imode:--disable-imode} \
255 --with-pkglibdir=%{_libexecdir} \
256 --enable-nls \
257 %{?with_python:--with-python}
258%{__make} -j1
259# --enable-trace
260
261%install
262rm -rf $RPM_BUILD_ROOT
263install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}}
264
265%{__make} install -j1 \
266 DESTDIR=$RPM_BUILD_ROOT
267
268%if %{with python}
269%{__make} -C python -j1 install \
270 DESTDIR=$RPM_BUILD_ROOT \
271 libdir=%{py_sitedir}
272%endif
273
274%{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
275
276%ifarch i486 i686 ppc sparc alpha athlon
277 %define _ftp_arch %{_target_cpu}
278%endif
279%ifarch %{x8664}
280 %define _ftp_arch x86_64
281 %define _ftp_alt_arch i686
282 %define _ftp_alt2_arch x32
283%endif
284%ifarch x32
285 %define _ftp_arch x32
286 %define _ftp_alt_arch x86_64
287 %define _ftp_alt2_arch i686
288%endif
289%ifarch i586
290 %define _ftp_arch i486
291%endif
292%ifarch pentium2 pentium3 pentium4
293 %define _ftp_arch i686
294%endif
295%ifarch sparcv9 sparc64
296 %define _ftp_arch sparc
297 %define _ftp_arch %{_target_cpu}
298 %ifarch sparc64
299 %define _ftp_alt_arch sparcv9
300 %endif
301%endif
302
303%define pld_conf %{SOURCE1}
304%define pld_debuginfo_conf %{SOURCE8}
305%define pld_archive_conf %{SOURCE11}
306
307%ifarch %{x8664} x32
308 %define pld_multilib_conf %{SOURCE2}
309 %define pld_multilib2_conf %{SOURCE2}
310%endif
311
312# aidath
313%ifarch sparcv9 sparc64
314 %define pld_conf %{SOURCE9}
315 %undefine pld_archive_conf
316%endif
317%ifarch sparc64
318 %define pld_multilib_conf %{SOURCE10}
319%endif
320
321%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
322
323%if 0%{?pld_multilib_conf:1}
324 %{__sed} 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{_ftp_alt_arch}.conf
325%endif
326
327%if 0%{?pld_multilib2_conf:1}
328 %{__sed} 's|%%ARCH%%|%{_ftp_alt2_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{_ftp_alt2_arch}.conf
329%endif
330
331%if 0%{?pld_debuginfo_conf:1}
332%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
333%endif
334
335%if 0%{?pld_archive_conf:1}
336%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf
337%endif
338
339# Always install snapshot configs
340%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' \
341 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE100} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
342%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' \
343 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE102} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-debuginfo.conf
344%ifarch %{x8664} x32
345 %{__sed} -e 's|%%ARCH%%|%{_ftp_alt_arch}|g' \
346 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{_ftp_alt_arch}.conf
347 %{__sed} -e 's|%%ARCH%%|%{_ftp_alt2_arch}|g' \
348 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{_ftp_alt2_arch}.conf
349%endif
350
351%if %{with snap}
352%{__sed} -i -e 's|@@SNAP@@||g' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
353%{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
354%else
355%{__sed} -i -e 's|@@SNAP@@||g' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
356%{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
357%endif
358
359# th-2014 snap does not exist for x32 yet
360%if "%{_ftp_arch}" == "x32"
361rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
362%endif
363%if "%{_ftp_alt2_arch}" == "x32"
364rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-x32.conf
365%endif
366
367cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
368
369%if %{with imode}
370# add desktop file and icon
371install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
372cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
373cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
374%endif
375
376# sources we don't package
377%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
378# include them in %doc
379%{__rm} -rf configs
380cp -a conf configs
381%{__rm} -f configs/Makefile*
382
383%if %{with python}
384%py_postclean
385%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
386%endif
387
388%find_lang %{name}
389
390%clean
391rm -rf $RPM_BUILD_ROOT
392
393%post
394[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
395if [ "$1" = "1" ]; then
396 # remove ignore = vserver-packages inside vserver on first install
397 {
398 while read f ctx; do
399 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
400 done </proc/self/status
401 } 2>/dev/null
402 if [ -z "$ctx" -o "$ctx" = "0" ]; then
403 VSERVER=no
404 else
405 VSERVER=yes
406 fi
407 if [ "$VSERVER" = "yes" ]; then
408 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
409 fi
410fi
411
412%postun -p /sbin/postshell
413-/usr/sbin/fix-info-dir -c %{_infodir}
414
415%post libs -p /sbin/ldconfig
416%postun libs -p /sbin/ldconfig
417
418%triggerpostun -- poldek < 0.30-0.20080225.00.1
419if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
420 %{__sed} -i -e '/^%%include source.conf/{
421 a
422 a# /etc/poldek/repos.d/*.conf
423 a%%includedir repos.d
424 }' %{_sysconfdir}/%{name}/poldek.conf
425fi
426
427%{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
428%{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
429
430if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
431 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
432 %{__mv} -v %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
433fi
434
435%ifarch %{x8664}
436if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
437 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
438 %{__mv} -v %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
439fi
440%endif
441
442%triggerpostun -- poldek < 0.30.1-3
443if [ -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf.rpmsave ]; then
444 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-%{_ftp_alt_arch}.conf{,.rpmnew}
445 %{__mv} -v %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-%{_ftp_alt_arch}.conf
446fi
447if [ -f %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf.rpmsave ]; then
448 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{_ftp_alt_arch}.conf{,.rpmnew}
449 %{__mv} -v %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{_ftp_alt_arch}.conf
450fi
451
452%files -f %{name}.lang
453%defattr(644,root,root,755)
454%doc ChangeLog README* NEWS TODO configs
455%dir %{_sysconfdir}/%{name}
456%dir %{_sysconfdir}/%{name}/repos.d
457%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
458%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
459%attr(755,root,root) %{_bindir}/ipoldek
460%attr(755,root,root) %{_bindir}/poldek
461%attr(755,root,root) %{_bindir}/rpmvercmp
462%dir %{_libexecdir}
463%attr(755,root,root) %{_libexecdir}/*
464%{_mandir}/man1/%{name}*.1*
465%lang(pl) %{_mandir}/pl/man1/%{name}*
466%{_infodir}/poldek.info*
467%if %{with imode}
468%{_desktopdir}/%{name}.desktop
469%{_pixmapsdir}/%{name}.png
470%endif
471%dir /var/cache/%{name}
472
473%if %{without static}
474%files libs
475%defattr(644,root,root,755)
476%attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
477%attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
478%attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
479%attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
480%attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
481%attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
482%attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
483%attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
484%attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
485%attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
486%endif
487
488%files devel
489%defattr(644,root,root,755)
490%if %{without static}
491%attr(755,root,root) %{_libdir}/libpoclidek.so
492%attr(755,root,root) %{_libdir}/libpoldek.so
493%attr(755,root,root) %{_libdir}/libtndb.so
494%attr(755,root,root) %{_libdir}/libtrurl.so
495%attr(755,root,root) %{_libdir}/libvfile.so
496%endif
497%{_libdir}/libpoclidek.la
498%{_libdir}/libpoldek.la
499%{_libdir}/libtndb.la
500%{_libdir}/libtrurl.la
501%{_libdir}/libvfile.la
502%{_includedir}/poldek
503%{_includedir}/tndb
504%{_includedir}/trurl
505%{_includedir}/vfile
506%{_pkgconfigdir}/tndb.pc
507%{_pkgconfigdir}/trurlib.pc
508
509%files static
510%defattr(644,root,root,755)
511%{_libdir}/libtndb.a
512%{_libdir}/libtrurl.a
513
514%if %{with python}
515%files -n python-poldek
516%defattr(644,root,root,755)
517%attr(755,root,root) %{py_sitedir}/_poldekmod.so
518%{py_sitescriptdir}/poldek.py[co]
519%{py_sitescriptdir}/poldekmod.py[co]
520%endif
This page took 0.038568 seconds and 4 git commands to generate.