2 # - fails to build without poldek-devel - fix it !
5 %bcond_with static # don't use shared libraries
6 %bcond_without imode # don't build interactive mode
7 %bcond_without python # don't build python bindings
9 # required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
10 %if "%{pld_release}" == "ti"
17 %define ver_rpm 4.5-49
21 Summary: RPM packages management helper tool
22 Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
23 Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
26 Release: 1.%{snap}.%{rel}
28 Group: Applications/System
29 #Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
30 Source0: http://carme.pld-linux.org/~cactus/snaps/poldek/%{name}-%{version}%{snap}.tar.xz
31 # Source0-md5: ab89926c28cfb6b7d72497fc37c16ac4
33 Source2: %{name}-multilib.conf
34 Source3: %{name}-ti.conf
35 Source4: %{name}-multilib-ti.conf
36 Source5: %{name}-aliases.conf
37 Source6: %{name}.desktop
39 Source8: %{name}-debuginfo.conf
40 Source9: %{name}-aidath.conf
41 Source10: %{name}-multilib-aidath.conf
42 Source11: %{name}-archive.conf
43 Patch0: %{name}-vserver-packages.patch
44 Patch1: %{name}-config.patch
45 Patch2: %{name}-size-type.patch
46 Patch3: %{name}-Os-fail-workaround.patch
47 Patch4: %{name}-git.patch
48 Patch5: %{name}-am.patch
49 URL: http://poldek.pld-linux.org/
50 BuildRequires: autoconf
51 BuildRequires: automake
52 BuildRequires: bzip2-devel
53 BuildRequires: check-devel
54 BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
55 BuildRequires: docbook-dtd412-xml
56 BuildRequires: gettext-devel
57 BuildRequires: libtool
58 BuildRequires: libxml2-devel
59 BuildRequires: neon-devel
60 BuildRequires: openssl-devel >= 0.9.7d
61 BuildRequires: pcre-devel
62 BuildRequires: pkgconfig
63 BuildRequires: popt-devel
64 %{?with_python:BuildRequires: python-devel}
65 BuildRequires: readline-devel >= 5.0
66 BuildRequires: rpm-devel >= %{ver_rpm}
67 %{?with_python:BuildRequires: rpm-pythonprov}
68 BuildRequires: swig-python
70 BuildRequires: zlib-devel
72 BuildRequires: bzip2-static
73 BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
74 BuildRequires: glibc-static
75 BuildRequires: libselinux-static
76 BuildRequires: libxml2-static
77 BuildRequires: ncurses-static
78 BuildRequires: openssl-static
79 BuildRequires: pcre-static
80 BuildRequires: popt-static
81 BuildRequires: readline-static
82 BuildRequires: rpm-static
83 BuildRequires: zlib-static
85 Requires(triggerpostun): awk
86 Requires(triggerpostun): sed >= 4.0
87 Requires: %{name}-libs = %{version}-%{release}
88 Requires: db >= %{ver_db}-%{ver_db_rel}
89 Requires: rpm >= %{ver_rpm}
90 Requires: rpm-db-ver = %{ver_db}
91 Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
94 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
97 poldek is an RPM package management tool which allows you to easily
98 perform package verification, installation (including system
99 installation from scratch), upgrading, and removal.
101 Program can be used in batch (like apt-get from Debian's APT) or
102 interactive mode. The interactive mode puts you into a readline
103 interface with command line autocompletion and history, similar to the
104 shell mode of Perl's CPAN.
106 %{?with_static:This version is statically linked.}
108 %{!?with_imode:This version hasn't got interactive mode.}
111 %description -l hu.UTF-8
112 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
113 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
114 nulláról), frissítést és eltávolítást.
116 A program használható parancssorból (mint a Debian apt-get programja)
117 vagy interaktív módban. Az interaktív mód egy readline környezetet
118 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
121 %{?with_static:Ez a verzió statikusan linkelt.}
123 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
125 %description -l pl.UTF-8
126 poldek jest narzędziem linii poleceń służącym do weryfikacji,
127 instalacji (włączając instalację systemu od zera), aktualizacji i
130 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
131 interaktywnym. Tryb interaktywny posiada interfejs readline z
132 dopełnianiem komend i historią, podobny do trybu shell perlowego
135 %{?with_static:Ta wersja jest konsolidowana statycznie.}
137 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
140 Summary: poldek libraries
141 Summary(hu.UTF-8): A poldek könyvtárai
142 Summary(pl.UTF-8): Biblioteki poldka
148 %description libs -l hu.UTF-8
151 %description libs -l pl.UTF-8
155 Summary: Header files for poldek libraries
156 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
157 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
158 Group: Development/Libraries
159 Requires: %{name}-libs = %{version}-%{release}
160 Requires: rpm-devel >= %{ver_rpm}
163 Header files for poldek libraries.
165 %description devel -l hu.UTF-8
166 A poldek könyvtár fejlesztői fájljai.
168 %description devel -l pl.UTF-8
169 Pliki nagłówkowe bibliotek poldka.
172 Summary: poldek static libraries
173 Summary(hu.UTF-8): poldek statikus könyvtárak
174 Summary(pl.UTF-8): Biblioteki statyczne poldka
175 Group: Development/Libraries
176 Requires: %{name}-devel = %{version}-%{release}
179 poldek static libraries.
181 %description static -l hu.UTF-8
182 poldek statikus könyvtárak.
184 %description static -l pl.UTF-8
185 Biblioteki statyczne poldka.
187 %package -n python-poldek
188 Summary: Python modules for poldek
189 Summary(hu.UTF-8): Python modulok poldek-hez
190 Summary(pl.UTF-8): Moduły języka Python dla poldka
191 Group: Libraries/Python
192 Requires: %{name}-libs = %{version}-%{release}
193 %pyrequires_eq python-libs
195 %description -n python-poldek
196 Python modules for poldek.
198 %description -n python-poldek -l hu.UTF-8
199 Python modulok poldek-hez.
201 %description -n python-poldek -l pl.UTF-8
202 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
239 CPPFLAGS="%{rpmcppflags} -std=gnu99"
241 %{?with_static:--enable-static --disable-shared} \
242 %{!?with_imode:--disable-imode} \
244 %{?with_python:--with-python}
249 rm -rf $RPM_BUILD_ROOT
250 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}}
252 %{__make} install -j1 \
253 DESTDIR=$RPM_BUILD_ROOT
256 %{__make} -C python -j1 install \
257 DESTDIR=$RPM_BUILD_ROOT \
261 %{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
263 %ifarch i486 i686 ppc sparc alpha athlon
264 %define _ftp_arch %{_target_cpu}
267 %define _ftp_arch x86_64
268 %define _ftp_alt_arch i686
271 %if "%{pld_release}" == "ti"
272 %define _ftp_arch i586
274 %define _ftp_arch i486
277 %ifarch pentium2 pentium3 pentium4
278 %define _ftp_arch i686
280 %ifarch sparcv9 sparc64
281 %define _ftp_arch sparc
282 %if "%{pld_release}" == "th"
283 %define _ftp_arch %{_target_cpu}
285 %define _ftp_alt_arch sparcv9
290 %if "%{pld_release}" == "ti"
291 %define pld_conf %{SOURCE3}
293 %define pld_multilib_conf %{SOURCE4}
297 %if "%{pld_release}" == "th"
298 %define pld_conf %{SOURCE1}
299 %define pld_debuginfo_conf %{SOURCE8}
300 %define pld_archive_conf %{SOURCE11}
303 %define pld_multilib_conf %{SOURCE2}
307 %ifarch sparcv9 sparc64
308 %define pld_conf %{SOURCE9}
309 %undefine pld_archive_conf
312 %define pld_multilib_conf %{SOURCE10}
316 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
318 %if 0%{?pld_multilib_conf:1}
319 sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
322 %if 0%{?pld_debuginfo_conf:1}
323 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
326 %if 0%{?pld_archive_conf:1}
327 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf
330 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
333 # add desktop file and icon
334 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
335 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
336 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
339 # sources we don't package
340 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
341 # include them in %doc
344 rm -f configs/Makefile*
348 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
354 rm -rf $RPM_BUILD_ROOT
357 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
358 if [ "$1" = "1" ]; then
359 # remove ignore = vserver-packages inside vserver on first install
362 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
363 done </proc/self/status
365 if [ -z "$ctx" -o "$ctx" = "0" ]; then
370 if [ "$VSERVER" = "yes" ]; then
371 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
375 %postun -p /sbin/postshell
376 -/usr/sbin/fix-info-dir -c %{_infodir}
378 %post libs -p /sbin/ldconfig
379 %postun libs -p /sbin/ldconfig
381 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
382 if [ -f /etc/poldek.conf.rpmsave ]; then
391 if (sub(",noauto", "", name)) {
396 if (match(name, /,pri=[0-9]+/)) {
397 pri = substr(name, RSTART + 5, RLENGTH - 5);
398 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
401 # skip ac sources. already in new config.
402 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
405 print "name = " name;
406 print "type = " type;
407 print "path = " path;
408 print "auto = " auto;
409 print "autoup = " autoup;
415 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
416 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
419 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
421 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
425 %triggerpostun -- poldek < 0.30-0.20080225.00.1
426 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
427 %{__sed} -i -e '/^%%include source.conf/{
429 a# /etc/poldek/repos.d/*.conf
430 a%%includedir repos.d
431 }' %{_sysconfdir}/%{name}/poldek.conf
434 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
435 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
437 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
438 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
439 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
443 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
444 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
445 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
449 %files -f %{name}.lang
450 %defattr(644,root,root,755)
451 %doc ChangeLog README* NEWS TODO configs
452 %dir %{_sysconfdir}/%{name}
453 %dir %{_sysconfdir}/%{name}/repos.d
454 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
455 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
456 %attr(755,root,root) %{_bindir}/ipoldek
457 %attr(755,root,root) %{_bindir}/poldek
458 %attr(755,root,root) %{_bindir}/rpmvercmp
459 %dir %{_libdir}/%{name}
460 %attr(755,root,root) %{_libdir}/%{name}/*
461 %{_mandir}/man1/%{name}*.1*
462 %lang(pl) %{_mandir}/pl/man1/%{name}*
463 %{_infodir}/poldek.info*
465 %{_desktopdir}/%{name}.desktop
466 %{_pixmapsdir}/%{name}.png
468 %dir /var/cache/%{name}
470 %if %{without static}
472 %defattr(644,root,root,755)
473 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
474 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
475 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
476 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
477 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
478 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
479 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
480 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
481 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
482 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
486 %defattr(644,root,root,755)
487 %if %{without static}
488 %attr(755,root,root) %{_libdir}/libpoclidek.so
489 %attr(755,root,root) %{_libdir}/libpoldek.so
490 %attr(755,root,root) %{_libdir}/libtndb.so
491 %attr(755,root,root) %{_libdir}/libtrurl.so
492 %attr(755,root,root) %{_libdir}/libvfile.so
494 %{_libdir}/libpoclidek.la
495 %{_libdir}/libpoldek.la
496 %{_libdir}/libtndb.la
497 %{_libdir}/libtrurl.la
498 %{_libdir}/libvfile.la
499 %{_includedir}/poldek
503 %{_pkgconfigdir}/tndb.pc
506 %defattr(644,root,root,755)
508 %{_libdir}/libtrurl.a
511 %files -n python-poldek
512 %defattr(644,root,root,755)
513 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
514 %{py_sitescriptdir}/poldek.py[co]
515 %{py_sitescriptdir}/poldekmod.py[co]