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 Source8: %{name}-debuginfo.conf
37 Source9: %{name}-aidath.conf
38 Source10: %{name}-multilib-aidath.conf
39 Patch0: %{name}-vserver-packages.patch
40 Patch1: %{name}-config.patch
41 Patch2: %{name}-abort-on-upgrade.patch
42 Patch3: %{name}-inline.patch
43 Patch4: %{name}-ls-llu.patch
44 Patch5: %{name}-op-ldalldesc.patch
45 Patch6: %{name}-nocolor-upgrade.patch
46 Patch7: %{name}-upgrade-dist.patch
47 Patch8: %{name}-keep-reinstalled-provides.patch
48 Patch9: %{name}-dont-ask-for-suggests-on-errors.patch
49 Patch10: %{name}-crash-on-invalid-locale.patch
50 Patch11: %{name}-noutf8.patch
51 Patch12: %{name}-dont-suggests-required-packages.patch
52 Patch13: %{name}-tty-for-erasures.patch
53 Patch14: %{name}-both_langs.patch
54 Patch15: %{name}-317130.patch
55 Patch16: %{name}-321546.patch
56 Patch17: %{name}-size-type.patch
57 Patch18: %{name}-no-inlines.patch
58 Patch19: %{name}-export-missing-symbol.patch
59 Patch20: %{name}-skip-suggests-on-upgrade.patch
60 Patch21: %{name}-po.patch
61 Patch22: %{name}-refcnt.patch
62 Patch23: %{name}-assertion-failed.patch
63 Patch24: %{name}-unescape-urlencoded-strings.patch
64 Patch25: %{name}-ls-source-rpm.patch
65 Patch26: %{name}-add-arch-match.patch
66 Patch27: %{name}-multilib-upgrade.patch
67 Patch28: %{name}-score-reqs-marked-to-install.patch
68 Patch29: %{name}-dont-be-greedy.patch
69 Patch30: %{name}-dont-lose-deps.patch
70 Patch31: %{name}-ls-queryfmt.patch
71 Patch32: %{name}-prepare_url_fix.patch
72 Patch33: %{name}-noloop_on_terminal_loos.patch
73 Patch34: %{name}-show_only_relative_used_space.patch
74 URL: http://poldek.pld-linux.org/
75 BuildRequires: autoconf
76 BuildRequires: automake
77 BuildRequires: bzip2-devel
78 BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
79 BuildRequires: gettext-devel
80 BuildRequires: libtool
81 BuildRequires: libxml2-devel
82 BuildRequires: openssl-devel >= 0.9.7d
83 BuildRequires: pcre-devel
84 BuildRequires: pkgconfig
85 BuildRequires: popt-devel
86 %{?with_python:BuildRequires: python-devel}
87 BuildRequires: readline-devel >= 5.0
88 BuildRequires: rpm-devel >= %{ver_rpm}
89 %{?with_python:BuildRequires: rpm-pythonprov}
90 BuildRequires: zlib-devel
92 BuildRequires: bzip2-static
93 BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
94 BuildRequires: glibc-static
95 BuildRequires: libselinux-static
96 BuildRequires: libxml2-static
97 BuildRequires: ncurses-static
98 BuildRequires: openssl-static
99 BuildRequires: pcre-static
100 BuildRequires: popt-static
101 BuildRequires: readline-static
102 BuildRequires: rpm-static
103 BuildRequires: zlib-static
105 Requires(triggerpostun): awk
106 Requires(triggerpostun): sed >= 4.0
107 Requires: %{name}-libs = %{version}-%{release}
108 Requires: db >= %{ver_db}-%{ver_db_rel}
109 Requires: rpm >= %{ver_rpm}
110 Requires: rpm-db-ver = %{ver_db}
111 Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
112 # vf* scripts use sed
114 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
117 poldek is an RPM package management tool which allows you to easily
118 perform package verification, installation (including system
119 installation from scratch), upgrading, and removal.
121 Program can be used in batch (like apt-get from Debian's APT) or
122 interactive mode. The interactive mode puts you into a readline
123 interface with command line autocompletion and history, similar to the
124 shell mode of Perl's CPAN.
126 %{?with_static:This version is statically linked.}
128 %{!?with_imode:This version hasn't got interactive mode.}
131 %description -l pl.UTF-8
132 poldek jest narzędziem linii poleceń służącym do weryfikacji,
133 instalacji (włączając instalację systemu od zera), aktualizacji i
136 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
137 interaktywnym. Tryb interaktywny posiada interfejs readline z
138 dopełnianiem komend i historią, podobny do trybu shell perlowego
141 %{?with_static:Ta wersja jest konsolidowana statycznie.}
143 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
146 Summary: poldek libraries
147 Summary(pl.UTF-8): Biblioteki poldka
153 %description libs -l pl.UTF-8
157 Summary: Header files for poldek libraries
158 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
159 Group: Development/Libraries
160 Requires: %{name}-libs = %{version}-%{release}
161 Requires: rpm-devel >= %{ver_rpm}
164 Header files for poldek libraries.
166 %description devel -l pl.UTF-8
167 Pliki nagłówkowe bibliotek poldka.
170 Summary: poldek static libraries
171 Summary(pl.UTF-8): Biblioteki statyczne poldka
172 Group: Development/Libraries
173 Requires: %{name}-devel = %{version}-%{release}
176 poldek static libraries.
178 %description static -l pl.UTF-8
179 Biblioteki statyczne poldka.
181 %package -n python-poldek
182 Summary: Python modules for poldek
183 Summary(pl.UTF-8): Moduły języka Python dla poldka
184 Group: Libraries/Python
185 Requires: %{name}-libs = %{version}-%{release}
186 %pyrequires_eq python-libs
188 %description -n python-poldek
189 Python modules for poldek.
191 %description -n python-poldek -l pl.UTF-8
192 Moduły języka Python dla poldka.
195 %setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
221 # LP#392984: add source rpm to ls
227 # score reqs already marked to install
229 # dont be greedy if upgraded pkg has needed capabilities
231 # http://lists.pld-linux.org/mailman/pipermail/pld-devel-pl/2009-November/150519.html
233 # LP#392984: add query format to ls
239 # do not info. about amount of transaction space req. but relative to already installed
242 # cleanup backups after patching
243 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
250 cp -f config.sub trurlib
252 CPPFLAGS="-std=gnu99"
254 %{?with_static:--enable-static --disable-shared} \
255 %{!?with_imode:--disable-imode} \
257 %{?with_python:--with-python}
262 rm -rf $RPM_BUILD_ROOT
263 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
266 DESTDIR=$RPM_BUILD_ROOT
269 %{__make} -C python install \
270 DESTDIR=$RPM_BUILD_ROOT \
274 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
276 %ifarch i486 i686 ppc sparc alpha athlon
277 %define _ftp_arch %{_target_cpu}
280 %define _ftp_arch x86_64
281 %define _ftp_alt_arch i686
284 %if "%{pld_release}" == "ti"
285 %define _ftp_arch i586
287 %define _ftp_arch i486
290 %ifarch pentium2 pentium3 pentium4
291 %define _ftp_arch i686
293 %ifarch sparcv9 sparc64
294 %define _ftp_arch sparc
295 %if "%{pld_release}" == "th"
296 %define _ftp_arch %{_target_cpu}
298 %define _ftp_alt_arch sparcv9
303 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
305 %if "%{pld_release}" == "ti"
307 s|%%ARCH%%|%{_ftp_arch}|g
308 ' < %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
312 s|%%ARCH%%|%{_ftp_alt_arch}|g
313 ' < %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
317 %ifarch sparcv9 sparc64
319 s|%%ARCH%%|%{_ftp_arch}|g
320 ' < %{SOURCE9} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
324 s|%%ARCH%%|%{_ftp_alt_arch}|g
325 ' < %{SOURCE10} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
330 s|%%ARCH%%|%{_ftp_arch}|g
331 ' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
333 s|%%ARCH%%|%{_ftp_arch}|g
334 ' < %{SOURCE8} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
338 s|%%ARCH%%|%{_ftp_alt_arch}|g
339 ' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
344 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
347 # add desktop file and icon
348 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
349 install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
350 install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
353 # sources we don't package
354 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
355 # include them in %doc
358 rm -f configs/Makefile*
362 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
368 rm -rf $RPM_BUILD_ROOT
371 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
372 if [ "$1" = "1" ]; then
373 # remove ignore = vserver-packages inside vserver on first install
376 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
377 done </proc/self/status
379 if [ -z "$ctx" -o "$ctx" = "0" ]; then
384 if [ "$VSERVER" = "yes" ]; then
385 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
389 %postun -p /sbin/postshell
390 -/usr/sbin/fix-info-dir -c %{_infodir}
392 %post libs -p /sbin/ldconfig
393 %postun libs -p /sbin/ldconfig
395 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
396 if [ -f /etc/poldek.conf.rpmsave ]; then
405 if (sub(",noauto", "", name)) {
410 if (match(name, /,pri=[0-9]+/)) {
411 pri = substr(name, RSTART + 5, RLENGTH - 5);
412 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
415 # skip ac sources. already in new config.
416 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
419 print "name = " name;
420 print "type = " type;
421 print "path = " path;
422 print "auto = " auto;
423 print "autoup = " autoup;
429 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
430 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
433 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
435 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
439 %triggerpostun -- poldek < 0.30-0.20080225.00.1
440 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
441 %{__sed} -i -e '/^%%include source.conf/{
443 a# /etc/poldek/repos.d/*.conf
444 a%%includedir repos.d
445 }' %{_sysconfdir}/%{name}/poldek.conf
448 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
449 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
451 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
452 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
453 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
457 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
458 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
459 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
463 %files -f %{name}.lang
464 %defattr(644,root,root,755)
465 %doc README* NEWS TODO configs
466 %dir %{_sysconfdir}/%{name}
467 %dir %{_sysconfdir}/%{name}/repos.d
468 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
469 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
470 %attr(755,root,root) %{_bindir}/*
471 %dir %{_libdir}/%{name}
472 %attr(755,root,root) %{_libdir}/%{name}/*
473 %{_mandir}/man1/%{name}*
474 %lang(pl) %{_mandir}/pl/man1/%{name}*
475 %{_infodir}/poldek.info*
477 %{_desktopdir}/%{name}.desktop
478 %{_pixmapsdir}/%{name}.png
481 %if %{without static}
483 %defattr(644,root,root,755)
484 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
485 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
486 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
487 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
488 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
489 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
490 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
491 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
492 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
493 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
497 %defattr(644,root,root,755)
498 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
503 %defattr(644,root,root,755)
507 %files -n python-poldek
508 %defattr(644,root,root,755)
509 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
510 %{py_sitescriptdir}/poldek.py[co]
511 %{py_sitescriptdir}/poldekmod.py[co]