4 # - fails to build without poldek-devel - fix it !
7 %bcond_with static # don't use shared libraries
8 %bcond_without imode # don't build interactive mode
9 %bcond_without python # don't build python bindings
11 # required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
14 %define ver_rpm 4.5-49
18 Summary: RPM packages management helper tool
19 Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
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/~cactus/snaps/poldek/%{name}-%{version}%{snap}.tar.bz2
28 # Source0-md5: 14135ae2960da09990c50d5b5342be64
30 Source2: %{name}-multilib.conf
31 Source3: %{name}-aliases.conf
32 Source4: %{name}.desktop
34 Patch0: %{name}-vserver-packages.patch
35 Patch1: %{name}-config.patch
36 Patch2: %{name}-size-type.patch
37 Patch3: %{name}-Os-fail-workaround.patch
38 URL: http://poldek.pld-linux.org/
39 BuildRequires: autoconf
40 BuildRequires: automake
41 BuildRequires: bzip2-devel
42 BuildRequires: check-devel
43 BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
44 BuildRequires: docbook-dtd412-xml
45 BuildRequires: gettext-devel
46 BuildRequires: libtool
47 BuildRequires: libxml2-devel
48 BuildRequires: neon-devel
49 BuildRequires: openssl-devel >= 0.9.7d
50 BuildRequires: pcre-devel
51 BuildRequires: pkgconfig
52 BuildRequires: popt-devel
53 %{?with_python:BuildRequires: python-devel}
54 BuildRequires: readline-devel >= 5.0
55 BuildRequires: rpm-devel >= %{ver_rpm}
56 %{?with_python:BuildRequires: rpm-pythonprov}
57 BuildRequires: swig-python
59 BuildRequires: zlib-devel
61 BuildRequires: bzip2-static
62 BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
63 BuildRequires: glibc-static
64 BuildRequires: libselinux-static
65 BuildRequires: libxml2-static
66 BuildRequires: ncurses-static
67 BuildRequires: openssl-static
68 BuildRequires: pcre-static
69 BuildRequires: popt-static
70 BuildRequires: readline-static
71 BuildRequires: rpm-static
72 BuildRequires: zlib-static
74 Requires(triggerpostun): awk
75 Requires(triggerpostun): sed >= 4.0
76 Requires: %{name}-libs = %{version}-%{release}
77 Requires: db >= %{ver_db}-%{ver_db_rel}
78 Requires: rpm >= %{ver_rpm}
79 Requires: rpm-db-ver = %{ver_db}
80 Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
83 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
86 poldek is an RPM package management tool which allows you to easily
87 perform package verification, installation (including system
88 installation from scratch), upgrading, and removal.
90 Program can be used in batch (like apt-get from Debian's APT) or
91 interactive mode. The interactive mode puts you into a readline
92 interface with command line autocompletion and history, similar to the
93 shell mode of Perl's CPAN.
95 %{?with_static:This version is statically linked.}
97 %{!?with_imode:This version hasn't got interactive mode.}
100 %description -l hu.UTF-8
101 poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
102 csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
103 nulláról), frissítést és eltávolítást.
105 A program használható parancssorból (mint a Debian apt-get programja)
106 vagy interaktív módban. Az interaktív mód egy readline környezetet
107 jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
110 %{?with_static:Ez a verzió statikusan linkelt.}
112 %{!?with_imode:Ennek a verziónak nincs interaktív módja.}
114 %description -l pl.UTF-8
115 poldek jest narzędziem linii poleceń służącym do weryfikacji,
116 instalacji (włączając instalację systemu od zera), aktualizacji i
119 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
120 interaktywnym. Tryb interaktywny posiada interfejs readline z
121 dopełnianiem komend i historią, podobny do trybu shell perlowego
124 %{?with_static:Ta wersja jest konsolidowana statycznie.}
126 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
129 Summary: poldek libraries
130 Summary(hu.UTF-8): A poldek könyvtárai
131 Summary(pl.UTF-8): Biblioteki poldka
137 %description libs -l hu.UTF-8
140 %description libs -l pl.UTF-8
144 Summary: Header files for poldek libraries
145 Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
146 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
147 Group: Development/Libraries
148 Requires: %{name}-libs = %{version}-%{release}
149 Requires: rpm-devel >= %{ver_rpm}
152 Header files for poldek libraries.
154 %description devel -l hu.UTF-8
155 A poldek könyvtár fejlesztői fájljai.
157 %description devel -l pl.UTF-8
158 Pliki nagłówkowe bibliotek poldka.
161 Summary: poldek static libraries
162 Summary(hu.UTF-8): poldek statikus könyvtárak
163 Summary(pl.UTF-8): Biblioteki statyczne poldka
164 Group: Development/Libraries
165 Requires: %{name}-devel = %{version}-%{release}
168 poldek static libraries.
170 %description static -l hu.UTF-8
171 poldek statikus könyvtárak.
173 %description static -l pl.UTF-8
174 Biblioteki statyczne poldka.
176 %package -n python-poldek
177 Summary: Python modules for poldek
178 Summary(hu.UTF-8): Python modulok poldek-hez
179 Summary(pl.UTF-8): Moduły języka Python dla poldka
180 Group: Libraries/Python
181 Requires: %{name}-libs = %{version}-%{release}
182 %pyrequires_eq python-libs
184 %description -n python-poldek
185 Python modules for poldek.
187 %description -n python-poldek -l hu.UTF-8
188 Python modulok poldek-hez.
190 %description -n python-poldek -l pl.UTF-8
191 Moduły języka Python dla poldka.
200 rm -f m4/libtool.m4 m4/lt*.m4
202 # cleanup backups after patching
203 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
204 chmod u+x ./configure ./doc/conf-xml2.sh
212 cp -f config.sub trurlib
214 CPPFLAGS="-std=gnu99"
216 %{?with_static:--enable-static --disable-shared} \
217 %{!?with_imode:--disable-imode} \
219 %{?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 %define _ftp_arch i586
248 %ifarch pentium2 pentium3 pentium4
249 %define _ftp_arch i686
252 %define tld_conf %{SOURCE1}
254 %define tld_multilib_conf %{SOURCE2}
257 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{tld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld.conf
259 %if 0%{?tld_multilib_conf:1}
260 sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{tld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
263 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
266 # add desktop file and icon
267 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
268 cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
269 cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
272 # sources we don't package
273 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{{rh,pld,fedora,centos}-source,repos.d/pld}.conf
274 # include them in %doc
277 rm -f configs/Makefile*
281 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
287 rm -rf $RPM_BUILD_ROOT
290 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
291 if [ "$1" = "1" ]; then
292 # remove ignore = vserver-packages inside vserver on first install
295 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
296 done </proc/self/status
298 if [ -z "$ctx" -o "$ctx" = "0" ]; then
303 if [ "$VSERVER" = "yes" ]; then
304 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
308 %postun -p /sbin/postshell
309 -/usr/sbin/fix-info-dir -c %{_infodir}
311 %post libs -p /sbin/ldconfig
312 %postun libs -p /sbin/ldconfig
314 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
315 if [ -f /etc/poldek.conf.rpmsave ]; then
324 if (sub(",noauto", "", name)) {
329 if (match(name, /,pri=[0-9]+/)) {
330 pri = substr(name, RSTART + 5, RLENGTH - 5);
331 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
334 # skip ac sources. already in new config.
335 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
338 print "name = " name;
339 print "type = " type;
340 print "path = " path;
341 print "auto = " auto;
342 print "autoup = " autoup;
348 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
349 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
352 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
354 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
358 %triggerpostun -- poldek < 0.30-0.20080225.00.1
359 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
360 %{__sed} -i -e '/^%%include source.conf/{
362 a# /etc/poldek/repos.d/*.conf
363 a%%includedir repos.d
364 }' %{_sysconfdir}/%{name}/poldek.conf
367 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
368 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
370 if [ -f %{_sysconfdir}/%{name}/tld-source.conf.rpmsave ]; then
371 cp -f %{_sysconfdir}/%{name}/repos.d/tld.conf{,.rpmnew}
372 cp -f %{_sysconfdir}/%{name}/tld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld.conf
376 if [ -f %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave ]; then
377 cp -f %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf{,.rpmnew}
378 cp -f %{_sysconfdir}/%{name}/tld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/tld-multilib.conf
382 %files -f %{name}.lang
383 %defattr(644,root,root,755)
384 %doc ChangeLog README* NEWS TODO configs
385 %dir %{_sysconfdir}/%{name}
386 %dir %{_sysconfdir}/%{name}/repos.d
387 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
388 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
389 %attr(755,root,root) %{_bindir}/*
390 %dir %{_libdir}/%{name}
391 %attr(755,root,root) %{_libdir}/%{name}/*
392 %{_mandir}/man1/%{name}*
393 %lang(pl) %{_mandir}/pl/man1/%{name}*
394 %{_infodir}/poldek.info*
396 %{_desktopdir}/%{name}.desktop
397 %{_pixmapsdir}/%{name}.png
400 %if %{without static}
402 %defattr(644,root,root,755)
403 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
404 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
405 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
406 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
407 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
408 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
409 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
410 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
411 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
412 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
416 %defattr(644,root,root,755)
417 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
422 %defattr(644,root,root,755)
426 %files -n python-poldek
427 %defattr(644,root,root,755)
428 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
429 %{py_sitescriptdir}/poldek.py[co]
430 %{py_sitescriptdir}/poldekmod.py[co]