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: http://poldek.pld-linux.org/download/snapshots/%{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
169 CPPFLAGS="-std=gnu99"
171 %{?with_static:--enable-static --disable-shared} \
172 %{!?with_imode:--disable-imode} \
174 %{?with_python:--with-python}
178 rm -rf $RPM_BUILD_ROOT
179 install -d $RPM_BUILD_ROOT%{_sysconfdir}
182 DESTDIR=$RPM_BUILD_ROOT
185 %{__make} -C python install \
186 DESTDIR=$RPM_BUILD_ROOT \
190 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
192 %ifarch i486 i686 ppc sparc alpha athlon
193 %define _ftp_arch %{_target_cpu}
196 %define _ftp_arch x86_64
197 %define _ftp_alt_arch i686
200 %define _ftp_arch i486
202 %ifarch pentium2 pentium3 pentium4
203 %define _ftp_arch i686
205 %ifarch sparcv9 sparc64
206 %define _ftp_arch sparc
213 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
216 s|%%ARCH%%|%{_ftp_arch}|g
217 ' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/pld-source.conf
221 s|%%ARCH%%|%{_ftp_alt_arch}|g
222 ' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/pld-multilib-source.conf
225 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/aliases.conf
228 # add desktop file and icon
229 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
230 install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
231 install %{SOURCE5} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
234 # get rid of non-pld sources
235 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora}-source.conf
236 # include them in %doc
239 rm -f configs/Makefile*
243 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
249 rm -rf $RPM_BUILD_ROOT
251 %post -p /sbin/postshell
252 -/usr/sbin/fix-info-dir -c %{_infodir}
254 %postun -p /sbin/postshell
255 -/usr/sbin/fix-info-dir -c %{_infodir}
257 %post libs -p /sbin/ldconfig
258 %postun libs -p /sbin/ldconfig
260 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
261 if [ -f /etc/poldek.conf.rpmsave ]; then
270 if (sub(",noauto", "", name)) {
275 if (match(name, /,pri=[0-9]+/)) {
276 pri = substr(name, RSTART + 5, RLENGTH - 5);
277 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
280 # skip ac sources. already in new config.
281 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
284 print "name = " name;
285 print "type = " type;
286 print "path = " path;
287 print "auto = " auto;
288 print "autoup = " autoup;
294 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
295 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
298 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
300 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
304 %files -f %{name}.lang
305 %defattr(644,root,root,755)
306 %doc README* NEWS TODO configs/
307 %dir %{_sysconfdir}/%{name}
308 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
309 %attr(755,root,root) %{_bindir}/*
310 %dir %{_libdir}/%{name}
311 %attr(755,root,root) %{_libdir}/%{name}/*
312 %{_mandir}/man1/%{name}*
313 %lang(pl) %{_mandir}/pl/man1/%{name}*
314 %{_infodir}/poldek.info*
316 %{_desktopdir}/%{name}.desktop
317 %{_pixmapsdir}/%{name}.png
322 %defattr(644,root,root,755)
323 %attr(755,root,root) %{_libdir}/lib*.so.*.*.*
327 %defattr(644,root,root,755)
328 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
333 %defattr(644,root,root,755)
337 %files -n python-poldek
338 %defattr(644,root,root,755)
339 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
340 %{py_sitescriptdir}/poldek.py[co]
341 %{py_sitescriptdir}/poldekmod.py[co]