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_with python # don't build python bindings
9 %bcond_with tests # tests
11 # required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
12 %define ver_rpm 1:4.14
14 Summary: RPM packages management helper tool
15 Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
16 Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
21 Group: Applications/System
22 #Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
23 Source0: https://github.com/poldek-pm/poldek/releases/download/v%{version}/%{name}-%{version}.tar.xz
24 # Source0-md5: 2759fe45bc50efb6084d5338d725411a
26 Source2: tld-multilib.conf
27 Source3: tld-debuginfo.conf
28 Source4: %{name}-config.sh
29 Source5: %{name}-aliases.conf
30 Source6: %{name}.desktop
32 # Source7-md5: ee487abede50874e9eceb6495d5ee150
33 Patch0: %{name}-config.patch
34 Patch1: pm-hooks.patch
35 Patch2: %{name}-ext-down-enable.patch
36 Patch3: %{name}-pc.patch
37 Patch4: %{name}-info.patch
38 Patch5: %{name}-multiarch-x32.patch
39 Patch6: rpm-4.15.patch
40 Patch7: db-index-format.patch
41 Patch8: rpm4-uname-deps.patch
42 Patch9: sqlite-rpmdb.patch
43 Patch10: rpm4-cpuinfo-deps.patch
44 Patch11: rpm4-no-dir-deps.patch
45 Patch12: rpm4-rpmvercmp.patch
46 Patch13: trurlib-shared.patch
47 Patch14: rpm4-script-req-workaround.patch
48 Patch15: skip-buildid-obsoletes.patch
49 Patch16: verify-signature.patch
50 Patch17: %{name}-rsa_sig_rpmorg.patch
51 Patch18: no-bdb-for-rpm-org.patch
52 Patch19: more-trace.patch
53 Patch20: boolean-deps.patch
54 Patch21: sorted-ls-upgradable.patch
55 Patch22: egrep-is-obsolete.patch
57 URL: http://poldek.pld-linux.org/
58 BuildRequires: autoconf >= 2.63
59 BuildRequires: automake >= 1:1.11
60 BuildRequires: bzip2-devel
61 BuildRequires: check-devel
62 BuildRequires: docbook-dtd412-xml
63 BuildRequires: docbook2X
64 BuildRequires: gettext-tools >= 0.11.5
65 BuildRequires: libgomp-devel
66 BuildRequires: libtool
67 BuildRequires: libxml2-devel >= 2
68 BuildRequires: lua54-devel
69 BuildRequires: ncurses-devel
70 BuildRequires: openssl-devel >= 0.9.7d
71 BuildRequires: pcre-devel
72 BuildRequires: perl-XML-Simple
73 BuildRequires: perl-base
74 BuildRequires: perl-modules
75 BuildRequires: pkgconfig
76 BuildRequires: popt-devel
77 %{?with_python:BuildRequires: python-devel}
78 BuildRequires: readline-devel >= 5.0
79 BuildRequires: rpm-devel >= %{ver_rpm}
80 %{?with_python:BuildRequires: rpm-pythonprov}
81 BuildRequires: tar >= 1:1.22
82 BuildRequires: texinfo
85 BuildRequires: zlib-devel
86 BuildRequires: zstd-devel
88 BuildRequires: bzip2-static
89 BuildRequires: glibc-static
90 BuildRequires: libxml2-static
91 BuildRequires: ncurses-static
92 BuildRequires: openssl-static
93 BuildRequires: pcre-static
94 BuildRequires: popt-static
95 BuildRequires: readline-static
96 BuildRequires: rpm-static
97 BuildRequires: zlib-static
98 BuildRequires: zstd-static
100 Requires(postun): awk
101 Requires(postun): sed >= 4.0
102 Requires: %{name}-libs = %{version}-%{release}
103 Requires: /bin/run-parts
104 Requires: rpm >= %{ver_rpm}
105 Requires: rpm-lib >= %{ver_rpm}
107 Conflicts: etckeeper < 1.18-2
108 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
110 # it could be %{_libexecdir}/%{name}, but beware of compatibility (path hardcoded in configurations)
111 %define pkglibexecdir %{_prefix}/lib/%{name}
114 poldek is an RPM package management tool which allows you to easily
115 perform package verification, installation (including system
116 installation from scratch), upgrading, and removal.
118 Program can be used in batch (like apt-get from Debian's APT) or
119 interactive mode. The interactive mode puts you into a readline
120 interface with command line autocompletion and history, similar to the
121 shell mode of Perl's CPAN.
123 %{?with_static:This version is statically linked.}
125 %{!?with_imode:This version hasn't got interactive mode.}
128 %description -l hu.UTF-8
129 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
130 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
131 nulláról), frissítést és eltávolítást.
133 A program használható parancssorból (mint a Debian apt-get programja)
134 vagy interaktív módban. Az interaktív mód egy readline környezetet
135 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
138 %{?with_static:Ez a verzió statikusan linkelt.}
140 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
142 %description -l pl.UTF-8
143 poldek jest narzędziem linii poleceń służącym do weryfikacji,
144 instalacji (włączając instalację systemu od zera), aktualizacji i
147 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
148 interaktywnym. Tryb interaktywny posiada interfejs readline z
149 dopełnianiem komend i historią, podobny do trybu shell perlowego
152 %{?with_static:Ta wersja jest konsolidowana statycznie.}
154 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
157 Summary: poldek libraries
158 Summary(hu.UTF-8): A poldek könyvtárai
159 Summary(pl.UTF-8): Biblioteki poldka
165 %description libs -l hu.UTF-8
168 %description libs -l pl.UTF-8
172 Summary: Header files for poldek libraries
173 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
174 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
175 Group: Development/Libraries
176 Requires: %{name}-libs = %{version}-%{release}
177 Requires: rpm-devel >= %{ver_rpm}
180 Header files for poldek libraries.
182 %description devel -l hu.UTF-8
183 A poldek könyvtár fejlesztői fájljai.
185 %description devel -l pl.UTF-8
186 Pliki nagłówkowe bibliotek poldka.
189 Summary: poldek static libraries
190 Summary(hu.UTF-8): poldek statikus könyvtárak
191 Summary(pl.UTF-8): Biblioteki statyczne poldka
192 Group: Development/Libraries
193 Requires: %{name}-devel = %{version}-%{release}
196 poldek static libraries.
198 %description static -l hu.UTF-8
199 poldek statikus könyvtárak.
201 %description static -l pl.UTF-8
202 Biblioteki statyczne poldka.
204 %package -n python-poldek
205 Summary: Python modules for poldek
206 Summary(hu.UTF-8): Python modulok poldek-hez
207 Summary(pl.UTF-8): Moduły języka Python dla poldka
208 Group: Libraries/Python
209 Requires: %{name}-libs = %{version}-%{release}
210 Requires: python-libs
212 %description -n python-poldek
213 Python modules for poldek.
215 %description -n python-poldek -l hu.UTF-8
216 Python modulok poldek-hez.
218 %description -n python-poldek -l pl.UTF-8
219 Moduły języka Python dla poldka.
250 %{__rm} doc/poldek.info
251 %{__rm} m4/libtool.m4 m4/lt*.m4
253 # cleanup backups after patching
254 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
255 chmod u+x ./configure ./doc/conf-xml2.sh
279 %{?with_static:--enable-static --disable-shared} \
280 %{!?with_imode:--disable-imode} \
281 --with-pkglibdir=%{pkglibexecdir} \
283 %{?with_python:--with-python}
286 %{__make} -C doc poldek.info
297 rm -rf $RPM_BUILD_ROOT
298 install -d $RPM_BUILD_ROOT/var/cache/%{name}
301 DESTDIR=$RPM_BUILD_ROOT
303 install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/poldek-config
306 %{__make} -C python install \
307 DESTDIR=$RPM_BUILD_ROOT \
308 py_sitedir=%{py_sitedir}
311 %{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
313 %ifarch i686 aarch64 %{arm}
314 %define ftp_arch %{_target_cpu}
317 %define ftp_arch x86_64
318 %define ftp_alt_arch i686
321 %define tld_conf %{SOURCE1}
324 %define tld_multilib_conf %{SOURCE2}
327 %define tld_debuginfo_conf %{SOURCE3}
329 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{tld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld.conf
331 %if 0%{?tld_multilib_conf:1}
332 %{__sed} 's|%%ARCH%%|%{ftp_alt_arch}|g' < %{tld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
335 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{tld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-debuginfo.conf
337 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
340 # add desktop file and icon
341 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
342 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
343 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
346 # sources we don't package
347 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
348 # include them in %doc
351 %{__rm} -f configs/Makefile*
355 %{__rm} $RPM_BUILD_ROOT%{_libdir}/_poldekmod.{la,so}
362 rm -rf $RPM_BUILD_ROOT
365 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
366 if [ "$1" = "1" ]; then
367 # remove ignore = vserver-packages inside vserver on first install
370 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
371 done </proc/self/status
373 if [ -z "$ctx" -o "$ctx" = "0" ]; then
378 if [ "$VSERVER" = "yes" ]; then
379 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
383 %postun -p /sbin/postshell
384 -/usr/sbin/fix-info-dir -c %{_infodir}
386 %post libs -p /sbin/ldconfig
387 %postun libs -p /sbin/ldconfig
389 %triggerpostun -- poldek < 0.30-0.20080225.00.1
390 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
391 %{__sed} -i -e '/^%%include source.conf/{
393 a# /etc/poldek/repos.d/*.conf
394 a%%includedir repos.d
395 }' %{_sysconfdir}/%{name}/poldek.conf
398 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
399 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
401 if [ -f %{_sysconfdir}/%{name}/tld-source.conf.rpmsave ]; then
402 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld.conf{,.rpmnew}
403 %{__mv} -v %{_sysconfdir}/%{name}/tld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld.conf
407 if [ -f %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave ]; then
408 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf{,.rpmnew}
409 %{__mv} -v %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
413 %triggerpostun -- %{name} < 0.30.1-8
414 if [ $1 -le 1 ]; then
415 # revert change on --downgrade
416 %{__sed} -i -re 's,^pm command = %{pkglibexecdir}/pm-command.sh,#&,' %{_sysconfdir}/%{name}/%{name}.conf
419 %{__sed} -i -re 's,#?(pm command =).*,\1 %{pkglibexecdir}/pm-command.sh,' %{_sysconfdir}/%{name}/%{name}.conf
422 %files -f %{name}.lang
423 %defattr(644,root,root,755)
424 %doc ChangeLog README* NEWS configs
425 %dir %{_sysconfdir}/%{name}
426 %dir %{_sysconfdir}/%{name}/pre-install.d
427 %{_sysconfdir}/%{name}/pre-install.d/README
428 %dir %{_sysconfdir}/%{name}/post-install.d
429 %{_sysconfdir}/%{name}/post-install.d/README
430 %dir %{_sysconfdir}/%{name}/repos.d
431 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/cli.conf
432 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/fetch.conf
433 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/poldek.conf
434 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/source.conf
435 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld.conf
436 %if 0%{?tld_multilib_conf:1}
437 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
439 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld-debuginfo.conf
440 %attr(755,root,root) %{_bindir}/ipoldek
441 %attr(755,root,root) %{_bindir}/poldek
442 %attr(755,root,root) %{_bindir}/poldek-config
443 %attr(755,root,root) %{_bindir}/rpmvercmp
444 %dir %{pkglibexecdir}
445 %attr(755,root,root) %{pkglibexecdir}/pm-command.sh
446 %attr(755,root,root) %{pkglibexecdir}/poldekuser-setup.sh
447 %attr(755,root,root) %{pkglibexecdir}/vfcompr
448 %attr(755,root,root) %{pkglibexecdir}/vfjuggle
449 %attr(755,root,root) %{pkglibexecdir}/vfsmb
450 %attr(755,root,root) %{pkglibexecdir}/zlib-in-rpm.sh
451 %{_mandir}/man1/%{name}*.1*
452 %lang(pl) %{_mandir}/pl/man1/%{name}*
453 %{_infodir}/poldek.info*
455 %{_desktopdir}/%{name}.desktop
456 %{_pixmapsdir}/%{name}.png
458 %dir /var/cache/%{name}
460 %if %{without static}
462 %defattr(644,root,root,755)
463 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
464 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
465 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
466 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
467 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
468 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.1
469 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.3
470 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
471 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
472 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
476 %defattr(644,root,root,755)
477 %if %{without static}
478 %attr(755,root,root) %{_libdir}/libpoclidek.so
479 %attr(755,root,root) %{_libdir}/libpoldek.so
480 %attr(755,root,root) %{_libdir}/libtndb.so
481 %attr(755,root,root) %{_libdir}/libtrurl.so
482 %attr(755,root,root) %{_libdir}/libvfile.so
484 %{_libdir}/libpoclidek.la
485 %{_libdir}/libpoldek.la
486 %{_libdir}/libtndb.la
487 %{_libdir}/libtrurl.la
488 %{_libdir}/libvfile.la
489 %{_includedir}/poldek
493 %{_pkgconfigdir}/tndb.pc
494 %{_pkgconfigdir}/trurlib.pc
497 %defattr(644,root,root,755)
499 %{_libdir}/libtrurl.a
502 %files -n python-poldek
503 %defattr(644,root,root,755)
504 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
505 %{py_sitescriptdir}/poldek.py[co]
506 %{py_sitescriptdir}/poldekmod.py[co]