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 pld_conf %{SOURCE1}
255 %define pld_multilib_conf %{SOURCE2}
258 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
260 %if 0%{?pld_multilib_conf:1}
261 sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
264 %if 0%{?pld_debuginfo_conf:1}
265 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
268 %if 0%{?pld_archive_conf:1}
269 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf
272 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
275 # add desktop file and icon
276 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
277 cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
278 cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
281 # sources we don't package
282 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
283 # include them in %doc
286 rm -f configs/Makefile*
290 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
296 rm -rf $RPM_BUILD_ROOT
299 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
300 if [ "$1" = "1" ]; then
301 # remove ignore = vserver-packages inside vserver on first install
304 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
305 done </proc/self/status
307 if [ -z "$ctx" -o "$ctx" = "0" ]; then
312 if [ "$VSERVER" = "yes" ]; then
313 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
317 %postun -p /sbin/postshell
318 -/usr/sbin/fix-info-dir -c %{_infodir}
320 %post libs -p /sbin/ldconfig
321 %postun libs -p /sbin/ldconfig
323 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
324 if [ -f /etc/poldek.conf.rpmsave ]; then
333 if (sub(",noauto", "", name)) {
338 if (match(name, /,pri=[0-9]+/)) {
339 pri = substr(name, RSTART + 5, RLENGTH - 5);
340 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
343 # skip ac sources. already in new config.
344 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
347 print "name = " name;
348 print "type = " type;
349 print "path = " path;
350 print "auto = " auto;
351 print "autoup = " autoup;
357 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
358 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
361 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
363 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
367 %triggerpostun -- poldek < 0.30-0.20080225.00.1
368 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
369 %{__sed} -i -e '/^%%include source.conf/{
371 a# /etc/poldek/repos.d/*.conf
372 a%%includedir repos.d
373 }' %{_sysconfdir}/%{name}/poldek.conf
376 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
377 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
379 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
380 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
381 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
385 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
386 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
387 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
391 %files -f %{name}.lang
392 %defattr(644,root,root,755)
393 %doc ChangeLog README* NEWS TODO configs
394 %dir %{_sysconfdir}/%{name}
395 %dir %{_sysconfdir}/%{name}/repos.d
396 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
397 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
398 %attr(755,root,root) %{_bindir}/*
399 %dir %{_libdir}/%{name}
400 %attr(755,root,root) %{_libdir}/%{name}/*
401 %{_mandir}/man1/%{name}*
402 %lang(pl) %{_mandir}/pl/man1/%{name}*
403 %{_infodir}/poldek.info*
405 %{_desktopdir}/%{name}.desktop
406 %{_pixmapsdir}/%{name}.png
409 %if %{without static}
411 %defattr(644,root,root,755)
412 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
413 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
414 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
415 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
416 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
417 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
418 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
419 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
420 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
421 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
425 %defattr(644,root,root,755)
426 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
431 %defattr(644,root,root,755)
435 %files -n python-poldek
436 %defattr(644,root,root,755)
437 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
438 %{py_sitescriptdir}/poldek.py[co]
439 %{py_sitescriptdir}/poldekmod.py[co]