3 %bcond_with static # don't use shared libraries
4 %bcond_without imode # don't build interactive mode
5 %bcond_without python # don't build python bindings
7 # required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
8 %define ver_db 4.3.27-1
9 %define ver_rpm 4.4.9-1
11 %define snap 20080225.00
13 Summary: RPM packages management helper tool
14 Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
17 Release: 0.%{snap}.%{rel}
19 Group: Applications/System
20 Source0: %{name}-%{version}-cvs%{snap}.tar.bz2
21 # Source0-md5: 22b2cfb19cebd123e8d8148fb6ca27de
23 Source2: %{name}-multilib.conf
24 Source3: %{name}-aliases.conf
25 Source4: %{name}.desktop
27 Patch1: %{name}-vserver-packages.patch
28 Patch2: %{name}-config.patch
29 Patch3: %{name}-multilib.patch
30 URL: http://poldek.pld-linux.org/
31 BuildRequires: autoconf
32 BuildRequires: automake
33 BuildRequires: bzip2-devel
35 BuildRequires: db-devel >= %{ver_db}
36 BuildRequires: gettext-autopoint
37 BuildRequires: libtool
38 BuildRequires: libxml2-devel
39 BuildRequires: openssl-devel >= 0.9.7d
40 BuildRequires: pcre-devel
41 BuildRequires: perl-tools-pod
42 BuildRequires: pkgconfig
43 BuildRequires: popt-devel
44 %{?with_python:BuildRequires: python-devel}
45 BuildRequires: readline-devel >= 5.0
46 BuildRequires: rpm-devel >= %{ver_rpm}
47 %{?with_python:BuildRequires: rpm-pythonprov}
49 BuildRequires: zlib-devel
51 BuildRequires: bzip2-static
52 BuildRequires: db-static >= %{ver_db}
53 BuildRequires: glibc-static
54 BuildRequires: libselinux-static
55 BuildRequires: libxml2-static
56 BuildRequires: ncurses-static
57 BuildRequires: openssl-static
58 BuildRequires: pcre-static
59 BuildRequires: popt-static
60 BuildRequires: readline-static
61 BuildRequires: rpm-static
62 BuildRequires: zlib-static
64 Requires(triggerpostun): awk
65 Requires(triggerpostun): sed >= 4.0
66 Requires: %{name}-libs = %{version}-%{release}
67 Requires: db >= %{ver_db}
68 Requires: rpm >= %{ver_rpm}
69 Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
72 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75 poldek is an RPM package management tool which allows you to easily
76 perform package verification, installation (including system
77 installation from scratch), upgrading, and removal.
79 Program can be used in batch (like apt-get from Debian's APT) or
80 interactive mode. The interactive mode puts you into a readline
81 interface with command line autocompletion and history, similar to the
82 shell mode of Perl's CPAN.
84 %{?with_static:This version is statically linked.}
86 %{!?with_imode:This version hasn't got interactive mode.}
89 %description -l pl.UTF-8
90 poldek jest narzędziem linii poleceń służącym do weryfikacji,
91 instalacji (włączając instalację systemu od zera), aktualizacji i
94 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
95 interaktywnym. Tryb interaktywny posiada interfejs readline z
96 dopełnianiem komend i historią, podobny do trybu shell perlowego
99 %{?with_static:Ta wersja jest konsolidowana statycznie.}
101 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
104 Summary: poldek libraries
105 Summary(pl.UTF-8): Biblioteki poldka
111 %description libs -l pl.UTF-8
115 Summary: Header files for poldek libraries
116 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
117 Group: Development/Libraries
118 Requires: %{name}-libs = %{version}-%{release}
121 Header files for poldek libraries.
123 %description devel -l pl.UTF-8
124 Pliki nagłówkowe bibliotek poldka.
127 Summary: poldek static libraries
128 Summary(pl.UTF-8): Biblioteki statyczne poldka
129 Group: Development/Libraries
130 Requires: %{name}-devel = %{version}-%{release}
133 poldek static libraries.
135 %description static -l pl.UTF-8
136 Biblioteki statyczne poldka.
138 %package -n python-poldek
139 Summary: Python modules for poldek
140 Summary(pl.UTF-8): Moduły języka Python dla poldka
141 Group: Libraries/Python
142 Requires: %{name}-libs = %{version}-%{release}
143 %pyrequires_eq python-libs
145 %description -n python-poldek
146 Python modules for poldek.
148 %description -n python-poldek -l pl.UTF-8
149 Moduły języka Python dla poldka.
152 %setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
159 # cleanup backups after patching
160 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
167 cp -f config.sub trurlib
170 %{?with_static:--enable-static --disable-shared} \
171 %{!?with_imode:--disable-imode} \
173 %{?with_python:--with-python}
177 rm -rf $RPM_BUILD_ROOT
178 install -d $RPM_BUILD_ROOT%{_sysconfdir}
181 DESTDIR=$RPM_BUILD_ROOT
184 %{__make} -C python install \
185 DESTDIR=$RPM_BUILD_ROOT \
189 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
191 %ifarch i486 i686 ppc sparc alpha athlon
192 %define _ftp_arch %{_target_cpu}
195 %define _ftp_arch x86_64
196 %define _ftp_alt_arch i686
199 %define _ftp_arch i486
201 %ifarch pentium2 pentium3 pentium4
202 %define _ftp_arch i686
204 %ifarch sparcv9 sparc64
205 %define _ftp_arch sparc
212 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
215 s|%%ARCH%%|%{_ftp_arch}|g
216 ' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/pld-source.conf
220 s|%%ARCH%%|%{_ftp_alt_arch}|g
221 ' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/pld-multilib-source.conf
224 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/aliases.conf
227 # add desktop file and icon
228 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
229 install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
230 install %{SOURCE5} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
233 # get rid of non-pld sources
234 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora}-source.conf
235 # include them in %doc
238 rm -f configs/Makefile*
242 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
248 rm -rf $RPM_BUILD_ROOT
250 %post -p /sbin/postshell
251 -/usr/sbin/fix-info-dir -c %{_infodir}
253 %postun -p /sbin/postshell
254 -/usr/sbin/fix-info-dir -c %{_infodir}
256 %post libs -p /sbin/ldconfig
257 %postun libs -p /sbin/ldconfig
259 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
260 if [ -f /etc/poldek.conf.rpmsave ]; then
269 if (sub(",noauto", "", name)) {
274 if (match(name, /,pri=[0-9]+/)) {
275 pri = substr(name, RSTART + 5, RLENGTH - 5);
276 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
279 # skip ac sources. already in new config.
280 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
283 print "name = " name;
284 print "type = " type;
285 print "path = " path;
286 print "auto = " auto;
287 print "autoup = " autoup;
293 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
294 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
297 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
299 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
303 %files -f %{name}.lang
304 %defattr(644,root,root,755)
305 %doc README* NEWS TODO configs/
306 %dir %{_sysconfdir}/%{name}
307 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
308 %attr(755,root,root) %{_bindir}/*
309 %dir %{_libdir}/%{name}
310 %attr(755,root,root) %{_libdir}/%{name}/*
311 %{_mandir}/man1/%{name}*
312 %lang(pl) %{_mandir}/pl/man1/%{name}*
313 %{_infodir}/poldek.info*
315 %{_desktopdir}/%{name}.desktop
316 %{_pixmapsdir}/%{name}.png
321 %defattr(644,root,root,755)
322 %attr(755,root,root) %{_libdir}/lib*.so.*.*.*
326 %defattr(644,root,root,755)
327 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
332 %defattr(644,root,root,755)
336 %files -n python-poldek
337 %defattr(644,root,root,755)
338 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
339 %{py_sitescriptdir}/poldek.py[co]
340 %{py_sitescriptdir}/poldekmod.py[co]