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"
15 %define ver_rpm 4.4.9-56
17 %define snap 20080604.13
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: 2e1b9bbaf5c39cc626c22978852f6371
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}-158fix.patch
40 Patch4: %{name}-inline.patch
41 Patch5: %{name}-ls-llu.patch
42 URL: http://poldek.pld-linux.org/
43 BuildRequires: autoconf
44 BuildRequires: automake
45 BuildRequires: bzip2-devel
47 BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
48 BuildRequires: gettext-autopoint
49 BuildRequires: libtool
50 BuildRequires: libxml2-devel
51 BuildRequires: openssl-devel >= 0.9.7d
52 BuildRequires: pcre-devel
53 BuildRequires: perl-tools-pod
54 BuildRequires: pkgconfig
55 BuildRequires: popt-devel
56 %{?with_python:BuildRequires: python-devel}
57 BuildRequires: readline-devel >= 5.0
58 BuildRequires: rpm-devel >= %{ver_rpm}
59 %{?with_python:BuildRequires: rpm-pythonprov}
61 BuildRequires: zlib-devel
63 BuildRequires: bzip2-static
64 BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
65 BuildRequires: glibc-static
66 BuildRequires: libselinux-static
67 BuildRequires: libxml2-static
68 BuildRequires: ncurses-static
69 BuildRequires: openssl-static
70 BuildRequires: pcre-static
71 BuildRequires: popt-static
72 BuildRequires: readline-static
73 BuildRequires: rpm-static
74 BuildRequires: zlib-static
76 Requires(triggerpostun): awk
77 Requires(triggerpostun): sed >= 4.0
78 Requires: %{name}-libs = %{version}-%{release}
79 Requires: db >= %{ver_db}-%{ver_db_rel}
80 Requires: rpm >= %{ver_rpm}
81 Requires: rpm-db-ver = %{ver_db}
82 Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
85 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
88 poldek is an RPM package management tool which allows you to easily
89 perform package verification, installation (including system
90 installation from scratch), upgrading, and removal.
92 Program can be used in batch (like apt-get from Debian's APT) or
93 interactive mode. The interactive mode puts you into a readline
94 interface with command line autocompletion and history, similar to the
95 shell mode of Perl's CPAN.
97 %{?with_static:This version is statically linked.}
99 %{!?with_imode:This version hasn't got interactive mode.}
102 %description -l pl.UTF-8
103 poldek jest narzędziem linii poleceń służącym do weryfikacji,
104 instalacji (włączając instalację systemu od zera), aktualizacji i
107 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
108 interaktywnym. Tryb interaktywny posiada interfejs readline z
109 dopełnianiem komend i historią, podobny do trybu shell perlowego
112 %{?with_static:Ta wersja jest konsolidowana statycznie.}
114 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
117 Summary: poldek libraries
118 Summary(pl.UTF-8): Biblioteki poldka
124 %description libs -l pl.UTF-8
128 Summary: Header files for poldek libraries
129 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
130 Group: Development/Libraries
131 Requires: %{name}-libs = %{version}-%{release}
134 Header files for poldek libraries.
136 %description devel -l pl.UTF-8
137 Pliki nagłówkowe bibliotek poldka.
140 Summary: poldek static libraries
141 Summary(pl.UTF-8): Biblioteki statyczne poldka
142 Group: Development/Libraries
143 Requires: %{name}-devel = %{version}-%{release}
146 poldek static libraries.
148 %description static -l pl.UTF-8
149 Biblioteki statyczne poldka.
151 %package -n python-poldek
152 Summary: Python modules for poldek
153 Summary(pl.UTF-8): Moduły języka Python dla poldka
154 Group: Libraries/Python
155 Requires: %{name}-libs = %{version}-%{release}
156 %pyrequires_eq python-libs
158 %description -n python-poldek
159 Python modules for poldek.
161 %description -n python-poldek -l pl.UTF-8
162 Moduły języka Python dla poldka.
165 %setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
173 # cleanup backups after patching
174 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
182 cp -f config.sub trurlib
184 CPPFLAGS="-std=gnu99"
186 %{?with_static:--enable-static --disable-shared} \
187 %{!?with_imode:--disable-imode} \
189 %{?with_python:--with-python}
193 rm -rf $RPM_BUILD_ROOT
194 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
197 DESTDIR=$RPM_BUILD_ROOT
200 %{__make} -C python install \
201 DESTDIR=$RPM_BUILD_ROOT \
205 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
207 %ifarch i486 i686 ppc sparc alpha athlon
208 %define _ftp_arch %{_target_cpu}
211 %define _ftp_arch x86_64
212 %define _ftp_alt_arch i686
215 %if "%{pld_release}" == "ti"
216 %define _ftp_arch i586
218 %define _ftp_arch i486
221 %ifarch pentium2 pentium3 pentium4
222 %define _ftp_arch i686
224 %ifarch sparcv9 sparc64
225 %define _ftp_arch sparc
228 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
230 %if "%{pld_release}" == "ti"
232 s|%%ARCH%%|%{_ftp_arch}|g
233 ' < %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
237 s|%%ARCH%%|%{_ftp_alt_arch}|g
238 ' < %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
242 s|%%ARCH%%|%{_ftp_arch}|g
243 ' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
247 s|%%ARCH%%|%{_ftp_alt_arch}|g
248 ' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
252 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/aliases.conf
255 # add desktop file and icon
256 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
257 install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
258 install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
261 # sources we don't package
262 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
263 # include them in %doc
266 rm -f configs/Makefile*
270 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
276 rm -rf $RPM_BUILD_ROOT
278 %post -p /sbin/postshell
279 -/usr/sbin/fix-info-dir -c %{_infodir}
281 %postun -p /sbin/postshell
282 -/usr/sbin/fix-info-dir -c %{_infodir}
284 %post libs -p /sbin/ldconfig
285 %postun libs -p /sbin/ldconfig
287 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
288 if [ -f /etc/poldek.conf.rpmsave ]; then
297 if (sub(",noauto", "", name)) {
302 if (match(name, /,pri=[0-9]+/)) {
303 pri = substr(name, RSTART + 5, RLENGTH - 5);
304 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
307 # skip ac sources. already in new config.
308 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
311 print "name = " name;
312 print "type = " type;
313 print "path = " path;
314 print "auto = " auto;
315 print "autoup = " autoup;
321 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
322 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
325 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
327 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
331 %triggerpostun -- poldek < 0.30-0.20080225.00.1
332 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
333 %{__sed} -i -e '/^%%include source.conf/{
335 a# /etc/poldek/repos.d/*.conf
336 a%%includedir repos.d
337 }' %{_sysconfdir}/%{name}/poldek.conf
340 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
341 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
343 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
344 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
345 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
349 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
350 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
351 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
355 %files -f %{name}.lang
356 %defattr(644,root,root,755)
357 %doc README* NEWS TODO configs
358 %dir %{_sysconfdir}/%{name}
359 %dir %{_sysconfdir}/%{name}/repos.d
360 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
361 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
362 %attr(755,root,root) %{_bindir}/*
363 %dir %{_libdir}/%{name}
364 %attr(755,root,root) %{_libdir}/%{name}/*
365 %{_mandir}/man1/%{name}*
366 %lang(pl) %{_mandir}/pl/man1/%{name}*
367 %{_infodir}/poldek.info*
369 %{_desktopdir}/%{name}.desktop
370 %{_pixmapsdir}/%{name}.png
373 %if %{without static}
375 %defattr(644,root,root,755)
376 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
377 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
378 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
379 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
380 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
381 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
382 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
383 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
384 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
385 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
389 %defattr(644,root,root,755)
390 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
395 %defattr(644,root,root,755)
399 %files -n python-poldek
400 %defattr(644,root,root,755)
401 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
402 %{py_sitescriptdir}/poldek.py[co]
403 %{py_sitescriptdir}/poldekmod.py[co]