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 Patch24: %{name}-https-redirect.patch
58 URL: http://poldek.pld-linux.org/
59 BuildRequires: autoconf >= 2.63
60 BuildRequires: automake >= 1:1.11
61 BuildRequires: bzip2-devel
62 BuildRequires: check-devel
63 BuildRequires: docbook-dtd412-xml
64 BuildRequires: docbook2X
65 BuildRequires: gettext-tools >= 0.11.5
66 BuildRequires: libgomp-devel
67 BuildRequires: libtool
68 BuildRequires: libxml2-devel >= 2
69 BuildRequires: lua54-devel
70 BuildRequires: ncurses-devel
71 BuildRequires: openssl-devel >= 0.9.7d
72 BuildRequires: pcre-devel
73 BuildRequires: perl-XML-Simple
74 BuildRequires: perl-base
75 BuildRequires: perl-modules
76 BuildRequires: pkgconfig
77 BuildRequires: popt-devel
78 %{?with_python:BuildRequires: python-devel}
79 BuildRequires: readline-devel >= 5.0
80 BuildRequires: rpm-devel >= %{ver_rpm}
81 %{?with_python:BuildRequires: rpm-pythonprov}
82 BuildRequires: tar >= 1:1.22
83 BuildRequires: texinfo
86 BuildRequires: zlib-devel
87 BuildRequires: zstd-devel
89 BuildRequires: bzip2-static
90 BuildRequires: glibc-static
91 BuildRequires: libxml2-static
92 BuildRequires: ncurses-static
93 BuildRequires: openssl-static
94 BuildRequires: pcre-static
95 BuildRequires: popt-static
96 BuildRequires: readline-static
97 BuildRequires: rpm-static
98 BuildRequires: zlib-static
99 BuildRequires: zstd-static
101 Requires(postun): awk
102 Requires(postun): sed >= 4.0
103 Requires: %{name}-libs = %{version}-%{release}
104 Requires: /bin/run-parts
105 Requires: rpm >= %{ver_rpm}
106 Requires: rpm-lib >= %{ver_rpm}
108 Conflicts: etckeeper < 1.18-2
109 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
111 # it could be %{_libexecdir}/%{name}, but beware of compatibility (path hardcoded in configurations)
112 %define pkglibexecdir %{_prefix}/lib/%{name}
115 poldek is an RPM package management tool which allows you to easily
116 perform package verification, installation (including system
117 installation from scratch), upgrading, and removal.
119 Program can be used in batch (like apt-get from Debian's APT) or
120 interactive mode. The interactive mode puts you into a readline
121 interface with command line autocompletion and history, similar to the
122 shell mode of Perl's CPAN.
124 %{?with_static:This version is statically linked.}
126 %{!?with_imode:This version hasn't got interactive mode.}
129 %description -l hu.UTF-8
130 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
131 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
132 nulláról), frissítést és eltávolítást.
134 A program használható parancssorból (mint a Debian apt-get programja)
135 vagy interaktív módban. Az interaktív mód egy readline környezetet
136 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
139 %{?with_static:Ez a verzió statikusan linkelt.}
141 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
143 %description -l pl.UTF-8
144 poldek jest narzędziem linii poleceń służącym do weryfikacji,
145 instalacji (włączając instalację systemu od zera), aktualizacji i
148 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
149 interaktywnym. Tryb interaktywny posiada interfejs readline z
150 dopełnianiem komend i historią, podobny do trybu shell perlowego
153 %{?with_static:Ta wersja jest konsolidowana statycznie.}
155 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
158 Summary: poldek libraries
159 Summary(hu.UTF-8): A poldek könyvtárai
160 Summary(pl.UTF-8): Biblioteki poldka
166 %description libs -l hu.UTF-8
169 %description libs -l pl.UTF-8
173 Summary: Header files for poldek libraries
174 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
175 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
176 Group: Development/Libraries
177 Requires: %{name}-libs = %{version}-%{release}
178 Requires: rpm-devel >= %{ver_rpm}
181 Header files for poldek libraries.
183 %description devel -l hu.UTF-8
184 A poldek könyvtár fejlesztői fájljai.
186 %description devel -l pl.UTF-8
187 Pliki nagłówkowe bibliotek poldka.
190 Summary: poldek static libraries
191 Summary(hu.UTF-8): poldek statikus könyvtárak
192 Summary(pl.UTF-8): Biblioteki statyczne poldka
193 Group: Development/Libraries
194 Requires: %{name}-devel = %{version}-%{release}
197 poldek static libraries.
199 %description static -l hu.UTF-8
200 poldek statikus könyvtárak.
202 %description static -l pl.UTF-8
203 Biblioteki statyczne poldka.
205 %package -n python-poldek
206 Summary: Python modules for poldek
207 Summary(hu.UTF-8): Python modulok poldek-hez
208 Summary(pl.UTF-8): Moduły języka Python dla poldka
209 Group: Libraries/Python
210 Requires: %{name}-libs = %{version}-%{release}
211 Requires: python-libs
213 %description -n python-poldek
214 Python modules for poldek.
216 %description -n python-poldek -l hu.UTF-8
217 Python modulok poldek-hez.
219 %description -n python-poldek -l pl.UTF-8
220 Moduły języka Python dla poldka.
252 %{__rm} doc/poldek.info
253 %{__rm} m4/libtool.m4 m4/lt*.m4
255 # cleanup backups after patching
256 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
257 chmod u+x ./configure ./doc/conf-xml2.sh
281 %{?with_static:--enable-static --disable-shared} \
282 %{!?with_imode:--disable-imode} \
283 --with-pkglibdir=%{pkglibexecdir} \
285 %{?with_python:--with-python}
288 %{__make} -C doc poldek.info
299 rm -rf $RPM_BUILD_ROOT
300 install -d $RPM_BUILD_ROOT/var/cache/%{name}
303 DESTDIR=$RPM_BUILD_ROOT
305 install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/poldek-config
308 %{__make} -C python install \
309 DESTDIR=$RPM_BUILD_ROOT \
310 py_sitedir=%{py_sitedir}
313 %{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
315 %ifarch i686 aarch64 %{arm}
316 %define ftp_arch %{_target_cpu}
319 %define ftp_arch x86_64
320 %define ftp_alt_arch i686
323 %define tld_conf %{SOURCE1}
326 %define tld_multilib_conf %{SOURCE2}
329 %define tld_debuginfo_conf %{SOURCE3}
331 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{tld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld.conf
333 %if 0%{?tld_multilib_conf:1}
334 %{__sed} 's|%%ARCH%%|%{ftp_alt_arch}|g' < %{tld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
337 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{tld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-debuginfo.conf
339 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
342 # add desktop file and icon
343 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
344 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
345 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
348 # sources we don't package
349 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
350 # include them in %doc
353 %{__rm} -f configs/Makefile*
357 %{__rm} $RPM_BUILD_ROOT%{_libdir}/_poldekmod.{la,so}
364 rm -rf $RPM_BUILD_ROOT
367 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
368 if [ "$1" = "1" ]; then
369 # remove ignore = vserver-packages inside vserver on first install
372 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
373 done </proc/self/status
375 if [ -z "$ctx" -o "$ctx" = "0" ]; then
380 if [ "$VSERVER" = "yes" ]; then
381 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
385 %postun -p /sbin/postshell
386 -/usr/sbin/fix-info-dir -c %{_infodir}
388 %post libs -p /sbin/ldconfig
389 %postun libs -p /sbin/ldconfig
391 %triggerpostun -- poldek < 0.30-0.20080225.00.1
392 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
393 %{__sed} -i -e '/^%%include source.conf/{
395 a# /etc/poldek/repos.d/*.conf
396 a%%includedir repos.d
397 }' %{_sysconfdir}/%{name}/poldek.conf
400 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
401 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
403 if [ -f %{_sysconfdir}/%{name}/tld-source.conf.rpmsave ]; then
404 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld.conf{,.rpmnew}
405 %{__mv} -v %{_sysconfdir}/%{name}/tld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld.conf
409 if [ -f %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave ]; then
410 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf{,.rpmnew}
411 %{__mv} -v %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
415 %triggerpostun -- %{name} < 0.30.1-8
416 if [ $1 -le 1 ]; then
417 # revert change on --downgrade
418 %{__sed} -i -re 's,^pm command = %{pkglibexecdir}/pm-command.sh,#&,' %{_sysconfdir}/%{name}/%{name}.conf
421 %{__sed} -i -re 's,#?(pm command =).*,\1 %{pkglibexecdir}/pm-command.sh,' %{_sysconfdir}/%{name}/%{name}.conf
424 %files -f %{name}.lang
425 %defattr(644,root,root,755)
426 %doc ChangeLog README* NEWS configs
427 %dir %{_sysconfdir}/%{name}
428 %dir %{_sysconfdir}/%{name}/pre-install.d
429 %{_sysconfdir}/%{name}/pre-install.d/README
430 %dir %{_sysconfdir}/%{name}/post-install.d
431 %{_sysconfdir}/%{name}/post-install.d/README
432 %dir %{_sysconfdir}/%{name}/repos.d
433 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/cli.conf
434 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/fetch.conf
435 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/poldek.conf
436 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/source.conf
437 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld.conf
438 %if 0%{?tld_multilib_conf:1}
439 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
441 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld-debuginfo.conf
442 %attr(755,root,root) %{_bindir}/ipoldek
443 %attr(755,root,root) %{_bindir}/poldek
444 %attr(755,root,root) %{_bindir}/poldek-config
445 %attr(755,root,root) %{_bindir}/rpmvercmp
446 %dir %{pkglibexecdir}
447 %attr(755,root,root) %{pkglibexecdir}/pm-command.sh
448 %attr(755,root,root) %{pkglibexecdir}/poldekuser-setup.sh
449 %attr(755,root,root) %{pkglibexecdir}/vfcompr
450 %attr(755,root,root) %{pkglibexecdir}/vfjuggle
451 %attr(755,root,root) %{pkglibexecdir}/vfsmb
452 %attr(755,root,root) %{pkglibexecdir}/zlib-in-rpm.sh
453 %{_mandir}/man1/%{name}*.1*
454 %lang(pl) %{_mandir}/pl/man1/%{name}*
455 %{_infodir}/poldek.info*
457 %{_desktopdir}/%{name}.desktop
458 %{_pixmapsdir}/%{name}.png
460 %dir /var/cache/%{name}
462 %if %{without static}
464 %defattr(644,root,root,755)
465 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
466 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
467 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
468 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
469 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
470 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.1
471 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.3
472 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
473 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
474 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
478 %defattr(644,root,root,755)
479 %if %{without static}
480 %attr(755,root,root) %{_libdir}/libpoclidek.so
481 %attr(755,root,root) %{_libdir}/libpoldek.so
482 %attr(755,root,root) %{_libdir}/libtndb.so
483 %attr(755,root,root) %{_libdir}/libtrurl.so
484 %attr(755,root,root) %{_libdir}/libvfile.so
486 %{_libdir}/libpoclidek.la
487 %{_libdir}/libpoldek.la
488 %{_libdir}/libtndb.la
489 %{_libdir}/libtrurl.la
490 %{_libdir}/libvfile.la
491 %{_includedir}/poldek
495 %{_pkgconfigdir}/tndb.pc
496 %{_pkgconfigdir}/trurlib.pc
499 %defattr(644,root,root,755)
501 %{_libdir}/libtrurl.a
504 %files -n python-poldek
505 %defattr(644,root,root,755)
506 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
507 %{py_sitescriptdir}/poldek.py[co]
508 %{py_sitescriptdir}/poldekmod.py[co]