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 Patch9: %{name}-dont-ask-for-suggests-on-errors.patch
46 Patch10: %{name}-crash-on-invalid-locale.patch
47 Patch11: %{name}-noutf8.patch
48 Patch12: %{name}-dont-suggests-required-packages.patch
49 Patch13: %{name}-tty-for-erasures.patch
50 Patch14: %{name}-both_langs.patch
51 Patch15: %{name}-317130.patch
52 Patch16: %{name}-321546.patch
53 Patch17: %{name}-size-type.patch
54 Patch18: %{name}-no-inlines.patch
55 Patch19: %{name}-export-missing-symbol.patch
56 Patch20: %{name}-skip-suggests-on-upgrade.patch
57 Patch21: %{name}-po.patch
58 URL: http://poldek.pld-linux.org/
59 BuildRequires: autoconf
60 BuildRequires: automake
61 BuildRequires: bzip2-devel
63 BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
64 BuildRequires: gettext-autopoint
65 BuildRequires: libtool
66 BuildRequires: libxml2-devel
67 BuildRequires: openssl-devel >= 0.9.7d
68 BuildRequires: pcre-devel
69 BuildRequires: perl-tools-pod
70 BuildRequires: pkgconfig
71 BuildRequires: popt-devel
72 %{?with_python:BuildRequires: python-devel}
73 BuildRequires: readline-devel >= 5.0
74 BuildRequires: rpm-devel >= %{ver_rpm}
75 %{?with_python:BuildRequires: rpm-pythonprov}
77 BuildRequires: zlib-devel
79 BuildRequires: bzip2-static
80 BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
81 BuildRequires: glibc-static
82 BuildRequires: libselinux-static
83 BuildRequires: libxml2-static
84 BuildRequires: ncurses-static
85 BuildRequires: openssl-static
86 BuildRequires: pcre-static
87 BuildRequires: popt-static
88 BuildRequires: readline-static
89 BuildRequires: rpm-static
90 BuildRequires: zlib-static
92 Requires(triggerpostun): awk
93 Requires(triggerpostun): sed >= 4.0
94 Requires: %{name}-libs = %{version}-%{release}
95 Requires: db >= %{ver_db}-%{ver_db_rel}
96 Requires: rpm >= %{ver_rpm}
97 Requires: rpm-db-ver = %{ver_db}
98 Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
101 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
104 poldek is an RPM package management tool which allows you to easily
105 perform package verification, installation (including system
106 installation from scratch), upgrading, and removal.
108 Program can be used in batch (like apt-get from Debian's APT) or
109 interactive mode. The interactive mode puts you into a readline
110 interface with command line autocompletion and history, similar to the
111 shell mode of Perl's CPAN.
113 %{?with_static:This version is statically linked.}
115 %{!?with_imode:This version hasn't got interactive mode.}
118 %description -l pl.UTF-8
119 poldek jest narzędziem linii poleceń służącym do weryfikacji,
120 instalacji (włączając instalację systemu od zera), aktualizacji i
123 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
124 interaktywnym. Tryb interaktywny posiada interfejs readline z
125 dopełnianiem komend i historią, podobny do trybu shell perlowego
128 %{?with_static:Ta wersja jest konsolidowana statycznie.}
130 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
133 Summary: poldek libraries
134 Summary(pl.UTF-8): Biblioteki poldka
140 %description libs -l pl.UTF-8
144 Summary: Header files for poldek libraries
145 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
146 Group: Development/Libraries
147 Requires: %{name}-libs = %{version}-%{release}
150 Header files for poldek libraries.
152 %description devel -l pl.UTF-8
153 Pliki nagłówkowe bibliotek poldka.
156 Summary: poldek static libraries
157 Summary(pl.UTF-8): Biblioteki statyczne poldka
158 Group: Development/Libraries
159 Requires: %{name}-devel = %{version}-%{release}
162 poldek static libraries.
164 %description static -l pl.UTF-8
165 Biblioteki statyczne poldka.
167 %package -n python-poldek
168 Summary: Python modules for poldek
169 Summary(pl.UTF-8): Moduły języka Python dla poldka
170 Group: Libraries/Python
171 Requires: %{name}-libs = %{version}-%{release}
172 %pyrequires_eq python-libs
174 %description -n python-poldek
175 Python modules for poldek.
177 %description -n python-poldek -l pl.UTF-8
178 Moduły języka Python dla poldka.
181 %setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
205 # cleanup backups after patching
206 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
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}
224 rm -rf $RPM_BUILD_ROOT
225 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
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 i486 i686 ppc sparc alpha athlon
239 %define _ftp_arch %{_target_cpu}
242 %define _ftp_arch x86_64
243 %define _ftp_alt_arch i686
246 %if "%{pld_release}" == "ti"
247 %define _ftp_arch i586
249 %define _ftp_arch i486
252 %ifarch pentium2 pentium3 pentium4
253 %define _ftp_arch i686
255 %ifarch sparcv9 sparc64
256 %define _ftp_arch sparc
259 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
261 %if "%{pld_release}" == "ti"
263 s|%%ARCH%%|%{_ftp_arch}|g
264 ' < %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
268 s|%%ARCH%%|%{_ftp_alt_arch}|g
269 ' < %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
273 s|%%ARCH%%|%{_ftp_arch}|g
274 ' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
278 s|%%ARCH%%|%{_ftp_alt_arch}|g
279 ' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
283 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
286 # add desktop file and icon
287 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
288 install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
289 install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
292 # sources we don't package
293 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
294 # include them in %doc
297 rm -f configs/Makefile*
301 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
307 rm -rf $RPM_BUILD_ROOT
309 %post -p /sbin/postshell
310 -/usr/sbin/fix-info-dir -c %{_infodir}
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 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
380 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
381 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
382 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
386 %files -f %{name}.lang
387 %defattr(644,root,root,755)
388 %doc README* NEWS TODO configs
389 %dir %{_sysconfdir}/%{name}
390 %dir %{_sysconfdir}/%{name}/repos.d
391 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
392 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
393 %attr(755,root,root) %{_bindir}/*
394 %dir %{_libdir}/%{name}
395 %attr(755,root,root) %{_libdir}/%{name}/*
396 %{_mandir}/man1/%{name}*
397 %lang(pl) %{_mandir}/pl/man1/%{name}*
398 %{_infodir}/poldek.info*
400 %{_desktopdir}/%{name}.desktop
401 %{_pixmapsdir}/%{name}.png
404 %if %{without static}
406 %defattr(644,root,root,755)
407 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
408 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
409 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
410 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
411 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
412 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
413 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
414 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
415 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
416 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
420 %defattr(644,root,root,755)
421 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
426 %defattr(644,root,root,755)
430 %files -n python-poldek
431 %defattr(644,root,root,755)
432 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
433 %{py_sitescriptdir}/poldek.py[co]
434 %{py_sitescriptdir}/poldekmod.py[co]