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)
14 %define ver_rpm 1:4.14
15 %define ver_db_devel %(rpm -q --qf '%|E?{%{E}:}|%{V}-%{R}' --what-provides db-devel)
17 Summary: RPM packages management helper tool
18 Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
19 Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
24 Group: Applications/System
25 #Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
26 Source0: https://github.com/poldek-pm/poldek/releases/download/v%{version}/%{name}-%{version}.tar.xz
27 # Source0-md5: 2759fe45bc50efb6084d5338d725411a
29 Source2: tld-multilib.conf
30 Source3: tld-debuginfo.conf
31 Source4: %{name}-config.sh
32 Source5: %{name}-aliases.conf
33 Source6: %{name}.desktop
35 # Source7-md5: ee487abede50874e9eceb6495d5ee150
36 Patch0: %{name}-config.patch
37 Patch1: pm-hooks.patch
38 Patch2: %{name}-ext-down-enable.patch
39 Patch3: %{name}-pc.patch
40 Patch4: %{name}-info.patch
41 Patch5: %{name}-multiarch-x32.patch
42 Patch6: rpm-4.15.patch
43 Patch7: db-index-format.patch
44 Patch8: rpm4-uname-deps.patch
45 Patch9: sqlite-rpmdb.patch
46 Patch10: rpm4-cpuinfo-deps.patch
47 Patch11: rpm4-no-dir-deps.patch
48 Patch12: rpm4-rpmvercmp.patch
49 Patch13: trurlib-shared.patch
50 Patch14: rpm4-script-req-workaround.patch
51 URL: http://poldek.pld-linux.org/
52 BuildRequires: %{db_pkg}-devel >= %{ver_db}
53 BuildRequires: autoconf >= 2.63
54 BuildRequires: automake >= 1:1.11
55 BuildRequires: bzip2-devel
56 BuildRequires: check-devel
57 BuildRequires: docbook-dtd412-xml
58 BuildRequires: docbook2X
59 BuildRequires: gettext-tools >= 0.11.5
60 BuildRequires: libgomp-devel
61 BuildRequires: libtool
62 BuildRequires: libxml2-devel >= 2
63 BuildRequires: ncurses-devel
64 BuildRequires: openssl-devel >= 0.9.7d
65 BuildRequires: pcre-devel
66 BuildRequires: perl-XML-Simple
67 BuildRequires: perl-base
68 BuildRequires: perl-modules
69 BuildRequires: pkgconfig
70 BuildRequires: popt-devel
71 %{?with_python:BuildRequires: python-devel}
72 BuildRequires: readline-devel >= 5.0
73 BuildRequires: rpm-devel >= %{ver_rpm}
74 %{?with_python:BuildRequires: rpm-pythonprov}
75 BuildRequires: tar >= 1:1.22
76 BuildRequires: texinfo
79 BuildRequires: zlib-devel
80 BuildRequires: zstd-devel
82 BuildRequires: %{db_pkg}-static >= %{ver_db}
83 BuildRequires: bzip2-static
84 BuildRequires: glibc-static
85 BuildRequires: libxml2-static
86 BuildRequires: ncurses-static
87 BuildRequires: openssl-static
88 BuildRequires: pcre-static
89 BuildRequires: popt-static
90 BuildRequires: readline-static
91 BuildRequires: rpm-static
92 BuildRequires: zlib-static
93 BuildRequires: zstd-static
96 Requires(postun): sed >= 4.0
97 Requires: %{db_pkg} >= %{ver_db_devel}
98 Requires: %{name}-libs = %{version}-%{release}
99 Requires: /bin/run-parts
100 Requires: rpm >= %{ver_rpm}
101 Requires: rpm-lib >= %{ver_rpm}
103 Conflicts: etckeeper < 1.18-2
104 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
106 # it could be %{_libexecdir}/%{name}, but beware of compatibility (path hardcoded in configurations)
107 %define pkglibexecdir %{_prefix}/lib/%{name}
110 poldek is an RPM package management tool which allows you to easily
111 perform package verification, installation (including system
112 installation from scratch), upgrading, and removal.
114 Program can be used in batch (like apt-get from Debian's APT) or
115 interactive mode. The interactive mode puts you into a readline
116 interface with command line autocompletion and history, similar to the
117 shell mode of Perl's CPAN.
119 %{?with_static:This version is statically linked.}
121 %{!?with_imode:This version hasn't got interactive mode.}
124 %description -l hu.UTF-8
125 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
126 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
127 nulláról), frissítést és eltávolítást.
129 A program használható parancssorból (mint a Debian apt-get programja)
130 vagy interaktív módban. Az interaktív mód egy readline környezetet
131 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
134 %{?with_static:Ez a verzió statikusan linkelt.}
136 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
138 %description -l pl.UTF-8
139 poldek jest narzędziem linii poleceń służącym do weryfikacji,
140 instalacji (włączając instalację systemu od zera), aktualizacji i
143 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
144 interaktywnym. Tryb interaktywny posiada interfejs readline z
145 dopełnianiem komend i historią, podobny do trybu shell perlowego
148 %{?with_static:Ta wersja jest konsolidowana statycznie.}
150 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
153 Summary: poldek libraries
154 Summary(hu.UTF-8): A poldek könyvtárai
155 Summary(pl.UTF-8): Biblioteki poldka
161 %description libs -l hu.UTF-8
164 %description libs -l pl.UTF-8
168 Summary: Header files for poldek libraries
169 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
170 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
171 Group: Development/Libraries
172 Requires: %{name}-libs = %{version}-%{release}
173 Requires: rpm-devel >= %{ver_rpm}
176 Header files for poldek libraries.
178 %description devel -l hu.UTF-8
179 A poldek könyvtár fejlesztői fájljai.
181 %description devel -l pl.UTF-8
182 Pliki nagłówkowe bibliotek poldka.
185 Summary: poldek static libraries
186 Summary(hu.UTF-8): poldek statikus könyvtárak
187 Summary(pl.UTF-8): Biblioteki statyczne poldka
188 Group: Development/Libraries
189 Requires: %{name}-devel = %{version}-%{release}
192 poldek static libraries.
194 %description static -l hu.UTF-8
195 poldek statikus könyvtárak.
197 %description static -l pl.UTF-8
198 Biblioteki statyczne poldka.
200 %package -n python-poldek
201 Summary: Python modules for poldek
202 Summary(hu.UTF-8): Python modulok poldek-hez
203 Summary(pl.UTF-8): Moduły języka Python dla poldka
204 Group: Libraries/Python
205 Requires: %{name}-libs = %{version}-%{release}
206 Requires: python-libs
208 %description -n python-poldek
209 Python modules for poldek.
211 %description -n python-poldek -l hu.UTF-8
212 Python modulok poldek-hez.
214 %description -n python-poldek -l pl.UTF-8
215 Moduły języka Python dla poldka.
237 %{__rm} doc/poldek.info
238 %{__rm} m4/libtool.m4 m4/lt*.m4
240 # cleanup backups after patching
241 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
242 chmod u+x ./configure ./doc/conf-xml2.sh
266 %{?with_static:--enable-static --disable-shared} \
267 %{!?with_imode:--disable-imode} \
268 --with-pkglibdir=%{pkglibexecdir} \
270 %{?with_python:--with-python}
273 %{__make} -C doc poldek.info
284 rm -rf $RPM_BUILD_ROOT
285 install -d $RPM_BUILD_ROOT/var/cache/%{name}
288 DESTDIR=$RPM_BUILD_ROOT
290 install -p %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/poldek-config
293 %{__make} -C python install \
294 DESTDIR=$RPM_BUILD_ROOT \
295 py_sitedir=%{py_sitedir}
298 %{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
301 %define ftp_arch %{_target_cpu}
304 %define ftp_arch x86_64
305 %define ftp_alt_arch i686
308 %define tld_conf %{SOURCE1}
311 %define tld_multilib_conf %{SOURCE2}
314 %define tld_debuginfo_conf %{SOURCE3}
316 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{tld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld.conf
318 %if 0%{?tld_multilib_conf:1}
319 %{__sed} 's|%%ARCH%%|%{ftp_alt_arch}|g' < %{tld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
322 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{tld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-debuginfo.conf
324 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
327 # add desktop file and icon
328 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
329 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
330 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
333 # sources we don't package
334 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
335 # include them in %doc
338 %{__rm} -f configs/Makefile*
342 %{__rm} $RPM_BUILD_ROOT%{_libdir}/_poldekmod.{la,so}
349 rm -rf $RPM_BUILD_ROOT
352 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
353 if [ "$1" = "1" ]; then
354 # remove ignore = vserver-packages inside vserver on first install
357 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
358 done </proc/self/status
360 if [ -z "$ctx" -o "$ctx" = "0" ]; then
365 if [ "$VSERVER" = "yes" ]; then
366 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
370 %postun -p /sbin/postshell
371 -/usr/sbin/fix-info-dir -c %{_infodir}
373 %post libs -p /sbin/ldconfig
374 %postun libs -p /sbin/ldconfig
376 %triggerpostun -- poldek < 0.30-0.20080225.00.1
377 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
378 %{__sed} -i -e '/^%%include source.conf/{
380 a# /etc/poldek/repos.d/*.conf
381 a%%includedir repos.d
382 }' %{_sysconfdir}/%{name}/poldek.conf
385 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
386 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
388 if [ -f %{_sysconfdir}/%{name}/tld-source.conf.rpmsave ]; then
389 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld.conf{,.rpmnew}
390 %{__mv} -v %{_sysconfdir}/%{name}/tld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld.conf
394 if [ -f %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave ]; then
395 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf{,.rpmnew}
396 %{__mv} -v %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
400 %triggerpostun -- %{name} < 0.30.1-8
401 if [ $1 -le 1 ]; then
402 # revert change on --downgrade
403 %{__sed} -i -re 's,^pm command = %{pkglibexecdir}/pm-command.sh,#&,' %{_sysconfdir}/%{name}/%{name}.conf
406 %{__sed} -i -re 's,#?(pm command =).*,\1 %{pkglibexecdir}/pm-command.sh,' %{_sysconfdir}/%{name}/%{name}.conf
409 %files -f %{name}.lang
410 %defattr(644,root,root,755)
411 %doc ChangeLog README* NEWS configs
412 %dir %{_sysconfdir}/%{name}
413 %dir %{_sysconfdir}/%{name}/pre-install.d
414 %{_sysconfdir}/%{name}/pre-install.d/README
415 %dir %{_sysconfdir}/%{name}/post-install.d
416 %{_sysconfdir}/%{name}/post-install.d/README
417 %dir %{_sysconfdir}/%{name}/repos.d
418 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/cli.conf
419 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/fetch.conf
420 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/poldek.conf
421 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/source.conf
422 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld.conf
423 %if 0%{?tld_multilib_conf:1}
424 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
426 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld-debuginfo.conf
427 %attr(755,root,root) %{_bindir}/ipoldek
428 %attr(755,root,root) %{_bindir}/poldek
429 %attr(755,root,root) %{_bindir}/poldek-config
430 %attr(755,root,root) %{_bindir}/rpmvercmp
431 %dir %{pkglibexecdir}
432 %attr(755,root,root) %{pkglibexecdir}/pm-command.sh
433 %attr(755,root,root) %{pkglibexecdir}/poldekuser-setup.sh
434 %attr(755,root,root) %{pkglibexecdir}/vfcompr
435 %attr(755,root,root) %{pkglibexecdir}/vfjuggle
436 %attr(755,root,root) %{pkglibexecdir}/vfsmb
437 %attr(755,root,root) %{pkglibexecdir}/zlib-in-rpm.sh
438 %{_mandir}/man1/%{name}*.1*
439 %lang(pl) %{_mandir}/pl/man1/%{name}*
440 %{_infodir}/poldek.info*
442 %{_desktopdir}/%{name}.desktop
443 %{_pixmapsdir}/%{name}.png
445 %dir /var/cache/%{name}
447 %if %{without static}
449 %defattr(644,root,root,755)
450 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
451 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
452 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
453 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
454 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
455 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.1
456 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.3
457 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
458 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
459 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
463 %defattr(644,root,root,755)
464 %if %{without static}
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
471 %{_libdir}/libpoclidek.la
472 %{_libdir}/libpoldek.la
473 %{_libdir}/libtndb.la
474 %{_libdir}/libtrurl.la
475 %{_libdir}/libvfile.la
476 %{_includedir}/poldek
480 %{_pkgconfigdir}/tndb.pc
481 %{_pkgconfigdir}/trurlib.pc
484 %defattr(644,root,root,755)
486 %{_libdir}/libtrurl.a
489 %files -n python-poldek
490 %defattr(644,root,root,755)
491 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
492 %{py_sitescriptdir}/poldek.py[co]
493 %{py_sitescriptdir}/poldekmod.py[co]