4 # - fails to build without poldek-devel - fix it !
7 %bcond_with static # don't use shared libraries
8 %bcond_without imode # don't build interactive mode
9 %bcond_without python # don't build python bindings
11 # required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
14 %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
23 Release: 0.%{snap}.%{rel}
25 Group: Applications/System
26 #Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
27 Source0: http://carme.pld-linux.org/~cactus/snaps/poldek/%{name}-%{version}%{snap}.tar.bz2
28 # Source0-md5: 14135ae2960da09990c50d5b5342be64
30 Source2: %{name}-multilib.conf
31 Source3: %{name}-aliases.conf
32 Source4: %{name}.desktop
34 Patch0: %{name}-vserver-packages.patch
35 Patch1: %{name}-config.patch
36 Patch2: %{name}-size-type.patch
37 Patch3: ac-prog-libtool.patch
38 Patch4: %{name}-Os-fail-workaround.patch
39 URL: http://poldek.pld-linux.org/
40 BuildRequires: autoconf
41 BuildRequires: automake
42 BuildRequires: bzip2-devel
43 BuildRequires: check-devel
44 BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
45 BuildRequires: docbook-dtd412-xml
46 BuildRequires: gettext-devel
47 BuildRequires: libtool
48 BuildRequires: libxml2-devel
49 BuildRequires: neon-devel
50 BuildRequires: openssl-devel >= 0.9.7d
51 BuildRequires: pcre-devel
52 BuildRequires: pkgconfig
53 BuildRequires: popt-devel
54 %{?with_python:BuildRequires: python-devel}
55 BuildRequires: readline-devel >= 5.0
56 BuildRequires: rpm-devel >= %{ver_rpm}
57 %{?with_python:BuildRequires: rpm-pythonprov}
58 BuildRequires: swig-python
59 BuildRequires: zlib-devel
61 BuildRequires: bzip2-static
62 BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
63 BuildRequires: glibc-static
64 BuildRequires: libselinux-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: %{name}-libs = %{version}-%{release}
77 Requires: db >= %{ver_db}-%{ver_db_rel}
78 Requires: rpm >= %{ver_rpm}
79 Requires: rpm-db-ver = %{ver_db}
80 Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
83 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
86 poldek is an RPM package management tool which allows you to easily
87 perform package verification, installation (including system
88 installation from scratch), upgrading, and removal.
90 Program can be used in batch (like apt-get from Debian's APT) or
91 interactive mode. The interactive mode puts you into a readline
92 interface with command line autocompletion and history, similar to the
93 shell mode of Perl's CPAN.
95 %{?with_static:This version is statically linked.}
97 %{!?with_imode:This version hasn't got interactive mode.}
100 %description -l hu.UTF-8
101 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
102 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
103 nulláról), frissítést és eltávolítást.
105 A program használható parancssorból (mint a Debian apt-get programja)
106 vagy interaktív módban. Az interaktív mód egy readline környezetet
107 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
110 %{?with_static:Ez a verzió statikusan linkelt.}
112 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
114 %description -l pl.UTF-8
115 poldek jest narzędziem linii poleceń służącym do weryfikacji,
116 instalacji (włączając instalację systemu od zera), aktualizacji i
119 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
120 interaktywnym. Tryb interaktywny posiada interfejs readline z
121 dopełnianiem komend i historią, podobny do trybu shell perlowego
124 %{?with_static:Ta wersja jest konsolidowana statycznie.}
126 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
129 Summary: poldek libraries
130 Summary(hu.UTF-8): A poldek könyvtárai
131 Summary(pl.UTF-8): Biblioteki poldka
137 %description libs -l hu.UTF-8
140 %description libs -l pl.UTF-8
144 Summary: Header files for poldek libraries
145 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
146 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
147 Group: Development/Libraries
148 Requires: %{name}-libs = %{version}-%{release}
149 Requires: rpm-devel >= %{ver_rpm}
152 Header files for poldek libraries.
154 %description devel -l hu.UTF-8
155 A poldek könyvtár fejlesztői fájljai.
157 %description devel -l pl.UTF-8
158 Pliki nagłówkowe bibliotek poldka.
161 Summary: poldek static libraries
162 Summary(hu.UTF-8): poldek statikus könyvtárak
163 Summary(pl.UTF-8): Biblioteki statyczne poldka
164 Group: Development/Libraries
165 Requires: %{name}-devel = %{version}-%{release}
168 poldek static libraries.
170 %description static -l hu.UTF-8
171 poldek statikus könyvtárak.
173 %description static -l pl.UTF-8
174 Biblioteki statyczne poldka.
176 %package -n python-poldek
177 Summary: Python modules for poldek
178 Summary(hu.UTF-8): Python modulok poldek-hez
179 Summary(pl.UTF-8): Moduły języka Python dla poldka
180 Group: Libraries/Python
181 Requires: %{name}-libs = %{version}-%{release}
182 %pyrequires_eq python-libs
184 %description -n python-poldek
185 Python modules for poldek.
187 %description -n python-poldek -l hu.UTF-8
188 Python modulok poldek-hez.
190 %description -n python-poldek -l pl.UTF-8
191 Moduły języka Python dla poldka.
201 rm -f m4/libtool.m4 m4/lt*.m4
203 # cleanup backups after patching
204 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
205 chmod u+x ./configure ./doc/conf-xml2.sh
213 cp -f config.sub trurlib
215 CPPFLAGS="-std=gnu99"
217 %{?with_static:--enable-static --disable-shared} \
218 %{!?with_imode:--disable-imode} \
220 %{?with_python:--with-python}
225 rm -rf $RPM_BUILD_ROOT
226 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
229 DESTDIR=$RPM_BUILD_ROOT
232 %{__make} -C python install \
233 DESTDIR=$RPM_BUILD_ROOT \
237 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
239 %ifarch i486 i686 ppc sparc alpha athlon
240 %define _ftp_arch %{_target_cpu}
243 %define _ftp_arch x86_64
244 %define _ftp_alt_arch i686
247 %define _ftp_arch i586
249 %ifarch pentium2 pentium3 pentium4
250 %define _ftp_arch i686
253 %define tld_conf %{SOURCE1}
255 %define tld_multilib_conf %{SOURCE2}
258 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{tld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld.conf
260 %if 0%{?tld_multilib_conf:1}
261 sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{tld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
264 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
267 # add desktop file and icon
268 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
269 cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
270 cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
273 # sources we don't package
274 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
275 # include them in %doc
278 rm -f configs/Makefile*
282 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
288 rm -rf $RPM_BUILD_ROOT
291 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
292 if [ "$1" = "1" ]; then
293 # remove ignore = vserver-packages inside vserver on first install
296 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
297 done </proc/self/status
299 if [ -z "$ctx" -o "$ctx" = "0" ]; then
304 if [ "$VSERVER" = "yes" ]; then
305 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
309 %postun -p /sbin/postshell
310 -/usr/sbin/fix-info-dir -c %{_infodir}
312 %post libs -p /sbin/ldconfig
313 %postun libs -p /sbin/ldconfig
315 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
316 if [ -f /etc/poldek.conf.rpmsave ]; then
325 if (sub(",noauto", "", name)) {
330 if (match(name, /,pri=[0-9]+/)) {
331 pri = substr(name, RSTART + 5, RLENGTH - 5);
332 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
335 # skip ac sources. already in new config.
336 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
339 print "name = " name;
340 print "type = " type;
341 print "path = " path;
342 print "auto = " auto;
343 print "autoup = " autoup;
349 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
350 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
353 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
355 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
359 %triggerpostun -- poldek < 0.30-0.20080225.00.1
360 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
361 %{__sed} -i -e '/^%%include source.conf/{
363 a# /etc/poldek/repos.d/*.conf
364 a%%includedir repos.d
365 }' %{_sysconfdir}/%{name}/poldek.conf
368 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
369 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
371 if [ -f %{_sysconfdir}/%{name}/tld-source.conf.rpmsave ]; then
372 cp -f %{_sysconfdir}/%{name}/repos.d/tld.conf{,.rpmnew}
373 cp -f %{_sysconfdir}/%{name}/tld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld.conf
377 if [ -f %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave ]; then
378 cp -f %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf{,.rpmnew}
379 cp -f %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
383 %files -f %{name}.lang
384 %defattr(644,root,root,755)
385 %doc ChangeLog README* NEWS TODO configs
386 %dir %{_sysconfdir}/%{name}
387 %dir %{_sysconfdir}/%{name}/repos.d
388 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
389 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
390 %attr(755,root,root) %{_bindir}/*
391 %dir %{_libdir}/%{name}
392 %attr(755,root,root) %{_libdir}/%{name}/*
393 %{_mandir}/man1/%{name}*
394 %lang(pl) %{_mandir}/pl/man1/%{name}*
395 %{_infodir}/poldek.info*
397 %{_desktopdir}/%{name}.desktop
398 %{_pixmapsdir}/%{name}.png
401 %if %{without static}
403 %defattr(644,root,root,755)
404 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
405 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
406 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
407 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
408 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
409 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
410 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
411 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
412 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
413 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
417 %defattr(644,root,root,755)
418 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
423 %defattr(644,root,root,755)
427 %files -n python-poldek
428 %defattr(644,root,root,755)
429 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
430 %{py_sitescriptdir}/poldek.py[co]
431 %{py_sitescriptdir}/poldekmod.py[co]