2 # - fix config having escaped html entities:
3 # # package A requires capability foo >= 1.0 while package B provides "foo"
6 %bcond_with static # don't use shared libraries
7 %bcond_without imode # don't build interactive mode
8 %bcond_without python # don't build python bindings
9 %bcond_with snap # install configs for official Th snapshot
10 %bcond_with db61 # DB 6.1 instead of 5.2
11 %bcond_with rpm4 # use rpm4/db4.7 instead of rpm5
13 # current snapshot name
16 # required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
17 # NOTE: poldek links with "system db" (-ldb) anyway if it exists
32 %define ver_rpm 4.5-49
34 %define ver_rpm 5.4.10
38 Summary: RPM packages management helper tool
39 Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
40 Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
43 Release: %{rel}%{?with_snap:.%{SNAP}}
45 Group: Applications/System
46 #Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
47 Source0: https://launchpad.net/poldek/0.32/%{version}/+download/%{name}-%{version}.tar.xz
48 # Source0-md5: 60b964723880569531f88f084cd3ae65
50 Source2: %{name}-multilib.conf
51 Source3: %{name}-config.sh
52 Source5: %{name}-aliases.conf
53 Source6: %{name}.desktop
55 # Source7-md5: ee487abede50874e9eceb6495d5ee150
56 Source8: %{name}-debuginfo.conf
57 Source9: %{name}-aidath.conf
58 Source10: %{name}-multilib-aidath.conf
59 Source11: %{name}-archive.conf
60 Source100: %{name}-snap.conf
61 Source101: %{name}-multilib-snap.conf
62 Source102: %{name}-debuginfo-snap.conf
63 Patch0: %{name}-size-type.patch
64 Patch1: %{name}-config.patch
65 Patch2: pm-hooks.patch
66 Patch3: WTERMSIG.patch
67 Patch4: %{name}-multiproto.patch
68 Patch5: python-fix.patch
69 Patch6: poldek-ext-down-enable.patch
70 Patch7: multiple-options.patch
72 Patch9: poldek-notzdata.patch
73 URL: http://poldek.pld-linux.org/
74 BuildRequires: %{db_pkg}-devel >= %{ver_db}-%{ver_db_rel}
75 BuildRequires: autoconf
76 BuildRequires: automake >= 1:1.11
77 BuildRequires: bzip2-devel
78 BuildRequires: check-devel
79 BuildRequires: docbook-dtd412-xml
80 BuildRequires: gettext-tools
81 BuildRequires: libgomp-devel
82 BuildRequires: libtool
83 BuildRequires: libxml2-devel
84 BuildRequires: openssl-devel >= 0.9.7d
85 BuildRequires: pcre-devel
86 BuildRequires: pkgconfig
87 BuildRequires: popt-devel
88 %{?with_python:BuildRequires: python-devel}
89 BuildRequires: readline-devel >= 5.0
90 BuildRequires: rpm-devel >= %{ver_rpm}
91 %{?with_python:BuildRequires: rpm-pythonprov}
92 BuildRequires: tar >= 1:1.22
95 BuildRequires: zlib-devel
97 BuildRequires: %{db_pkg}-static >= %{ver_db}-%{ver_db_rel}
98 BuildRequires: bzip2-static
99 BuildRequires: glibc-static
100 BuildRequires: libxml2-static
101 BuildRequires: ncurses-static
102 BuildRequires: openssl-static
103 BuildRequires: pcre-static
104 BuildRequires: popt-static
105 BuildRequires: readline-static
106 BuildRequires: rpm-static
107 BuildRequires: zlib-static
109 Requires(triggerpostun): awk
110 Requires(triggerpostun): sed >= 4.0
111 Requires: %{db_pkg} >= %{ver_db}-%{ver_db_rel}
112 Requires: %{name}-libs = %{version}-%{release}
113 Requires: /bin/run-parts
114 Requires: rpm >= %{ver_rpm}
115 Requires: rpm-db-ver = %{ver_db}
116 Requires: rpm-lib >= %{ver_rpm}
118 Conflicts: etckeeper < 1.18-2
119 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
121 %define _libexecdir %{_prefix}/lib/%{name}
124 poldek is an RPM package management tool which allows you to easily
125 perform package verification, installation (including system
126 installation from scratch), upgrading, and removal.
128 Program can be used in batch (like apt-get from Debian's APT) or
129 interactive mode. The interactive mode puts you into a readline
130 interface with command line autocompletion and history, similar to the
131 shell mode of Perl's CPAN.
133 %{?with_static:This version is statically linked.}
135 %{!?with_imode:This version hasn't got interactive mode.}
138 %description -l hu.UTF-8
139 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
140 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
141 nulláról), frissítést és eltávolítást.
143 A program használható parancssorból (mint a Debian apt-get programja)
144 vagy interaktív módban. Az interaktív mód egy readline környezetet
145 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
148 %{?with_static:Ez a verzió statikusan linkelt.}
150 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
152 %description -l pl.UTF-8
153 poldek jest narzędziem linii poleceń służącym do weryfikacji,
154 instalacji (włączając instalację systemu od zera), aktualizacji i
157 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
158 interaktywnym. Tryb interaktywny posiada interfejs readline z
159 dopełnianiem komend i historią, podobny do trybu shell perlowego
162 %{?with_static:Ta wersja jest konsolidowana statycznie.}
164 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
167 Summary: poldek libraries
168 Summary(hu.UTF-8): A poldek könyvtárai
169 Summary(pl.UTF-8): Biblioteki poldka
175 %description libs -l hu.UTF-8
178 %description libs -l pl.UTF-8
182 Summary: Header files for poldek libraries
183 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
184 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
185 Group: Development/Libraries
186 Requires: %{name}-libs = %{version}-%{release}
187 Requires: rpm-devel >= %{ver_rpm}
190 Header files for poldek libraries.
192 %description devel -l hu.UTF-8
193 A poldek könyvtár fejlesztői fájljai.
195 %description devel -l pl.UTF-8
196 Pliki nagłówkowe bibliotek poldka.
199 Summary: poldek static libraries
200 Summary(hu.UTF-8): poldek statikus könyvtárak
201 Summary(pl.UTF-8): Biblioteki statyczne poldka
202 Group: Development/Libraries
203 Requires: %{name}-devel = %{version}-%{release}
206 poldek static libraries.
208 %description static -l hu.UTF-8
209 poldek statikus könyvtárak.
211 %description static -l pl.UTF-8
212 Biblioteki statyczne poldka.
214 %package -n python-poldek
215 Summary: Python modules for poldek
216 Summary(hu.UTF-8): Python modulok poldek-hez
217 Summary(pl.UTF-8): Moduły języka Python dla poldka
218 Group: Libraries/Python
219 Requires: %{name}-libs = %{version}-%{release}
220 Requires: python-libs
222 %description -n python-poldek
223 Python modules for poldek.
225 %description -n python-poldek -l hu.UTF-8
226 Python modulok poldek-hez.
228 %description -n python-poldek -l pl.UTF-8
229 Moduły języka Python dla poldka.
244 %{__rm} m4/libtool.m4 m4/lt*.m4
246 # cleanup backups after patching
247 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
248 chmod u+x ./configure ./doc/conf-xml2.sh
271 CPPFLAGS="%{rpmcppflags} -std=gnu99 -fgnu89-inline -D_GNU_SOURCE=1"
273 %{?with_static:--enable-static --disable-shared} \
274 %{!?with_imode:--disable-imode} \
275 --with-pkglibdir=%{_libexecdir} \
277 %{?with_python:--with-python}
286 rm -rf $RPM_BUILD_ROOT
287 install -d $RPM_BUILD_ROOT/var/cache/%{name}
289 %{__make} install -j1 \
290 DESTDIR=$RPM_BUILD_ROOT
292 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/poldek-config
295 %{__make} -C python -j1 install \
296 DESTDIR=$RPM_BUILD_ROOT \
297 py_sitedir=%{py_sitedir}
300 %{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
302 %ifarch i486 i686 ppc sparc alpha athlon
303 %define ftp_arch %{_target_cpu}
306 %define ftp_arch x86_64
307 %define ftp_alt_arch i686
308 %define ftp_alt2_arch x32
312 %define ftp_alt_arch x86_64
313 %define ftp_alt2_arch i686
316 %define ftp_arch i486
318 %ifarch pentium2 pentium3 pentium4
319 %define ftp_arch i686
321 %ifarch sparcv9 sparc64
322 %define ftp_arch sparc
323 %define ftp_arch %{_target_cpu}
325 %define ftp_alt_arch sparcv9
329 %define pld_conf %{SOURCE1}
330 %define pld_debuginfo_conf %{SOURCE8}
331 %define pld_archive_conf %{SOURCE11}
334 %define pld_multilib_conf %{SOURCE2}
335 %define pld_multilib2_conf %{SOURCE2}
339 %ifarch sparcv9 sparc64
340 %define pld_conf %{SOURCE9}
341 %undefine pld_archive_conf
344 %define pld_multilib_conf %{SOURCE10}
347 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
349 %if 0%{?pld_multilib_conf:1}
350 %{__sed} 's|%%ARCH%%|%{ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt_arch}.conf
353 %if 0%{?pld_multilib2_conf:1}
354 %{__sed} 's|%%ARCH%%|%{ftp_alt2_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt2_arch}.conf
357 %if 0%{?pld_debuginfo_conf:1}
358 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
361 %if 0%{?pld_archive_conf:1}
362 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf
365 # Always install snapshot configs
366 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' \
367 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE100} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
368 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' \
369 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE102} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-debuginfo.conf
371 %{__sed} -e 's|%%ARCH%%|%{ftp_alt_arch}|g' \
372 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt_arch}.conf
373 %{__sed} -e 's|%%ARCH%%|%{ftp_alt2_arch}|g' \
374 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt2_arch}.conf
378 %{__sed} -i -e 's|@@SNAP@@||g' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
379 %{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
381 %{__sed} -i -e 's|@@SNAP@@||g' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
382 %{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
385 # create "all" meta repo
386 %if 0%{?ftp_alt_arch:1}%{?ftp_alt2_arch:1}
387 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-all.conf
388 # group source for referring th+th-multiarch sources together, i.e poldek -n th-all
392 sources = th %{?ftp_alt_arch:th-%{ftp_alt_arch}} %{?ftp_alt2_arch:th-%{ftp_alt2_arch}}
396 # th-2014 snap does not exist for x32 yet
397 %if "%{ftp_arch}" == "x32"
398 rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
400 %if "%{ftp_alt2_arch}" == "x32"
401 rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-x32.conf
404 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
407 # add desktop file and icon
408 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
409 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
410 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
413 # sources we don't package
414 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
415 # include them in %doc
418 %{__rm} -f configs/Makefile*
422 %{__rm} $RPM_BUILD_ROOT%{_libdir}/_poldekmod.{la,so}
428 rm -rf $RPM_BUILD_ROOT
431 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
432 if [ "$1" = "1" ]; then
433 # remove ignore = vserver-packages inside vserver on first install
436 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
437 done </proc/self/status
439 if [ -z "$ctx" -o "$ctx" = "0" ]; then
444 if [ "$VSERVER" = "yes" ]; then
445 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
449 %postun -p /sbin/postshell
450 -/usr/sbin/fix-info-dir -c %{_infodir}
452 %post libs -p /sbin/ldconfig
453 %postun libs -p /sbin/ldconfig
455 %triggerpostun -- poldek < 0.30-0.20080225.00.1
456 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
457 %{__sed} -i -e '/^%%include source.conf/{
459 a# /etc/poldek/repos.d/*.conf
460 a%%includedir repos.d
461 }' %{_sysconfdir}/%{name}/poldek.conf
464 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
465 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
467 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
468 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
469 %{__mv} -v %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
473 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
474 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
475 %{__mv} -v %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
479 %triggerpostun -- poldek < 0.30.1-3
480 if [ -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf.rpmsave ]; then
481 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt_arch}.conf{,.rpmnew}
482 %{__mv} -v %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt_arch}.conf
484 if [ -f %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf.rpmsave ]; then
485 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt_arch}.conf{,.rpmnew}
486 %{__mv} -v %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt_arch}.conf
489 %triggerpostun -- %{name} < 0.30.1-8
490 if [ $1 -le 1 ]; then
491 # revert change on --downgrade
492 %{__sed} -i -re 's,^pm command = %{_libexecdir}/pm-command.sh,#&,' %{_sysconfdir}/%{name}/%{name}.conf
495 %{__sed} -i -re 's,#?(pm command =).*,\1 %{_libexecdir}/pm-command.sh,' %{_sysconfdir}/%{name}/%{name}.conf
498 %files -f %{name}.lang
499 %defattr(644,root,root,755)
500 %doc ChangeLog README* NEWS TODO configs
501 %dir %{_sysconfdir}/%{name}
502 %dir %{_sysconfdir}/%{name}/pre-install.d
503 %{_sysconfdir}/%{name}/pre-install.d/README
504 %dir %{_sysconfdir}/%{name}/post-install.d
505 %{_sysconfdir}/%{name}/post-install.d/README
506 %dir %{_sysconfdir}/%{name}/repos.d
507 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
508 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
509 %attr(755,root,root) %{_bindir}/ipoldek
510 %attr(755,root,root) %{_bindir}/poldek
511 %attr(755,root,root) %{_bindir}/poldek-config
512 %attr(755,root,root) %{_bindir}/rpmvercmp
514 %attr(755,root,root) %{_libexecdir}/pm-command.sh
515 %attr(755,root,root) %{_libexecdir}/poldekuser-setup.sh
516 %attr(755,root,root) %{_libexecdir}/vfcompr
517 %attr(755,root,root) %{_libexecdir}/vfjuggle
518 %attr(755,root,root) %{_libexecdir}/vfsmb
519 %attr(755,root,root) %{_libexecdir}/zlib-in-rpm.sh
520 %{_mandir}/man1/%{name}*.1*
521 %lang(pl) %{_mandir}/pl/man1/%{name}*
522 %{_infodir}/poldek.info*
524 %{_desktopdir}/%{name}.desktop
525 %{_pixmapsdir}/%{name}.png
527 %dir /var/cache/%{name}
529 %if %{without static}
531 %defattr(644,root,root,755)
532 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
533 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
534 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
535 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
536 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
537 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
538 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
539 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
540 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
541 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
545 %defattr(644,root,root,755)
546 %if %{without static}
547 %attr(755,root,root) %{_libdir}/libpoclidek.so
548 %attr(755,root,root) %{_libdir}/libpoldek.so
549 %attr(755,root,root) %{_libdir}/libtndb.so
550 %attr(755,root,root) %{_libdir}/libtrurl.so
551 %attr(755,root,root) %{_libdir}/libvfile.so
553 %{_libdir}/libpoclidek.la
554 %{_libdir}/libpoldek.la
555 %{_libdir}/libtndb.la
556 %{_libdir}/libtrurl.la
557 %{_libdir}/libvfile.la
558 %{_includedir}/poldek
562 %{_pkgconfigdir}/tndb.pc
563 %{_pkgconfigdir}/trurlib.pc
566 %defattr(644,root,root,755)
568 %{_libdir}/libtrurl.a
571 %files -n python-poldek
572 %defattr(644,root,root,755)
573 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
574 %{py_sitescriptdir}/poldek.py[co]
575 %{py_sitescriptdir}/poldekmod.py[co]