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)
11 %define ver_rpm 4.5-49
14 %define rel 4%{pld_release}
15 Summary: RPM packages management helper tool
16 Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
17 Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
20 Release: 0.%{snap}.%{rel}
22 Group: Applications/System
23 #Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
24 #Source0: http://carme.pld-linux.org/~megabajt/snaps/poldek/%{name}-%{version}%{snap}.tar.bz2
25 Source0: http://carme.pld-linux.org/~cactus/snaps/poldek/%{name}-%{version}%{snap}.tar.bz2
26 # Source0-md5: 14135ae2960da09990c50d5b5342be64
28 Source2: %{name}-multilib.conf
29 Source5: %{name}-aliases.conf
30 Source6: %{name}.desktop
32 Patch100: %{name}-dirdeps.patch
33 Patch0: %{name}-vserver-packages.patch
34 Patch1: %{name}-config.patch
35 Patch2: %{name}-size-type.patch
36 Patch4: %{name}-Os-fail-workaround.patch
37 URL: http://poldek.pld-linux.org/
38 BuildRequires: autoconf
39 BuildRequires: automake
40 BuildRequires: bzip2-devel
41 BuildRequires: check-devel
42 BuildRequires: db-devel >= %{ver_db}
43 BuildRequires: gettext-autopoint
44 BuildRequires: gettext-devel
45 BuildRequires: libtool
46 BuildRequires: libxml2-devel
47 BuildRequires: openssl-devel >= 0.9.7d
48 BuildRequires: pcre-devel
49 BuildRequires: pkgconfig
50 BuildRequires: popt-devel
51 %{?with_python:BuildRequires: python-devel}
52 BuildRequires: readline-devel >= 5.0
53 BuildRequires: rpm-devel >= %{ver_rpm}
54 %{?with_python:BuildRequires: rpm-pythonprov}
55 BuildRequires: sed >= 4.0
56 BuildRequires: swig-python
57 BuildRequires: zlib-devel
59 BuildRequires: bzip2-static
60 BuildRequires: db-static >= %{ver_db}
61 BuildRequires: glibc-static
62 BuildRequires: libselinux-static
63 BuildRequires: libxml2-static
64 BuildRequires: ncurses-static
65 BuildRequires: openssl-static
66 BuildRequires: pcre-static
67 BuildRequires: popt-static
68 BuildRequires: readline-static
69 BuildRequires: rpm-static
70 BuildRequires: zlib-static
72 Requires(triggerpostun): awk
73 Requires(triggerpostun): sed >= 4.0
74 Requires: %{name}-libs = %{version}-%{release}
75 Requires: db >= %{ver_db}
76 Requires: openssl >= 0.9.7d
77 Requires: rpm >= %{ver_rpm}
78 Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
81 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
84 poldek is an RPM package management tool which allows you to easily
85 perform package verification, installation (including system
86 installation from scratch), upgrading, and removal.
88 Program can be used in batch (like apt-get from Debian's APT) or
89 interactive mode. The interactive mode puts you into a readline
90 interface with command line autocompletion and history, similar to the
91 shell mode of Perl's CPAN.
93 %{?with_static:This version is statically linked.}
95 %{!?with_imode:This version hasn't got interactive mode.}
98 %description -l hu.UTF-8
99 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
100 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
101 nulláról), frissítést és eltávolítást.
103 A program használható parancssorból (mint a Debian apt-get programja)
104 vagy interaktív módban. Az interaktív mód egy readline környezetet
105 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
108 %{?with_static:Ez a verzió statikusan linkelt.}
110 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
112 %description -l pl.UTF-8
113 poldek jest narzędziem linii poleceń służącym do weryfikacji,
114 instalacji (włączając instalację systemu od zera), aktualizacji i
117 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
118 interaktywnym. Tryb interaktywny posiada interfejs readline z
119 dopełnianiem komend i historią, podobny do trybu shell perlowego
122 %{?with_static:Ta wersja jest konsolidowana statycznie.}
124 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
127 Summary: poldek libraries
128 Summary(hu.UTF-8): A poldek könyvtárai
129 Summary(pl.UTF-8): Biblioteki poldka
135 %description libs -l hu.UTF-8
138 %description libs -l pl.UTF-8
142 Summary: Header files for poldek libraries
143 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
144 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
145 Group: Development/Libraries
146 Requires: %{name}-libs = %{version}-%{release}
147 Requires: rpm-devel >= %{ver_rpm}
150 Header files for poldek libraries.
152 %description devel -l hu.UTF-8
153 A poldek könyvtár fejlesztői fájljai.
155 %description devel -l pl.UTF-8
156 Pliki nagłówkowe bibliotek poldka.
159 Summary: poldek static libraries
160 Summary(hu.UTF-8): poldek statikus könyvtárak
161 Summary(pl.UTF-8): Biblioteki statyczne poldka
162 Group: Development/Libraries
163 Requires: %{name}-devel = %{version}-%{release}
166 poldek static libraries.
168 %description static -l hu.UTF-8
169 poldek statikus könyvtárak.
171 %description static -l pl.UTF-8
172 Biblioteki statyczne poldka.
174 %package -n python-poldek
175 Summary: Python modules for poldek
176 Summary(hu.UTF-8): Python modulok poldek-hez
177 Summary(pl.UTF-8): Moduły języka Python dla poldka
178 Group: Libraries/Python
179 Requires: %{name}-libs = %{version}-%{release}
180 %pyrequires_eq python-libs
182 %description -n python-poldek
183 Python modules for poldek.
185 %description -n python-poldek -l hu.UTF-8
186 Python modulok poldek-hez.
188 %description -n python-poldek -l pl.UTF-8
189 Moduły języka Python dla poldka.
199 rm -f m4/libtool.m4 m4/lt*.m4
201 # cleanup backups after patching
202 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
203 chmod u+x ./configure ./doc/conf-xml2.sh
211 cp -f config.sub trurlib
213 CPPFLAGS="-std=gnu99"
215 %{?with_static:--enable-static --disable-shared} \
216 %{!?with_imode:--disable-imode} \
218 %{?with_python:--with-python}
223 rm -rf $RPM_BUILD_ROOT
224 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
226 # -j1 due: https://bugs.launchpad.net/poldek/+bug/891997
227 %{__make} -j1 install \
228 DESTDIR=$RPM_BUILD_ROOT
231 %{__make} -C python install \
232 DESTDIR=$RPM_BUILD_ROOT \
236 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
238 %ifarch i386 i586 i686 ppc sparc alpha athlon
239 %define _ftp_arch %{_target_cpu}
242 %define _ftp_arch amd64
243 %define _ftp_alt_arch i686
246 %define _ftp_arch i386
248 %ifarch pentium2 pentium3 pentium4
249 %define _ftp_arch i686
251 %ifarch sparcv9 sparc64
252 %define _ftp_arch sparc
255 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
258 s|%%ARCH%%|%{_ftp_arch}|g
259 ' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
263 s|%%ARCH%%|%{_ftp_alt_arch}|g
264 ' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
267 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
270 # add desktop file and icon
271 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
272 cp -a %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
273 cp -a %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
276 # sources we don't package
277 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
278 # include them in %doc
281 rm -f configs/Makefile*
285 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
291 rm -rf $RPM_BUILD_ROOT
294 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
295 if [ "$1" = "1" ]; then
296 # remove ignore = vserver-packages inside vserver on first install
299 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
300 done </proc/self/status
302 if [ -z "$ctx" -o "$ctx" = "0" ]; then
307 if [ "$VSERVER" = "yes" ]; then
308 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
312 %postun -p /sbin/postshell
313 -/usr/sbin/fix-info-dir -c %{_infodir}
315 %post libs -p /sbin/ldconfig
316 %postun libs -p /sbin/ldconfig
318 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
319 if [ -f /etc/poldek.conf.rpmsave ]; then
328 if (sub(",noauto", "", name)) {
333 if (match(name, /,pri=[0-9]+/)) {
334 pri = substr(name, RSTART + 5, RLENGTH - 5);
335 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
338 # skip ac sources. already in new config.
339 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
342 print "name = " name;
343 print "type = " type;
344 print "path = " path;
345 print "auto = " auto;
346 print "autoup = " autoup;
352 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
353 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
356 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
358 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
362 %triggerpostun -- poldek < 0.30-0.20080225.00.1
363 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
364 %{__sed} -i -e '/^%%include source.conf/{
366 a# /etc/poldek/repos.d/*.conf
367 a%%includedir repos.d
368 }' %{_sysconfdir}/%{name}/poldek.conf
371 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
372 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
374 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
375 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
376 mv -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
377 %{__sed} -i -e 's,_pld_arch,_arch,g;s,_ac_idxtype,_type,g;s,_pld_prefix,_prefix,g' \
378 %{_sysconfdir}/%{name}/repos.d/pld.conf
382 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
383 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
384 mv -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
385 %{__sed} -i -e 's,_pld_arch,_arch,g;s,_ac_idxtype,_type,g;s,_pld_prefix,_prefix,g' \
386 %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
390 %files -f %{name}.lang
391 %defattr(644,root,root,755)
392 %doc ChangeLog README* NEWS TODO configs
393 %dir %{_sysconfdir}/%{name}
394 %dir %{_sysconfdir}/%{name}/repos.d
395 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
396 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
397 %attr(755,root,root) %{_bindir}/*
398 %dir %{_libdir}/%{name}
399 %attr(755,root,root) %{_libdir}/%{name}/*
400 %{_mandir}/man1/%{name}*
401 %lang(pl) %{_mandir}/pl/man1/%{name}*
402 %{_infodir}/poldek.info*
404 %{_desktopdir}/%{name}.desktop
405 %{_pixmapsdir}/%{name}.png
408 %if %{without static}
410 %defattr(644,root,root,755)
411 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
412 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
413 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
414 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
415 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
416 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
417 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
418 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
419 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
420 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
424 %defattr(644,root,root,755)
425 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
430 %defattr(644,root,root,755)
434 %files -n python-poldek
435 %defattr(644,root,root,755)
436 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
437 %{py_sitescriptdir}/poldek.py[co]
438 %{py_sitescriptdir}/poldekmod.py[co]