2 # - fails to build without poldek-devel - fix it !
5 %bcond_with static # don't use shared libraries
6 %bcond_without imode # don't build interactive mode
7 %bcond_without python # don't build python bindings
9 # required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
10 %if "%{pld_release}" == "ti"
21 Summary: RPM packages management helper tool
22 Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
23 Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
26 Release: 0.%{snap}.%{rel}
28 Group: Applications/System
29 #Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
30 Source0: http://carme.pld-linux.org/~megabajt/snaps/poldek/%{name}-%{version}%{snap}.tar.bz2
31 # Source0-md5: 98806c2c6c8b5b840e7cfde6164fdeb4
33 Source2: %{name}-multilib.conf
34 Source3: %{name}-ti.conf
35 Source4: %{name}-multilib-ti.conf
36 Source5: %{name}-aliases.conf
37 Source6: %{name}.desktop
39 Source8: %{name}-debuginfo.conf
40 Source9: %{name}-aidath.conf
41 Source10: %{name}-multilib-aidath.conf
42 Source11: %{name}-archive.conf
43 Patch0: %{name}-vserver-packages.patch
44 Patch1: %{name}-config.patch
45 Patch2: %{name}-size-type.patch
46 Patch3: ac-prog-libtool.patch
47 URL: http://poldek.pld-linux.org/
48 BuildRequires: autoconf
49 BuildRequires: automake
50 BuildRequires: bzip2-devel
51 BuildRequires: check-devel
52 BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
53 BuildRequires: gettext-devel
54 BuildRequires: libtool
55 BuildRequires: libxml2-devel
56 BuildRequires: openssl-devel >= 0.9.7d
57 BuildRequires: pcre-devel
58 BuildRequires: pkgconfig
59 BuildRequires: popt-devel
60 %{?with_python:BuildRequires: python-devel}
61 BuildRequires: readline-devel >= 5.0
62 BuildRequires: rpm-devel >= %{ver_rpm}
63 %{?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 hu.UTF-8
106 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
107 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
108 nulláról), frissítést és eltávolítást.
110 A program használható parancssorból (mint a Debian apt-get programja)
111 vagy interaktív módban. Az interaktív mód egy readline környezetet
112 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
115 %{?with_static:Ez a verzió statikusan linkelt.}
117 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
119 %description -l pl.UTF-8
120 poldek jest narzędziem linii poleceń służącym do weryfikacji,
121 instalacji (włączając instalację systemu od zera), aktualizacji i
124 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
125 interaktywnym. Tryb interaktywny posiada interfejs readline z
126 dopełnianiem komend i historią, podobny do trybu shell perlowego
129 %{?with_static:Ta wersja jest konsolidowana statycznie.}
131 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
134 Summary: poldek libraries
135 Summary(hu.UTF-8): A poldek könyvtárai
136 Summary(pl.UTF-8): Biblioteki poldka
142 %description libs -l hu.UTF-8
145 %description libs -l pl.UTF-8
149 Summary: Header files for poldek libraries
150 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
151 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
152 Group: Development/Libraries
153 Requires: %{name}-libs = %{version}-%{release}
154 Requires: rpm-devel >= %{ver_rpm}
157 Header files for poldek libraries.
159 %description devel -l hu.UTF-8
160 A poldek könyvtár fejlesztői fájljai.
162 %description devel -l pl.UTF-8
163 Pliki nagłówkowe bibliotek poldka.
166 Summary: poldek static libraries
167 Summary(hu.UTF-8): poldek statikus könyvtárak
168 Summary(pl.UTF-8): Biblioteki statyczne poldka
169 Group: Development/Libraries
170 Requires: %{name}-devel = %{version}-%{release}
173 poldek static libraries.
175 %description static -l hu.UTF-8
176 poldek statikus könyvtárak.
178 %description static -l pl.UTF-8
179 Biblioteki statyczne poldka.
181 %package -n python-poldek
182 Summary: Python modules for poldek
183 Summary(hu.UTF-8): Python modulok poldek-hez
184 Summary(pl.UTF-8): Moduły języka Python dla poldka
185 Group: Libraries/Python
186 Requires: %{name}-libs = %{version}-%{release}
187 %pyrequires_eq python-libs
189 %description -n python-poldek
190 Python modules for poldek.
192 %description -n python-poldek -l hu.UTF-8
193 Python modulok poldek-hez.
195 %description -n python-poldek -l pl.UTF-8
196 Moduły języka Python dla poldka.
205 rm -f m4/libtool.m4 m4/lt*.m4
207 # cleanup backups after patching
208 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
216 cp -f config.sub trurlib
218 CPPFLAGS="-std=gnu99"
220 %{?with_static:--enable-static --disable-shared} \
221 %{!?with_imode:--disable-imode} \
223 %{?with_python:--with-python}
228 rm -rf $RPM_BUILD_ROOT
229 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
232 DESTDIR=$RPM_BUILD_ROOT
235 %{__make} -C python install \
236 DESTDIR=$RPM_BUILD_ROOT \
240 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
242 %ifarch i486 i686 ppc sparc alpha athlon
243 %define _ftp_arch %{_target_cpu}
246 %define _ftp_arch x86_64
247 %define _ftp_alt_arch i686
250 %if "%{pld_release}" == "ti"
251 %define _ftp_arch i586
253 %define _ftp_arch i486
256 %ifarch pentium2 pentium3 pentium4
257 %define _ftp_arch i686
259 %ifarch sparcv9 sparc64
260 %define _ftp_arch sparc
261 %if "%{pld_release}" == "th"
262 %define _ftp_arch %{_target_cpu}
264 %define _ftp_alt_arch sparcv9
269 %if "%{pld_release}" == "ti"
270 %define pld_conf %{SOURCE3}
272 %define pld_multilib_conf %{SOURCE4}
276 %if "%{pld_release}" == "th"
277 %define pld_conf %{SOURCE1}
278 %define pld_debuginfo_conf %{SOURCE8}
279 %define pld_archive_conf %{SOURCE11}
282 %define pld_multilib_conf %{SOURCE2}
286 %ifarch sparcv9 sparc64
287 %define pld_conf %{SOURCE9}
288 %undefine pld_archive_conf
291 %define pld_multilib_conf %{SOURCE10}
295 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
297 %if 0%{?pld_multilib_conf:1}
298 sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
301 %if 0%{?pld_debuginfo_conf:1}
302 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
305 %if 0%{?pld_archive_conf:1}
306 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf
309 cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
312 # add desktop file and icon
313 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
314 cp -a %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
315 cp -a %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
318 # sources we don't package
319 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
320 # include them in %doc
323 rm -f configs/Makefile*
327 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
333 rm -rf $RPM_BUILD_ROOT
336 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
337 if [ "$1" = "1" ]; then
338 # remove ignore = vserver-packages inside vserver on first install
341 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
342 done </proc/self/status
344 if [ -z "$ctx" -o "$ctx" = "0" ]; then
349 if [ "$VSERVER" = "yes" ]; then
350 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
354 %postun -p /sbin/postshell
355 -/usr/sbin/fix-info-dir -c %{_infodir}
357 %post libs -p /sbin/ldconfig
358 %postun libs -p /sbin/ldconfig
360 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
361 if [ -f /etc/poldek.conf.rpmsave ]; then
370 if (sub(",noauto", "", name)) {
375 if (match(name, /,pri=[0-9]+/)) {
376 pri = substr(name, RSTART + 5, RLENGTH - 5);
377 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
380 # skip ac sources. already in new config.
381 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
384 print "name = " name;
385 print "type = " type;
386 print "path = " path;
387 print "auto = " auto;
388 print "autoup = " autoup;
394 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
395 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
398 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
400 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
404 %triggerpostun -- poldek < 0.30-0.20080225.00.1
405 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
406 %{__sed} -i -e '/^%%include source.conf/{
408 a# /etc/poldek/repos.d/*.conf
409 a%%includedir repos.d
410 }' %{_sysconfdir}/%{name}/poldek.conf
413 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
414 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
416 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
417 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
418 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
422 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
423 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
424 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
428 %files -f %{name}.lang
429 %defattr(644,root,root,755)
430 %doc ChangeLog README* NEWS TODO configs
431 %dir %{_sysconfdir}/%{name}
432 %dir %{_sysconfdir}/%{name}/repos.d
433 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
434 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
435 %attr(755,root,root) %{_bindir}/*
436 %dir %{_libdir}/%{name}
437 %attr(755,root,root) %{_libdir}/%{name}/*
438 %{_mandir}/man1/%{name}*
439 %lang(pl) %{_mandir}/pl/man1/%{name}*
440 %{_infodir}/poldek.info*
442 %{_desktopdir}/%{name}.desktop
443 %{_pixmapsdir}/%{name}.png
446 %if %{without static}
448 %defattr(644,root,root,755)
449 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
450 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
451 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
452 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
453 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
454 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
455 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
456 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
457 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
458 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
462 %defattr(644,root,root,755)
463 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
468 %defattr(644,root,root,755)
472 %files -n python-poldek
473 %defattr(644,root,root,755)
474 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
475 %{py_sitescriptdir}/poldek.py[co]
476 %{py_sitescriptdir}/poldekmod.py[co]