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 URL: http://poldek.pld-linux.org/
68 BuildRequires: %{db_pkg}-devel >= %{ver_db}-%{ver_db_rel}
69 BuildRequires: autoconf
70 BuildRequires: automake >= 1:1.11
71 BuildRequires: bzip2-devel
72 BuildRequires: check-devel
73 BuildRequires: docbook-dtd412-xml
74 BuildRequires: gettext-tools
75 BuildRequires: libgomp-devel
76 BuildRequires: libtool
77 BuildRequires: libxml2-devel
78 BuildRequires: openssl-devel >= 0.9.7d
79 BuildRequires: pcre-devel
80 BuildRequires: pkgconfig
81 BuildRequires: popt-devel
82 %{?with_python:BuildRequires: python-devel}
83 BuildRequires: readline-devel >= 5.0
84 BuildRequires: rpm-devel >= %{ver_rpm}
85 %{?with_python:BuildRequires: rpm-pythonprov}
86 BuildRequires: tar >= 1:1.22
89 BuildRequires: zlib-devel
91 BuildRequires: %{db_pkg}-static >= %{ver_db}-%{ver_db_rel}
92 BuildRequires: bzip2-static
93 BuildRequires: glibc-static
94 BuildRequires: libxml2-static
95 BuildRequires: ncurses-static
96 BuildRequires: openssl-static
97 BuildRequires: pcre-static
98 BuildRequires: popt-static
99 BuildRequires: readline-static
100 BuildRequires: rpm-static
101 BuildRequires: zlib-static
103 Requires(triggerpostun): awk
104 Requires(triggerpostun): sed >= 4.0
105 Requires: %{db_pkg} >= %{ver_db}-%{ver_db_rel}
106 Requires: %{name}-libs = %{version}-%{release}
107 Requires: /bin/run-parts
108 Requires: rpm >= %{ver_rpm}
109 Requires: rpm-db-ver = %{ver_db}
110 Requires: rpm-lib >= %{ver_rpm}
112 Conflicts: etckeeper < 1.18-2
113 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
115 %define _libexecdir %{_prefix}/lib/%{name}
118 poldek is an RPM package management tool which allows you to easily
119 perform package verification, installation (including system
120 installation from scratch), upgrading, and removal.
122 Program can be used in batch (like apt-get from Debian's APT) or
123 interactive mode. The interactive mode puts you into a readline
124 interface with command line autocompletion and history, similar to the
125 shell mode of Perl's CPAN.
127 %{?with_static:This version is statically linked.}
129 %{!?with_imode:This version hasn't got interactive mode.}
132 %description -l hu.UTF-8
133 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
134 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
135 nulláról), frissítést és eltávolítást.
137 A program használható parancssorból (mint a Debian apt-get programja)
138 vagy interaktív módban. Az interaktív mód egy readline környezetet
139 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
142 %{?with_static:Ez a verzió statikusan linkelt.}
144 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
146 %description -l pl.UTF-8
147 poldek jest narzędziem linii poleceń służącym do weryfikacji,
148 instalacji (włączając instalację systemu od zera), aktualizacji i
151 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
152 interaktywnym. Tryb interaktywny posiada interfejs readline z
153 dopełnianiem komend i historią, podobny do trybu shell perlowego
156 %{?with_static:Ta wersja jest konsolidowana statycznie.}
158 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
161 Summary: poldek libraries
162 Summary(hu.UTF-8): A poldek könyvtárai
163 Summary(pl.UTF-8): Biblioteki poldka
169 %description libs -l hu.UTF-8
172 %description libs -l pl.UTF-8
176 Summary: Header files for poldek libraries
177 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
178 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
179 Group: Development/Libraries
180 Requires: %{name}-libs = %{version}-%{release}
181 Requires: rpm-devel >= %{ver_rpm}
184 Header files for poldek libraries.
186 %description devel -l hu.UTF-8
187 A poldek könyvtár fejlesztői fájljai.
189 %description devel -l pl.UTF-8
190 Pliki nagłówkowe bibliotek poldka.
193 Summary: poldek static libraries
194 Summary(hu.UTF-8): poldek statikus könyvtárak
195 Summary(pl.UTF-8): Biblioteki statyczne poldka
196 Group: Development/Libraries
197 Requires: %{name}-devel = %{version}-%{release}
200 poldek static libraries.
202 %description static -l hu.UTF-8
203 poldek statikus könyvtárak.
205 %description static -l pl.UTF-8
206 Biblioteki statyczne poldka.
208 %package -n python-poldek
209 Summary: Python modules for poldek
210 Summary(hu.UTF-8): Python modulok poldek-hez
211 Summary(pl.UTF-8): Moduły języka Python dla poldka
212 Group: Libraries/Python
213 Requires: %{name}-libs = %{version}-%{release}
214 Requires: python-libs
216 %description -n python-poldek
217 Python modules for poldek.
219 %description -n python-poldek -l hu.UTF-8
220 Python modulok poldek-hez.
222 %description -n python-poldek -l pl.UTF-8
223 Moduły języka Python dla poldka.
232 %{__rm} m4/libtool.m4 m4/lt*.m4
234 # cleanup backups after patching
235 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
236 chmod u+x ./configure ./doc/conf-xml2.sh
259 CPPFLAGS="%{rpmcppflags} -std=gnu99 -fgnu89-inline"
261 %{?with_static:--enable-static --disable-shared} \
262 %{!?with_imode:--disable-imode} \
263 --with-pkglibdir=%{_libexecdir} \
265 %{?with_python:--with-python}
270 rm -rf $RPM_BUILD_ROOT
271 install -d $RPM_BUILD_ROOT/var/cache/%{name}
273 %{__make} install -j1 \
274 DESTDIR=$RPM_BUILD_ROOT
276 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/poldek-config
279 %{__make} -C python -j1 install \
280 DESTDIR=$RPM_BUILD_ROOT \
284 %{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
286 %ifarch i486 i686 ppc sparc alpha athlon
287 %define ftp_arch %{_target_cpu}
290 %define ftp_arch x86_64
291 %define ftp_alt_arch i686
292 %define ftp_alt2_arch x32
296 %define ftp_alt_arch x86_64
297 %define ftp_alt2_arch i686
300 %define ftp_arch i486
302 %ifarch pentium2 pentium3 pentium4
303 %define ftp_arch i686
305 %ifarch sparcv9 sparc64
306 %define ftp_arch sparc
307 %define ftp_arch %{_target_cpu}
309 %define ftp_alt_arch sparcv9
313 %define pld_conf %{SOURCE1}
314 %define pld_debuginfo_conf %{SOURCE8}
315 %define pld_archive_conf %{SOURCE11}
318 %define pld_multilib_conf %{SOURCE2}
319 %define pld_multilib2_conf %{SOURCE2}
323 %ifarch sparcv9 sparc64
324 %define pld_conf %{SOURCE9}
325 %undefine pld_archive_conf
328 %define pld_multilib_conf %{SOURCE10}
331 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
333 %if 0%{?pld_multilib_conf:1}
334 %{__sed} 's|%%ARCH%%|%{ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt_arch}.conf
337 %if 0%{?pld_multilib2_conf:1}
338 %{__sed} 's|%%ARCH%%|%{ftp_alt2_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt2_arch}.conf
341 %if 0%{?pld_debuginfo_conf:1}
342 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
345 %if 0%{?pld_archive_conf:1}
346 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf
349 # Always install snapshot configs
350 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' \
351 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE100} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
352 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' \
353 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE102} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-debuginfo.conf
355 %{__sed} -e 's|%%ARCH%%|%{ftp_alt_arch}|g' \
356 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt_arch}.conf
357 %{__sed} -e 's|%%ARCH%%|%{ftp_alt2_arch}|g' \
358 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt2_arch}.conf
362 %{__sed} -i -e 's|@@SNAP@@||g' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
363 %{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
365 %{__sed} -i -e 's|@@SNAP@@||g' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
366 %{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
369 # create "all" meta repo
370 %if 0%{?ftp_alt_arch:1}%{?ftp_alt2_arch:1}
371 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-all.conf
372 # group source for referring th+th-multiarch sources together, i.e poldek -n th-all
376 sources = th %{?ftp_alt_arch:th-%{ftp_alt_arch}} %{?ftp_alt2_arch:th-%{ftp_alt2_arch}}
380 # th-2014 snap does not exist for x32 yet
381 %if "%{ftp_arch}" == "x32"
382 rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
384 %if "%{ftp_alt2_arch}" == "x32"
385 rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-x32.conf
388 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
391 # add desktop file and icon
392 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
393 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
394 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
397 # sources we don't package
398 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
399 # include them in %doc
402 %{__rm} -f configs/Makefile*
406 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
412 rm -rf $RPM_BUILD_ROOT
415 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
416 if [ "$1" = "1" ]; then
417 # remove ignore = vserver-packages inside vserver on first install
420 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
421 done </proc/self/status
423 if [ -z "$ctx" -o "$ctx" = "0" ]; then
428 if [ "$VSERVER" = "yes" ]; then
429 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
433 %postun -p /sbin/postshell
434 -/usr/sbin/fix-info-dir -c %{_infodir}
436 %post libs -p /sbin/ldconfig
437 %postun libs -p /sbin/ldconfig
439 %triggerpostun -- poldek < 0.30-0.20080225.00.1
440 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
441 %{__sed} -i -e '/^%%include source.conf/{
443 a# /etc/poldek/repos.d/*.conf
444 a%%includedir repos.d
445 }' %{_sysconfdir}/%{name}/poldek.conf
448 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
449 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
451 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
452 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
453 %{__mv} -v %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
457 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
458 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
459 %{__mv} -v %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
463 %triggerpostun -- poldek < 0.30.1-3
464 if [ -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf.rpmsave ]; then
465 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt_arch}.conf{,.rpmnew}
466 %{__mv} -v %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-%{ftp_alt_arch}.conf
468 if [ -f %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf.rpmsave ]; then
469 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt_arch}.conf{,.rpmnew}
470 %{__mv} -v %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-%{ftp_alt_arch}.conf
473 %triggerpostun -- %{name} < 0.30.1-8
474 if [ $1 -le 1 ]; then
475 # revert change on --downgrade
476 %{__sed} -i -re 's,^pm command = %{_libexecdir}/pm-command.sh,#&,' %{_sysconfdir}/%{name}/%{name}.conf
479 %{__sed} -i -re 's,#?(pm command =).*,\1 %{_libexecdir}/pm-command.sh,' %{_sysconfdir}/%{name}/%{name}.conf
482 %files -f %{name}.lang
483 %defattr(644,root,root,755)
484 %doc ChangeLog README* NEWS TODO configs
485 %dir %{_sysconfdir}/%{name}
486 %dir %{_sysconfdir}/%{name}/pre-install.d
487 %{_sysconfdir}/%{name}/pre-install.d/README
488 %dir %{_sysconfdir}/%{name}/post-install.d
489 %{_sysconfdir}/%{name}/post-install.d/README
490 %dir %{_sysconfdir}/%{name}/repos.d
491 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
492 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
493 %attr(755,root,root) %{_bindir}/ipoldek
494 %attr(755,root,root) %{_bindir}/poldek
495 %attr(755,root,root) %{_bindir}/poldek-config
496 %attr(755,root,root) %{_bindir}/rpmvercmp
498 %attr(755,root,root) %{_libexecdir}/pm-command.sh
499 %attr(755,root,root) %{_libexecdir}/poldekuser-setup.sh
500 %attr(755,root,root) %{_libexecdir}/vfcompr
501 %attr(755,root,root) %{_libexecdir}/vfjuggle
502 %attr(755,root,root) %{_libexecdir}/vfsmb
503 %attr(755,root,root) %{_libexecdir}/zlib-in-rpm.sh
504 %{_mandir}/man1/%{name}*.1*
505 %lang(pl) %{_mandir}/pl/man1/%{name}*
506 %{_infodir}/poldek.info*
508 %{_desktopdir}/%{name}.desktop
509 %{_pixmapsdir}/%{name}.png
511 %dir /var/cache/%{name}
513 %if %{without static}
515 %defattr(644,root,root,755)
516 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
517 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
518 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
519 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
520 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
521 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
522 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
523 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
524 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
525 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
529 %defattr(644,root,root,755)
530 %if %{without static}
531 %attr(755,root,root) %{_libdir}/libpoclidek.so
532 %attr(755,root,root) %{_libdir}/libpoldek.so
533 %attr(755,root,root) %{_libdir}/libtndb.so
534 %attr(755,root,root) %{_libdir}/libtrurl.so
535 %attr(755,root,root) %{_libdir}/libvfile.so
537 %{_libdir}/libpoclidek.la
538 %{_libdir}/libpoldek.la
539 %{_libdir}/libtndb.la
540 %{_libdir}/libtrurl.la
541 %{_libdir}/libvfile.la
542 %{_includedir}/poldek
546 %{_pkgconfigdir}/tndb.pc
547 %{_pkgconfigdir}/trurlib.pc
550 %defattr(644,root,root,755)
552 %{_libdir}/libtrurl.a
555 %files -n python-poldek
556 %defattr(644,root,root,755)
557 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
558 %{py_sitescriptdir}/poldek.py[co]
559 %{py_sitescriptdir}/poldekmod.py[co]