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 %if "%{pld_release}" == "ti"
17 %define snap 20080820.23
19 Summary: RPM packages management helper tool
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/~megabajt/snaps/poldek/%{name}-%{version}-cvs%{snap}.tar.bz2
28 # Source0-md5: 2738eb3996f1cdf1e5d74b913d6e7414
30 Source2: %{name}-multilib.conf
31 Source3: %{name}-ti.conf
32 Source4: %{name}-multilib-ti.conf
33 Source5: %{name}-aliases.conf
34 Source6: %{name}.desktop
36 Patch0: %{name}-vserver-packages.patch
37 Patch1: %{name}-config.patch
38 Patch2: %{name}-abort-on-upgrade.patch
39 Patch3: %{name}-inline.patch
40 Patch4: %{name}-ls-llu.patch
41 Patch5: %{name}-op-ldalldesc.patch
42 Patch6: %{name}-nocolor-upgrade.patch
43 Patch7: %{name}-upgrade-dist.patch
44 Patch8: %{name}-keep-reinstalled-provides.patch
45 URL: http://poldek.pld-linux.org/
46 BuildRequires: autoconf
47 BuildRequires: automake
48 BuildRequires: bzip2-devel
50 BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
51 BuildRequires: gettext-autopoint
52 BuildRequires: libtool
53 BuildRequires: libxml2-devel
54 BuildRequires: openssl-devel >= 0.9.7d
55 BuildRequires: pcre-devel
56 BuildRequires: perl-tools-pod
57 BuildRequires: pkgconfig
58 BuildRequires: popt-devel
59 %{?with_python:BuildRequires: python-devel}
60 BuildRequires: readline-devel >= 5.0
61 BuildRequires: rpm-devel >= %{ver_rpm}
62 %{?with_python:BuildRequires: rpm-pythonprov}
64 BuildRequires: zlib-devel
66 BuildRequires: bzip2-static
67 BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
68 BuildRequires: glibc-static
69 BuildRequires: libselinux-static
70 BuildRequires: libxml2-static
71 BuildRequires: ncurses-static
72 BuildRequires: openssl-static
73 BuildRequires: pcre-static
74 BuildRequires: popt-static
75 BuildRequires: readline-static
76 BuildRequires: rpm-static
77 BuildRequires: zlib-static
79 Requires(triggerpostun): awk
80 Requires(triggerpostun): sed >= 4.0
81 Requires: %{name}-libs = %{version}-%{release}
82 Requires: db >= %{ver_db}-%{ver_db_rel}
83 Requires: rpm >= %{ver_rpm}
84 Requires: rpm-db-ver = %{ver_db}
85 Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
88 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
91 poldek is an RPM package management tool which allows you to easily
92 perform package verification, installation (including system
93 installation from scratch), upgrading, and removal.
95 Program can be used in batch (like apt-get from Debian's APT) or
96 interactive mode. The interactive mode puts you into a readline
97 interface with command line autocompletion and history, similar to the
98 shell mode of Perl's CPAN.
100 %{?with_static:This version is statically linked.}
102 %{!?with_imode:This version hasn't got interactive mode.}
105 %description -l pl.UTF-8
106 poldek jest narzędziem linii poleceń służącym do weryfikacji,
107 instalacji (włączając instalację systemu od zera), aktualizacji i
110 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
111 interaktywnym. Tryb interaktywny posiada interfejs readline z
112 dopełnianiem komend i historią, podobny do trybu shell perlowego
115 %{?with_static:Ta wersja jest konsolidowana statycznie.}
117 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
120 Summary: poldek libraries
121 Summary(pl.UTF-8): Biblioteki poldka
127 %description libs -l pl.UTF-8
131 Summary: Header files for poldek libraries
132 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
133 Group: Development/Libraries
134 Requires: %{name}-libs = %{version}-%{release}
137 Header files for poldek libraries.
139 %description devel -l pl.UTF-8
140 Pliki nagłówkowe bibliotek poldka.
143 Summary: poldek static libraries
144 Summary(pl.UTF-8): Biblioteki statyczne poldka
145 Group: Development/Libraries
146 Requires: %{name}-devel = %{version}-%{release}
149 poldek static libraries.
151 %description static -l pl.UTF-8
152 Biblioteki statyczne poldka.
154 %package -n python-poldek
155 Summary: Python modules for poldek
156 Summary(pl.UTF-8): Moduły języka Python dla poldka
157 Group: Libraries/Python
158 Requires: %{name}-libs = %{version}-%{release}
159 %pyrequires_eq python-libs
161 %description -n python-poldek
162 Python modules for poldek.
164 %description -n python-poldek -l pl.UTF-8
165 Moduły języka Python dla poldka.
168 %setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
179 # cleanup backups after patching
180 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
187 cp -f config.sub trurlib
189 CPPFLAGS="-std=gnu99"
191 %{?with_static:--enable-static --disable-shared} \
192 %{!?with_imode:--disable-imode} \
194 %{?with_python:--with-python}
198 rm -rf $RPM_BUILD_ROOT
199 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
202 DESTDIR=$RPM_BUILD_ROOT
205 %{__make} -C python install \
206 DESTDIR=$RPM_BUILD_ROOT \
210 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
212 %ifarch i486 i686 ppc sparc alpha athlon
213 %define _ftp_arch %{_target_cpu}
216 %define _ftp_arch x86_64
217 %define _ftp_alt_arch i686
220 %if "%{pld_release}" == "ti"
221 %define _ftp_arch i586
223 %define _ftp_arch i486
226 %ifarch pentium2 pentium3 pentium4
227 %define _ftp_arch i686
229 %ifarch sparcv9 sparc64
230 %define _ftp_arch sparc
233 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
235 %if "%{pld_release}" == "ti"
237 s|%%ARCH%%|%{_ftp_arch}|g
238 ' < %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
242 s|%%ARCH%%|%{_ftp_alt_arch}|g
243 ' < %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
247 s|%%ARCH%%|%{_ftp_arch}|g
248 ' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
252 s|%%ARCH%%|%{_ftp_alt_arch}|g
253 ' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
257 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/aliases.conf
260 # add desktop file and icon
261 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
262 install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
263 install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
266 # sources we don't package
267 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
268 # include them in %doc
271 rm -f configs/Makefile*
275 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
281 rm -rf $RPM_BUILD_ROOT
283 %post -p /sbin/postshell
284 -/usr/sbin/fix-info-dir -c %{_infodir}
286 %postun -p /sbin/postshell
287 -/usr/sbin/fix-info-dir -c %{_infodir}
289 %post libs -p /sbin/ldconfig
290 %postun libs -p /sbin/ldconfig
292 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
293 if [ -f /etc/poldek.conf.rpmsave ]; then
302 if (sub(",noauto", "", name)) {
307 if (match(name, /,pri=[0-9]+/)) {
308 pri = substr(name, RSTART + 5, RLENGTH - 5);
309 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
312 # skip ac sources. already in new config.
313 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
316 print "name = " name;
317 print "type = " type;
318 print "path = " path;
319 print "auto = " auto;
320 print "autoup = " autoup;
326 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
327 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
330 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
332 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
336 %triggerpostun -- poldek < 0.30-0.20080225.00.1
337 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
338 %{__sed} -i -e '/^%%include source.conf/{
340 a# /etc/poldek/repos.d/*.conf
341 a%%includedir repos.d
342 }' %{_sysconfdir}/%{name}/poldek.conf
345 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
346 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
348 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
349 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
350 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
354 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
355 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
356 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
360 %files -f %{name}.lang
361 %defattr(644,root,root,755)
362 %doc README* NEWS TODO configs
363 %dir %{_sysconfdir}/%{name}
364 %dir %{_sysconfdir}/%{name}/repos.d
365 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
366 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
367 %attr(755,root,root) %{_bindir}/*
368 %dir %{_libdir}/%{name}
369 %attr(755,root,root) %{_libdir}/%{name}/*
370 %{_mandir}/man1/%{name}*
371 %lang(pl) %{_mandir}/pl/man1/%{name}*
372 %{_infodir}/poldek.info*
374 %{_desktopdir}/%{name}.desktop
375 %{_pixmapsdir}/%{name}.png
378 %if %{without static}
380 %defattr(644,root,root,755)
381 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
382 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
383 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
384 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
385 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
386 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
387 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
388 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
389 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
390 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
394 %defattr(644,root,root,755)
395 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
400 %defattr(644,root,root,755)
404 %files -n python-poldek
405 %defattr(644,root,root,755)
406 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
407 %{py_sitescriptdir}/poldek.py[co]
408 %{py_sitescriptdir}/poldekmod.py[co]