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
10 # required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
11 # NOTE: poldek links with "system db" (-ldb) anyway if it exists
15 %define ver_rpm 4.5-49
18 Summary: RPM packages management helper tool
19 Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
20 Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
25 Group: Applications/System
26 Source0: https://launchpad.net/poldek/0.32/%{version}/+download/%{name}-%{version}.tar.xz
27 # Source0-md5: 60b964723880569531f88f084cd3ae65
29 Source2: %{name}-multilib.conf
30 Source3: %{name}-config.sh
31 Source5: %{name}-aliases.conf
32 Source6: %{name}.desktop
34 Patch0: %{name}-size-type.patch
35 Patch1: %{name}-config.patch
36 Patch2: pm-hooks.patch
37 Patch3: WTERMSIG.patch
38 Patch4: %{name}-multiproto.patch
39 Patch5: %{name}-python-fix.patch
40 Patch6: %{name}-libdb.patch
42 URL: http://poldek.pld-linux.org/
43 BuildRequires: %{db_pkg}-devel >= %{ver_db}-%{ver_db_rel}
44 BuildRequires: autoconf
45 BuildRequires: automake >= 1:1.11
46 BuildRequires: bzip2-devel
47 BuildRequires: check-devel
48 BuildRequires: docbook-dtd412-xml
49 BuildRequires: gettext-tools
50 BuildRequires: libgomp-devel
51 BuildRequires: libtool
52 BuildRequires: libxml2-devel
53 BuildRequires: openssl-devel >= 0.9.7d
54 BuildRequires: pcre-devel
55 BuildRequires: pkgconfig
56 BuildRequires: popt-devel
57 %{?with_python:BuildRequires: python-devel}
58 BuildRequires: readline-devel >= 5.0
59 BuildRequires: rpm-devel >= %{ver_rpm}
60 %{?with_python:BuildRequires: rpm-pythonprov}
61 BuildRequires: tar >= 1:1.22
64 BuildRequires: zlib-devel
66 BuildRequires: %{db_pkg}-static >= %{ver_db}-%{ver_db_rel}
67 BuildRequires: bzip2-static
68 BuildRequires: glibc-static
69 BuildRequires: libxml2-static
70 BuildRequires: ncurses-static
71 BuildRequires: openssl-static
72 BuildRequires: pcre-static
73 BuildRequires: popt-static
74 BuildRequires: readline-static
75 BuildRequires: rpm-static
76 BuildRequires: zlib-static
78 Requires(triggerpostun): awk
79 Requires(triggerpostun): sed >= 4.0
80 Requires: %{db_pkg} >= %{ver_db}-%{ver_db_rel}
81 Requires: %{name}-libs = %{version}-%{release}
82 Requires: /bin/run-parts
83 Requires: rpm >= %{ver_rpm}
84 Requires: rpm-db-ver = %{ver_db}
85 Requires: rpm-lib >= %{ver_rpm}
87 Conflicts: etckeeper < 1.18-2
88 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
90 %define _libexecdir %{_prefix}/lib/%{name}
93 poldek is an RPM package management tool which allows you to easily
94 perform package verification, installation (including system
95 installation from scratch), upgrading, and removal.
97 Program can be used in batch (like apt-get from Debian's APT) or
98 interactive mode. The interactive mode puts you into a readline
99 interface with command line autocompletion and history, similar to the
100 shell mode of Perl's CPAN.
102 %{?with_static:This version is statically linked.}
104 %{!?with_imode:This version hasn't got interactive mode.}
107 %description -l hu.UTF-8
108 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
109 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
110 nulláról), frissítést és eltávolítást.
112 A program használható parancssorból (mint a Debian apt-get programja)
113 vagy interaktív módban. Az interaktív mód egy readline környezetet
114 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
117 %{?with_static:Ez a verzió statikusan linkelt.}
119 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
121 %description -l pl.UTF-8
122 poldek jest narzędziem linii poleceń służącym do weryfikacji,
123 instalacji (włączając instalację systemu od zera), aktualizacji i
126 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
127 interaktywnym. Tryb interaktywny posiada interfejs readline z
128 dopełnianiem komend i historią, podobny do trybu shell perlowego
131 %{?with_static:Ta wersja jest konsolidowana statycznie.}
133 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
136 Summary: poldek libraries
137 Summary(hu.UTF-8): A poldek könyvtárai
138 Summary(pl.UTF-8): Biblioteki poldka
144 %description libs -l hu.UTF-8
147 %description libs -l pl.UTF-8
151 Summary: Header files for poldek libraries
152 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
153 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
154 Group: Development/Libraries
155 Requires: %{name}-libs = %{version}-%{release}
156 Requires: rpm-devel >= %{ver_rpm}
159 Header files for poldek libraries.
161 %description devel -l hu.UTF-8
162 A poldek könyvtár fejlesztői fájljai.
164 %description devel -l pl.UTF-8
165 Pliki nagłówkowe bibliotek poldka.
168 Summary: poldek static libraries
169 Summary(hu.UTF-8): poldek statikus könyvtárak
170 Summary(pl.UTF-8): Biblioteki statyczne poldka
171 Group: Development/Libraries
172 Requires: %{name}-devel = %{version}-%{release}
175 poldek static libraries.
177 %description static -l hu.UTF-8
178 poldek statikus könyvtárak.
180 %description static -l pl.UTF-8
181 Biblioteki statyczne poldka.
183 %package -n python-poldek
184 Summary: Python modules for poldek
185 Summary(hu.UTF-8): Python modulok poldek-hez
186 Summary(pl.UTF-8): Moduły języka Python dla poldka
187 Group: Libraries/Python
188 Requires: %{name}-libs = %{version}-%{release}
189 Requires: python-libs
191 %description -n python-poldek
192 Python modules for poldek.
194 %description -n python-poldek -l hu.UTF-8
195 Python modulok poldek-hez.
197 %description -n python-poldek -l pl.UTF-8
198 Moduły języka Python dla poldka.
211 %{__rm} m4/libtool.m4 m4/lt*.m4
213 # cleanup backups after patching
214 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
215 chmod u+x ./configure ./doc/conf-xml2.sh
238 CPPFLAGS="%{rpmcppflags} -std=gnu99 -fgnu89-inline -D_GNU_SOURCE=1"
240 %{?with_static:--enable-static --disable-shared} \
241 %{!?with_imode:--disable-imode} \
242 --with-pkglibdir=%{_libexecdir} \
244 %{?with_python:--with-python}
253 rm -rf $RPM_BUILD_ROOT
254 install -d $RPM_BUILD_ROOT/var/cache/%{name}
256 %{__make} install -j1 \
257 DESTDIR=$RPM_BUILD_ROOT
259 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/poldek-config
262 %{__make} -C python -j1 install \
263 DESTDIR=$RPM_BUILD_ROOT \
264 py_sitedir=%{py_sitedir}
267 %{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
270 %define ftp_arch %{_target_cpu}
273 %define ftp_arch x86_64
274 %define ftp_alt_arch i686
276 %ifarch pentium2 pentium3 pentium4
277 %define ftp_arch i686
280 %define tld_conf %{SOURCE1}
283 %define tld_multilib_conf %{SOURCE2}
286 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{tld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld.conf
288 %if 0%{?tld_multilib_conf:1}
289 %{__sed} 's|%%ARCH%%|%{ftp_alt_arch}|g' < %{tld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
292 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
295 # add desktop file and icon
296 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
297 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
298 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
301 # sources we don't package
302 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
303 # include them in %doc
306 %{__rm} -f configs/Makefile*
310 %{__rm} $RPM_BUILD_ROOT%{_libdir}/_poldekmod.{la,so}
317 rm -rf $RPM_BUILD_ROOT
320 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
321 if [ "$1" = "1" ]; then
322 # remove ignore = vserver-packages inside vserver on first install
325 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
326 done </proc/self/status
328 if [ -z "$ctx" -o "$ctx" = "0" ]; then
333 if [ "$VSERVER" = "yes" ]; then
334 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
338 %postun -p /sbin/postshell
339 -/usr/sbin/fix-info-dir -c %{_infodir}
341 %post libs -p /sbin/ldconfig
342 %postun libs -p /sbin/ldconfig
344 %triggerpostun -- poldek < 0.30-0.20080225.00.1
345 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
346 %{__sed} -i -e '/^%%include source.conf/{
348 a# /etc/poldek/repos.d/*.conf
349 a%%includedir repos.d
350 }' %{_sysconfdir}/%{name}/poldek.conf
353 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
354 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
356 if [ -f %{_sysconfdir}/%{name}/tld-source.conf.rpmsave ]; then
357 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld.conf{,.rpmnew}
358 %{__mv} -v %{_sysconfdir}/%{name}/tld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld.conf
362 if [ -f %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave ]; then
363 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf{,.rpmnew}
364 %{__mv} -v %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
368 %triggerpostun -- %{name} < 0.30.1-8
369 if [ $1 -le 1 ]; then
370 # revert change on --downgrade
371 %{__sed} -i -re 's,^pm command = %{_libexecdir}/pm-command.sh,#&,' %{_sysconfdir}/%{name}/%{name}.conf
374 %{__sed} -i -re 's,#?(pm command =).*,\1 %{_libexecdir}/pm-command.sh,' %{_sysconfdir}/%{name}/%{name}.conf
377 %files -f %{name}.lang
378 %defattr(644,root,root,755)
379 %doc ChangeLog README* NEWS TODO configs
380 %dir %{_sysconfdir}/%{name}
381 %dir %{_sysconfdir}/%{name}/pre-install.d
382 %{_sysconfdir}/%{name}/pre-install.d/README
383 %dir %{_sysconfdir}/%{name}/post-install.d
384 %{_sysconfdir}/%{name}/post-install.d/README
385 %dir %{_sysconfdir}/%{name}/repos.d
386 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/cli.conf
387 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/fetch.conf
388 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/poldek.conf
389 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/source.conf
390 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld.conf
391 %if 0%{?tld_multilib_conf:1}
392 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
394 %attr(755,root,root) %{_bindir}/ipoldek
395 %attr(755,root,root) %{_bindir}/poldek
396 %attr(755,root,root) %{_bindir}/poldek-config
397 %attr(755,root,root) %{_bindir}/rpmvercmp
399 %attr(755,root,root) %{_libexecdir}/pm-command.sh
400 %attr(755,root,root) %{_libexecdir}/poldekuser-setup.sh
401 %attr(755,root,root) %{_libexecdir}/vfcompr
402 %attr(755,root,root) %{_libexecdir}/vfjuggle
403 %attr(755,root,root) %{_libexecdir}/vfsmb
404 %attr(755,root,root) %{_libexecdir}/zlib-in-rpm.sh
405 %{_mandir}/man1/%{name}*.1*
406 %lang(pl) %{_mandir}/pl/man1/%{name}*
407 %{_infodir}/poldek.info*
409 %{_desktopdir}/%{name}.desktop
410 %{_pixmapsdir}/%{name}.png
412 %dir /var/cache/%{name}
414 %if %{without static}
416 %defattr(644,root,root,755)
417 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
418 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
419 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
420 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
421 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
422 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
423 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
424 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
425 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
426 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
430 %defattr(644,root,root,755)
431 %if %{without static}
432 %attr(755,root,root) %{_libdir}/libpoclidek.so
433 %attr(755,root,root) %{_libdir}/libpoldek.so
434 %attr(755,root,root) %{_libdir}/libtndb.so
435 %attr(755,root,root) %{_libdir}/libtrurl.so
436 %attr(755,root,root) %{_libdir}/libvfile.so
438 %{_libdir}/libpoclidek.la
439 %{_libdir}/libpoldek.la
440 %{_libdir}/libtndb.la
441 %{_libdir}/libtrurl.la
442 %{_libdir}/libvfile.la
443 %{_includedir}/poldek
447 %{_pkgconfigdir}/tndb.pc
448 %{_pkgconfigdir}/trurlib.pc
451 %defattr(644,root,root,755)
453 %{_libdir}/libtrurl.a
456 %files -n python-poldek
457 %defattr(644,root,root,755)
458 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
459 %{py_sitescriptdir}/poldek.py[co]
460 %{py_sitescriptdir}/poldekmod.py[co]