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 Patch8: %{name}-notzdata.patch
43 URL: http://poldek.pld-linux.org/
44 BuildRequires: %{db_pkg}-devel >= %{ver_db}-%{ver_db_rel}
45 BuildRequires: autoconf
46 BuildRequires: automake >= 1:1.11
47 BuildRequires: bzip2-devel
48 BuildRequires: check-devel
49 BuildRequires: docbook-dtd412-xml
50 BuildRequires: gettext-tools
51 BuildRequires: libgomp-devel
52 BuildRequires: libtool
53 BuildRequires: libxml2-devel
54 BuildRequires: openssl-devel >= 0.9.7d
55 BuildRequires: pcre-devel
56 BuildRequires: pkgconfig
57 BuildRequires: popt-devel
58 %{?with_python:BuildRequires: python-devel}
59 BuildRequires: readline-devel >= 5.0
60 BuildRequires: rpm-devel >= %{ver_rpm}
61 %{?with_python:BuildRequires: rpm-pythonprov}
62 BuildRequires: tar >= 1:1.22
65 BuildRequires: zlib-devel
67 BuildRequires: %{db_pkg}-static >= %{ver_db}-%{ver_db_rel}
68 BuildRequires: bzip2-static
69 BuildRequires: glibc-static
70 BuildRequires: libxml2-static
71 BuildRequires: ncurses-static
72 BuildRequires: openssl-static
73 BuildRequires: pcre-static
74 BuildRequires: popt-static
75 BuildRequires: readline-static
76 BuildRequires: rpm-static
77 BuildRequires: zlib-static
79 Requires(triggerpostun): awk
80 Requires(triggerpostun): sed >= 4.0
81 Requires: %{db_pkg} >= %{ver_db}-%{ver_db_rel}
82 Requires: %{name}-libs = %{version}-%{release}
83 Requires: /bin/run-parts
84 Requires: rpm >= %{ver_rpm}
85 Requires: rpm-db-ver = %{ver_db}
86 Requires: rpm-lib >= %{ver_rpm}
88 Conflicts: etckeeper < 1.18-2
89 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
91 %define _libexecdir %{_prefix}/lib/%{name}
94 poldek is an RPM package management tool which allows you to easily
95 perform package verification, installation (including system
96 installation from scratch), upgrading, and removal.
98 Program can be used in batch (like apt-get from Debian's APT) or
99 interactive mode. The interactive mode puts you into a readline
100 interface with command line autocompletion and history, similar to the
101 shell mode of Perl's CPAN.
103 %{?with_static:This version is statically linked.}
105 %{!?with_imode:This version hasn't got interactive mode.}
108 %description -l hu.UTF-8
109 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
110 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
111 nulláról), frissítést és eltávolítást.
113 A program használható parancssorból (mint a Debian apt-get programja)
114 vagy interaktív módban. Az interaktív mód egy readline környezetet
115 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
118 %{?with_static:Ez a verzió statikusan linkelt.}
120 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
122 %description -l pl.UTF-8
123 poldek jest narzędziem linii poleceń służącym do weryfikacji,
124 instalacji (włączając instalację systemu od zera), aktualizacji i
127 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
128 interaktywnym. Tryb interaktywny posiada interfejs readline z
129 dopełnianiem komend i historią, podobny do trybu shell perlowego
132 %{?with_static:Ta wersja jest konsolidowana statycznie.}
134 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
137 Summary: poldek libraries
138 Summary(hu.UTF-8): A poldek könyvtárai
139 Summary(pl.UTF-8): Biblioteki poldka
145 %description libs -l hu.UTF-8
148 %description libs -l pl.UTF-8
152 Summary: Header files for poldek libraries
153 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
154 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
155 Group: Development/Libraries
156 Requires: %{name}-libs = %{version}-%{release}
157 Requires: rpm-devel >= %{ver_rpm}
160 Header files for poldek libraries.
162 %description devel -l hu.UTF-8
163 A poldek könyvtár fejlesztői fájljai.
165 %description devel -l pl.UTF-8
166 Pliki nagłówkowe bibliotek poldka.
169 Summary: poldek static libraries
170 Summary(hu.UTF-8): poldek statikus könyvtárak
171 Summary(pl.UTF-8): Biblioteki statyczne poldka
172 Group: Development/Libraries
173 Requires: %{name}-devel = %{version}-%{release}
176 poldek static libraries.
178 %description static -l hu.UTF-8
179 poldek statikus könyvtárak.
181 %description static -l pl.UTF-8
182 Biblioteki statyczne poldka.
184 %package -n python-poldek
185 Summary: Python modules for poldek
186 Summary(hu.UTF-8): Python modulok poldek-hez
187 Summary(pl.UTF-8): Moduły języka Python dla poldka
188 Group: Libraries/Python
189 Requires: %{name}-libs = %{version}-%{release}
190 Requires: python-libs
192 %description -n python-poldek
193 Python modules for poldek.
195 %description -n python-poldek -l hu.UTF-8
196 Python modulok poldek-hez.
198 %description -n python-poldek -l pl.UTF-8
199 Moduły języka Python dla poldka.
213 %{__rm} m4/libtool.m4 m4/lt*.m4
215 # cleanup backups after patching
216 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
217 chmod u+x ./configure ./doc/conf-xml2.sh
240 CPPFLAGS="%{rpmcppflags} -std=gnu99 -fgnu89-inline -D_GNU_SOURCE=1 -fcommon"
242 %{?with_static:--enable-static --disable-shared} \
243 %{!?with_imode:--disable-imode} \
244 --with-pkglibdir=%{_libexecdir} \
246 %{?with_python:--with-python}
255 rm -rf $RPM_BUILD_ROOT
256 install -d $RPM_BUILD_ROOT/var/cache/%{name}
258 %{__make} install -j1 \
259 DESTDIR=$RPM_BUILD_ROOT
261 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/poldek-config
264 %{__make} -C python -j1 install \
265 DESTDIR=$RPM_BUILD_ROOT \
266 py_sitedir=%{py_sitedir}
269 %{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
272 %define ftp_arch %{_target_cpu}
275 %define ftp_arch x86_64
276 %define ftp_alt_arch i686
278 %ifarch pentium2 pentium3 pentium4
279 %define ftp_arch i686
282 %define tld_conf %{SOURCE1}
285 %define tld_multilib_conf %{SOURCE2}
288 %{__sed} -e 's|%%ARCH%%|%{ftp_arch}|g' < %{tld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld.conf
290 %if 0%{?tld_multilib_conf:1}
291 %{__sed} 's|%%ARCH%%|%{ftp_alt_arch}|g' < %{tld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
294 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
297 # add desktop file and icon
298 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
299 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
300 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
303 # sources we don't package
304 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
305 # include them in %doc
308 %{__rm} -f configs/Makefile*
312 %{__rm} $RPM_BUILD_ROOT%{_libdir}/_poldekmod.{la,so}
319 rm -rf $RPM_BUILD_ROOT
322 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
323 if [ "$1" = "1" ]; then
324 # remove ignore = vserver-packages inside vserver on first install
327 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
328 done </proc/self/status
330 if [ -z "$ctx" -o "$ctx" = "0" ]; then
335 if [ "$VSERVER" = "yes" ]; then
336 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
340 %postun -p /sbin/postshell
341 -/usr/sbin/fix-info-dir -c %{_infodir}
343 %post libs -p /sbin/ldconfig
344 %postun libs -p /sbin/ldconfig
346 %triggerpostun -- poldek < 0.30-0.20080225.00.1
347 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
348 %{__sed} -i -e '/^%%include source.conf/{
350 a# /etc/poldek/repos.d/*.conf
351 a%%includedir repos.d
352 }' %{_sysconfdir}/%{name}/poldek.conf
355 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
356 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
358 if [ -f %{_sysconfdir}/%{name}/tld-source.conf.rpmsave ]; then
359 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld.conf{,.rpmnew}
360 %{__mv} -v %{_sysconfdir}/%{name}/tld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld.conf
364 if [ -f %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave ]; then
365 %{__mv} -f %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf{,.rpmnew}
366 %{__mv} -v %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
370 %triggerpostun -- %{name} < 0.30.1-8
371 if [ $1 -le 1 ]; then
372 # revert change on --downgrade
373 %{__sed} -i -re 's,^pm command = %{_libexecdir}/pm-command.sh,#&,' %{_sysconfdir}/%{name}/%{name}.conf
376 %{__sed} -i -re 's,#?(pm command =).*,\1 %{_libexecdir}/pm-command.sh,' %{_sysconfdir}/%{name}/%{name}.conf
379 %files -f %{name}.lang
380 %defattr(644,root,root,755)
381 %doc ChangeLog README* NEWS TODO configs
382 %dir %{_sysconfdir}/%{name}
383 %dir %{_sysconfdir}/%{name}/pre-install.d
384 %{_sysconfdir}/%{name}/pre-install.d/README
385 %dir %{_sysconfdir}/%{name}/post-install.d
386 %{_sysconfdir}/%{name}/post-install.d/README
387 %dir %{_sysconfdir}/%{name}/repos.d
388 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/cli.conf
389 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/fetch.conf
390 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/poldek.conf
391 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/source.conf
392 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld.conf
393 %if 0%{?tld_multilib_conf:1}
394 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
396 %attr(755,root,root) %{_bindir}/ipoldek
397 %attr(755,root,root) %{_bindir}/poldek
398 %attr(755,root,root) %{_bindir}/poldek-config
399 %attr(755,root,root) %{_bindir}/rpmvercmp
401 %attr(755,root,root) %{_libexecdir}/pm-command.sh
402 %attr(755,root,root) %{_libexecdir}/poldekuser-setup.sh
403 %attr(755,root,root) %{_libexecdir}/vfcompr
404 %attr(755,root,root) %{_libexecdir}/vfjuggle
405 %attr(755,root,root) %{_libexecdir}/vfsmb
406 %attr(755,root,root) %{_libexecdir}/zlib-in-rpm.sh
407 %{_mandir}/man1/%{name}*.1*
408 %lang(pl) %{_mandir}/pl/man1/%{name}*
409 %{_infodir}/poldek.info*
411 %{_desktopdir}/%{name}.desktop
412 %{_pixmapsdir}/%{name}.png
414 %dir /var/cache/%{name}
416 %if %{without static}
418 %defattr(644,root,root,755)
419 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
420 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
421 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
422 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
423 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
424 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
425 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
426 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
427 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
428 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
432 %defattr(644,root,root,755)
433 %if %{without static}
434 %attr(755,root,root) %{_libdir}/libpoclidek.so
435 %attr(755,root,root) %{_libdir}/libpoldek.so
436 %attr(755,root,root) %{_libdir}/libtndb.so
437 %attr(755,root,root) %{_libdir}/libtrurl.so
438 %attr(755,root,root) %{_libdir}/libvfile.so
440 %{_libdir}/libpoclidek.la
441 %{_libdir}/libpoldek.la
442 %{_libdir}/libtndb.la
443 %{_libdir}/libtrurl.la
444 %{_libdir}/libvfile.la
445 %{_includedir}/poldek
449 %{_pkgconfigdir}/tndb.pc
450 %{_pkgconfigdir}/trurlib.pc
453 %defattr(644,root,root,755)
455 %{_libdir}/libtrurl.a
458 %files -n python-poldek
459 %defattr(644,root,root,755)
460 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
461 %{py_sitescriptdir}/poldek.py[co]
462 %{py_sitescriptdir}/poldekmod.py[co]