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 URL: http://poldek.pld-linux.org/
44 BuildRequires: autoconf
45 BuildRequires: automake
46 BuildRequires: bzip2-devel
48 BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
49 BuildRequires: gettext-autopoint
50 BuildRequires: libtool
51 BuildRequires: libxml2-devel
52 BuildRequires: openssl-devel >= 0.9.7d
53 BuildRequires: pcre-devel
54 BuildRequires: perl-tools-pod
55 BuildRequires: pkgconfig
56 BuildRequires: popt-devel
57 %{?with_python:BuildRequires: python-devel}
58 BuildRequires: readline-devel >= 5.0
59 BuildRequires: rpm-devel >= %{ver_rpm}
60 %{?with_python:BuildRequires: rpm-pythonprov}
62 BuildRequires: zlib-devel
64 BuildRequires: bzip2-static
65 BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
66 BuildRequires: glibc-static
67 BuildRequires: libselinux-static
68 BuildRequires: libxml2-static
69 BuildRequires: ncurses-static
70 BuildRequires: openssl-static
71 BuildRequires: pcre-static
72 BuildRequires: popt-static
73 BuildRequires: readline-static
74 BuildRequires: rpm-static
75 BuildRequires: zlib-static
77 Requires(triggerpostun): awk
78 Requires(triggerpostun): sed >= 4.0
79 Requires: %{name}-libs = %{version}-%{release}
80 Requires: db >= %{ver_db}-%{ver_db_rel}
81 Requires: rpm >= %{ver_rpm}
82 Requires: rpm-db-ver = %{ver_db}
83 Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
86 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
89 poldek is an RPM package management tool which allows you to easily
90 perform package verification, installation (including system
91 installation from scratch), upgrading, and removal.
93 Program can be used in batch (like apt-get from Debian's APT) or
94 interactive mode. The interactive mode puts you into a readline
95 interface with command line autocompletion and history, similar to the
96 shell mode of Perl's CPAN.
98 %{?with_static:This version is statically linked.}
100 %{!?with_imode:This version hasn't got interactive mode.}
103 %description -l pl.UTF-8
104 poldek jest narzędziem linii poleceń służącym do weryfikacji,
105 instalacji (włączając instalację systemu od zera), aktualizacji i
108 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
109 interaktywnym. Tryb interaktywny posiada interfejs readline z
110 dopełnianiem komend i historią, podobny do trybu shell perlowego
113 %{?with_static:Ta wersja jest konsolidowana statycznie.}
115 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
118 Summary: poldek libraries
119 Summary(pl.UTF-8): Biblioteki poldka
125 %description libs -l pl.UTF-8
129 Summary: Header files for poldek libraries
130 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
131 Group: Development/Libraries
132 Requires: %{name}-libs = %{version}-%{release}
135 Header files for poldek libraries.
137 %description devel -l pl.UTF-8
138 Pliki nagłówkowe bibliotek poldka.
141 Summary: poldek static libraries
142 Summary(pl.UTF-8): Biblioteki statyczne poldka
143 Group: Development/Libraries
144 Requires: %{name}-devel = %{version}-%{release}
147 poldek static libraries.
149 %description static -l pl.UTF-8
150 Biblioteki statyczne poldka.
152 %package -n python-poldek
153 Summary: Python modules for poldek
154 Summary(pl.UTF-8): Moduły języka Python dla poldka
155 Group: Libraries/Python
156 Requires: %{name}-libs = %{version}-%{release}
157 %pyrequires_eq python-libs
159 %description -n python-poldek
160 Python modules for poldek.
162 %description -n python-poldek -l pl.UTF-8
163 Moduły języka Python dla poldka.
166 %setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
175 # cleanup backups after patching
176 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
183 cp -f config.sub trurlib
185 CPPFLAGS="-std=gnu99"
187 %{?with_static:--enable-static --disable-shared} \
188 %{!?with_imode:--disable-imode} \
190 %{?with_python:--with-python}
194 rm -rf $RPM_BUILD_ROOT
195 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
198 DESTDIR=$RPM_BUILD_ROOT
201 %{__make} -C python install \
202 DESTDIR=$RPM_BUILD_ROOT \
206 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
208 %ifarch i486 i686 ppc sparc alpha athlon
209 %define _ftp_arch %{_target_cpu}
212 %define _ftp_arch x86_64
213 %define _ftp_alt_arch i686
216 %if "%{pld_release}" == "ti"
217 %define _ftp_arch i586
219 %define _ftp_arch i486
222 %ifarch pentium2 pentium3 pentium4
223 %define _ftp_arch i686
225 %ifarch sparcv9 sparc64
226 %define _ftp_arch sparc
229 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
231 %if "%{pld_release}" == "ti"
233 s|%%ARCH%%|%{_ftp_arch}|g
234 ' < %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
238 s|%%ARCH%%|%{_ftp_alt_arch}|g
239 ' < %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
243 s|%%ARCH%%|%{_ftp_arch}|g
244 ' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
248 s|%%ARCH%%|%{_ftp_alt_arch}|g
249 ' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
253 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/aliases.conf
256 # add desktop file and icon
257 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
258 install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
259 install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
262 # sources we don't package
263 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
264 # include them in %doc
267 rm -f configs/Makefile*
271 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
277 rm -rf $RPM_BUILD_ROOT
279 %post -p /sbin/postshell
280 -/usr/sbin/fix-info-dir -c %{_infodir}
282 %postun -p /sbin/postshell
283 -/usr/sbin/fix-info-dir -c %{_infodir}
285 %post libs -p /sbin/ldconfig
286 %postun libs -p /sbin/ldconfig
288 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
289 if [ -f /etc/poldek.conf.rpmsave ]; then
298 if (sub(",noauto", "", name)) {
303 if (match(name, /,pri=[0-9]+/)) {
304 pri = substr(name, RSTART + 5, RLENGTH - 5);
305 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
308 # skip ac sources. already in new config.
309 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
312 print "name = " name;
313 print "type = " type;
314 print "path = " path;
315 print "auto = " auto;
316 print "autoup = " autoup;
322 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
323 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
326 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
328 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
332 %triggerpostun -- poldek < 0.30-0.20080225.00.1
333 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
334 %{__sed} -i -e '/^%%include source.conf/{
336 a# /etc/poldek/repos.d/*.conf
337 a%%includedir repos.d
338 }' %{_sysconfdir}/%{name}/poldek.conf
341 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
342 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
344 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
345 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
346 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
350 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
351 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
352 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
356 %files -f %{name}.lang
357 %defattr(644,root,root,755)
358 %doc README* NEWS TODO configs
359 %dir %{_sysconfdir}/%{name}
360 %dir %{_sysconfdir}/%{name}/repos.d
361 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
362 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
363 %attr(755,root,root) %{_bindir}/*
364 %dir %{_libdir}/%{name}
365 %attr(755,root,root) %{_libdir}/%{name}/*
366 %{_mandir}/man1/%{name}*
367 %lang(pl) %{_mandir}/pl/man1/%{name}*
368 %{_infodir}/poldek.info*
370 %{_desktopdir}/%{name}.desktop
371 %{_pixmapsdir}/%{name}.png
374 %if %{without static}
376 %defattr(644,root,root,755)
377 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
378 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
379 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
380 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
381 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
382 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
383 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
384 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
385 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
386 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
390 %defattr(644,root,root,755)
391 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
396 %defattr(644,root,root,755)
400 %files -n python-poldek
401 %defattr(644,root,root,755)
402 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
403 %{py_sitescriptdir}/poldek.py[co]
404 %{py_sitescriptdir}/poldekmod.py[co]