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 URL: http://poldek.pld-linux.org/
39 BuildRequires: %{db_pkg}-devel >= %{ver_db}-%{ver_db_rel}
40 BuildRequires: autoconf
41 BuildRequires: automake >= 1:1.11
42 BuildRequires: bzip2-devel
43 BuildRequires: check-devel
44 BuildRequires: docbook-dtd412-xml
45 BuildRequires: gettext-tools
46 BuildRequires: libgomp-devel
47 BuildRequires: libtool
48 BuildRequires: libxml2-devel
49 BuildRequires: openssl-devel >= 0.9.7d
50 BuildRequires: pcre-devel
51 BuildRequires: pkgconfig
52 BuildRequires: popt-devel
53 %{?with_python:BuildRequires: python-devel}
54 BuildRequires: readline-devel >= 5.0
55 BuildRequires: rpm-devel >= %{ver_rpm}
56 %{?with_python:BuildRequires: rpm-pythonprov}
57 BuildRequires: tar >= 1:1.22
60 BuildRequires: zlib-devel
62 BuildRequires: %{db_pkg}-static >= %{ver_db}-%{ver_db_rel}
63 BuildRequires: bzip2-static
64 BuildRequires: glibc-static
65 BuildRequires: libxml2-static
66 BuildRequires: ncurses-static
67 BuildRequires: openssl-static
68 BuildRequires: pcre-static
69 BuildRequires: popt-static
70 BuildRequires: readline-static
71 BuildRequires: rpm-static
72 BuildRequires: zlib-static
74 Requires(triggerpostun): awk
75 Requires(triggerpostun): sed >= 4.0
76 Requires: %{db_pkg} >= %{ver_db}-%{ver_db_rel}
77 Requires: %{name}-libs = %{version}-%{release}
78 Requires: /bin/run-parts
79 Requires: rpm >= %{ver_rpm}
80 Requires: rpm-db-ver = %{ver_db}
81 Requires: rpm-lib >= %{ver_rpm}
83 Conflicts: etckeeper < 1.18-2
84 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
86 %define _libexecdir %{_prefix}/lib/%{name}
89 poldek is an RPM package management tool which allows you to easily
90 perform package verification, installation (including system
91 installation from scratch), upgrading, and removal.
93 Program can be used in batch (like apt-get from Debian's APT) or
94 interactive mode. The interactive mode puts you into a readline
95 interface with command line autocompletion and history, similar to the
96 shell mode of Perl's CPAN.
98 %{?with_static:This version is statically linked.}
100 %{!?with_imode:This version hasn't got interactive mode.}
103 %description -l hu.UTF-8
104 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
105 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
106 nulláról), frissítést és eltávolítást.
108 A program használható parancssorból (mint a Debian apt-get programja)
109 vagy interaktív módban. Az interaktív mód egy readline környezetet
110 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
113 %{?with_static:Ez a verzió statikusan linkelt.}
115 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
117 %description -l pl.UTF-8
118 poldek jest narzędziem linii poleceń służącym do weryfikacji,
119 instalacji (włączając instalację systemu od zera), aktualizacji i
122 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
123 interaktywnym. Tryb interaktywny posiada interfejs readline z
124 dopełnianiem komend i historią, podobny do trybu shell perlowego
127 %{?with_static:Ta wersja jest konsolidowana statycznie.}
129 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
132 Summary: poldek libraries
133 Summary(hu.UTF-8): A poldek könyvtárai
134 Summary(pl.UTF-8): Biblioteki poldka
140 %description libs -l hu.UTF-8
143 %description libs -l pl.UTF-8
147 Summary: Header files for poldek libraries
148 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
149 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
150 Group: Development/Libraries
151 Requires: %{name}-libs = %{version}-%{release}
152 Requires: rpm-devel >= %{ver_rpm}
155 Header files for poldek libraries.
157 %description devel -l hu.UTF-8
158 A poldek könyvtár fejlesztői fájljai.
160 %description devel -l pl.UTF-8
161 Pliki nagłówkowe bibliotek poldka.
164 Summary: poldek static libraries
165 Summary(hu.UTF-8): poldek statikus könyvtárak
166 Summary(pl.UTF-8): Biblioteki statyczne poldka
167 Group: Development/Libraries
168 Requires: %{name}-devel = %{version}-%{release}
171 poldek static libraries.
173 %description static -l hu.UTF-8
174 poldek statikus könyvtárak.
176 %description static -l pl.UTF-8
177 Biblioteki statyczne poldka.
179 %package -n python-poldek
180 Summary: Python modules for poldek
181 Summary(hu.UTF-8): Python modulok poldek-hez
182 Summary(pl.UTF-8): Moduły języka Python dla poldka
183 Group: Libraries/Python
184 Requires: %{name}-libs = %{version}-%{release}
185 Requires: python-libs
187 %description -n python-poldek
188 Python modules for poldek.
190 %description -n python-poldek -l hu.UTF-8
191 Python modulok poldek-hez.
193 %description -n python-poldek -l pl.UTF-8
194 Moduły języka Python dla poldka.
203 %{__rm} m4/libtool.m4 m4/lt*.m4
205 # cleanup backups after patching
206 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
207 chmod u+x ./configure ./doc/conf-xml2.sh
230 CPPFLAGS="%{rpmcppflags} -std=gnu99 -fgnu89-inline"
232 %{?with_static:--enable-static --disable-shared} \
233 %{!?with_imode:--disable-imode} \
234 --with-pkglibdir=%{_libexecdir} \
236 %{?with_python:--with-python}
241 rm -rf $RPM_BUILD_ROOT
242 install -d $RPM_BUILD_ROOT/var/cache/%{name}
244 %{__make} install -j1 \
245 DESTDIR=$RPM_BUILD_ROOT
247 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/poldek-config
250 %{__make} -C python -j1 install \
251 DESTDIR=$RPM_BUILD_ROOT \
255 %{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
258 %define ftp_arch %{_target_cpu}
261 %define ftp_arch x86_64
262 %define ftp_alt_arch i686
264 %ifarch pentium2 pentium3 pentium4
265 %define ftp_arch i686
268 %define tld_conf %{SOURCE1}
271 %define tld_multilib_conf %{SOURCE2}
274 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{tld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld.conf
276 %if 0%{?tld_multilib_conf:1}
277 %{__sed} 's|%%ARCH%%|%{ftp_alt_arch}|g' < %{tld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
280 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
283 # add desktop file and icon
284 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
285 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
286 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
289 # sources we don't package
290 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
291 # include them in %doc
294 %{__rm} -f configs/Makefile*
298 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
305 rm -rf $RPM_BUILD_ROOT
308 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
309 if [ "$1" = "1" ]; then
310 # remove ignore = vserver-packages inside vserver on first install
313 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
314 done </proc/self/status
316 if [ -z "$ctx" -o "$ctx" = "0" ]; then
321 if [ "$VSERVER" = "yes" ]; then
322 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
326 %postun -p /sbin/postshell
327 -/usr/sbin/fix-info-dir -c %{_infodir}
329 %post libs -p /sbin/ldconfig
330 %postun libs -p /sbin/ldconfig
332 %triggerpostun -- poldek < 0.30-0.20080225.00.1
333 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
334 %{__sed} -i -e '/^%%include source.conf/{
336 a# /etc/poldek/repos.d/*.conf
337 a%%includedir repos.d
338 }' %{_sysconfdir}/%{name}/poldek.conf
341 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
342 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
344 if [ -f %{_sysconfdir}/%{name}/tld-source.conf.rpmsave ]; then
345 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld.conf{,.rpmnew}
346 %{__mv} -v %{_sysconfdir}/%{name}/tld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld.conf
350 if [ -f %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave ]; then
351 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf{,.rpmnew}
352 %{__mv} -v %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
356 %triggerpostun -- %{name} < 0.30.1-8
357 if [ $1 -le 1 ]; then
358 # revert change on --downgrade
359 %{__sed} -i -re 's,^pm command = %{_libexecdir}/pm-command.sh,#&,' %{_sysconfdir}/%{name}/%{name}.conf
362 %{__sed} -i -re 's,#?(pm command =).*,\1 %{_libexecdir}/pm-command.sh,' %{_sysconfdir}/%{name}/%{name}.conf
365 %files -f %{name}.lang
366 %defattr(644,root,root,755)
367 %doc ChangeLog README* NEWS TODO configs
368 %dir %{_sysconfdir}/%{name}
369 %dir %{_sysconfdir}/%{name}/pre-install.d
370 %{_sysconfdir}/%{name}/pre-install.d/README
371 %dir %{_sysconfdir}/%{name}/post-install.d
372 %{_sysconfdir}/%{name}/post-install.d/README
373 %dir %{_sysconfdir}/%{name}/repos.d
374 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/cli.conf
375 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/fetch.conf
376 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/poldek.conf
377 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/source.conf
378 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld.conf
379 %if 0%{?tld_multilib_conf:1}
380 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
382 %attr(755,root,root) %{_bindir}/ipoldek
383 %attr(755,root,root) %{_bindir}/poldek
384 %attr(755,root,root) %{_bindir}/poldek-config
385 %attr(755,root,root) %{_bindir}/rpmvercmp
387 %attr(755,root,root) %{_libexecdir}/pm-command.sh
388 %attr(755,root,root) %{_libexecdir}/poldekuser-setup.sh
389 %attr(755,root,root) %{_libexecdir}/vfcompr
390 %attr(755,root,root) %{_libexecdir}/vfjuggle
391 %attr(755,root,root) %{_libexecdir}/vfsmb
392 %attr(755,root,root) %{_libexecdir}/zlib-in-rpm.sh
393 %{_mandir}/man1/%{name}*.1*
394 %lang(pl) %{_mandir}/pl/man1/%{name}*
395 %{_infodir}/poldek.info*
397 %{_desktopdir}/%{name}.desktop
398 %{_pixmapsdir}/%{name}.png
400 %dir /var/cache/%{name}
402 %if %{without static}
404 %defattr(644,root,root,755)
405 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
406 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
407 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
408 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
409 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
410 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
411 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
412 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
413 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
414 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
418 %defattr(644,root,root,755)
419 %if %{without static}
420 %attr(755,root,root) %{_libdir}/libpoclidek.so
421 %attr(755,root,root) %{_libdir}/libpoldek.so
422 %attr(755,root,root) %{_libdir}/libtndb.so
423 %attr(755,root,root) %{_libdir}/libtrurl.so
424 %attr(755,root,root) %{_libdir}/libvfile.so
426 %{_libdir}/libpoclidek.la
427 %{_libdir}/libpoldek.la
428 %{_libdir}/libtndb.la
429 %{_libdir}/libtrurl.la
430 %{_libdir}/libvfile.la
431 %{_includedir}/poldek
435 %{_pkgconfigdir}/tndb.pc
436 %{_pkgconfigdir}/trurlib.pc
439 %defattr(644,root,root,755)
441 %{_libdir}/libtrurl.a
444 %files -n python-poldek
445 %defattr(644,root,root,755)
446 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
447 %{py_sitescriptdir}/poldek.py[co]
448 %{py_sitescriptdir}/poldekmod.py[co]