]> git.pld-linux.org Git - packages/poldek.git/blame - poldek.spec
- conf-xml2.sh must be executable
[packages/poldek.git] / poldek.spec
CommitLineData
065b86e0 1# TODO:
2# - fails to build without poldek-devel - fix it !
7638abfc 3#
de1099c4 4# Conditional build:
9fe14a3f 5%bcond_with static # don't use shared libraries
6%bcond_without imode # don't build interactive mode
58c31de0 7%bcond_without python # don't build python bindings
7000d724 8
373c6f03 9# required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
4d7ffb0a 10%if "%{pld_release}" == "ti"
530c8c41 11%define ver_db 4.5.20
473ce98d 12%define ver_db_rel 8
4d7ffb0a 13%else
530c8c41 14%define ver_db 4.7.25
473ce98d 15%define ver_db_rel 1
4d7ffb0a 16%endif
2b6db74f 17%define ver_rpm 4.5-5
7000d724 18
fcae2a8c 19%define snap rc2
65a99b8b 20%define rel 2
b44549bf 21Summary: RPM packages management helper tool
9c03ea8f 22Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
9faf625a 23Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
b44549bf 24Name: poldek
24ad8b8d 25Version: 0.30
40ae4011 26Release: 0.%{snap}.%{rel}
9f931ada 27License: GPL v2
8efee472 28Group: Applications/System
85398bac 29#Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
c02f53c3 30Source0: http://carme.pld-linux.org/~cactus/snaps/poldek/%{name}-%{version}%{snap}.tar.bz2
65a99b8b 31# Source0-md5: 14135ae2960da09990c50d5b5342be64
911a8560 32Source1: %{name}.conf
b25cb9a7 33Source2: %{name}-multilib.conf
2ccd5d66 34Source3: %{name}-ti.conf
35Source4: %{name}-multilib-ti.conf
36Source5: %{name}-aliases.conf
37Source6: %{name}.desktop
38Source7: %{name}.png
171e07f6 39Source8: %{name}-debuginfo.conf
652b5bc5 40Source9: %{name}-aidath.conf
41Source10: %{name}-multilib-aidath.conf
8db66c11 42Source11: %{name}-archive.conf
85398bac
MB
43Patch0: %{name}-vserver-packages.patch
44Patch1: %{name}-config.patch
a9c9446a 45Patch2: %{name}-size-type.patch
fcae2a8c 46Patch3: ac-prog-libtool.patch
3ccca390 47Patch4: %{name}-Os-fail-workaround.patch
39ca2371 48URL: http://poldek.pld-linux.org/
a4268952 49BuildRequires: autoconf
b25cb9a7 50BuildRequires: automake
373c6f03 51BuildRequires: bzip2-devel
065b86e0 52BuildRequires: check-devel
530c8c41 53BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
f77a8b4c 54BuildRequires: gettext-devel
b25cb9a7
JB
55BuildRequires: libtool
56BuildRequires: libxml2-devel
cbc6f56b 57BuildRequires: openssl-devel >= 0.9.7d
13fd950e 58BuildRequires: pcre-devel
b3ea4b51 59BuildRequires: pkgconfig
13fd950e 60BuildRequires: popt-devel
58c31de0 61%{?with_python:BuildRequires: python-devel}
b25cb9a7 62BuildRequires: readline-devel >= 5.0
373c6f03 63BuildRequires: rpm-devel >= %{ver_rpm}
300927eb 64%{?with_python:BuildRequires: rpm-pythonprov}
65a99b8b 65BuildRequires: swig-python
96475e5e 66BuildRequires: zlib-devel
373c6f03
JB
67%if %{with static}
68BuildRequires: bzip2-static
530c8c41 69BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
2fac0b02 70BuildRequires: glibc-static
acb26797 71BuildRequires: libselinux-static
b25cb9a7 72BuildRequires: libxml2-static
373c6f03
JB
73BuildRequires: ncurses-static
74BuildRequires: openssl-static
75BuildRequires: pcre-static
76BuildRequires: popt-static
77BuildRequires: readline-static
78BuildRequires: rpm-static
79BuildRequires: zlib-static
373c6f03 80%endif
b25cb9a7 81Requires(triggerpostun): awk
168acc54 82Requires(triggerpostun): sed >= 4.0
09d4c571 83Requires: %{name}-libs = %{version}-%{release}
530c8c41 84Requires: db >= %{ver_db}-%{ver_db_rel}
373c6f03 85Requires: rpm >= %{ver_rpm}
530c8c41 86Requires: rpm-db-ver = %{ver_db}
78b0cd64 87Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
e202a52a
ER
88# vf* scripts use sed
89Requires: sed
b44549bf 90BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
91
92%description
0fa0dc36 93poldek is an RPM package management tool which allows you to easily
94perform package verification, installation (including system
13fd950e 95installation from scratch), upgrading, and removal.
0fa0dc36 96
13fd950e
JB
97Program can be used in batch (like apt-get from Debian's APT) or
98interactive mode. The interactive mode puts you into a readline
99interface with command line autocompletion and history, similar to the
100shell mode of Perl's CPAN.
8efee472 101
9fe14a3f 102%{?with_static:This version is statically linked.}
d94b28a6 103
9fe14a3f 104%{!?with_imode:This version hasn't got interactive mode.}
7f07e487 105#'vim
1f84648f 106
9c03ea8f
ZU
107%description -l hu.UTF-8
108poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
109csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
110nulláról), frissítést és eltávolítást.
111
112A program használható parancssorból (mint a Debian apt-get programja)
113vagy interaktív módban. Az interaktív mód egy readline környezetet
114jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
115shell módjához.
116
117%{?with_static:Ez a verzió statikusan linkelt.}
118
119%{!?with_imode:Ennek a verziónak nincs interaktív módja.}
120
caed9b36
JR
121%description -l pl.UTF-8
122poldek jest narzędziem linii poleceń służącym do weryfikacji,
123instalacji (włączając instalację systemu od zera), aktualizacji i
124usuwania pakietów.
56e1ab51 125
caed9b36 126Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
d82a9cb2 127interaktywnym. Tryb interaktywny posiada interfejs readline z
caed9b36
JR
128dopełnianiem komend i historią, podobny do trybu shell perlowego
129modułu CPAN.
8efee472 130
9fe14a3f 131%{?with_static:Ta wersja jest konsolidowana statycznie.}
a611e0bc 132
9fe14a3f 133%{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
b44549bf 134
b25cb9a7 135%package libs
168acc54 136Summary: poldek libraries
9c03ea8f 137Summary(hu.UTF-8): A poldek könyvtárai
9faf625a 138Summary(pl.UTF-8): Biblioteki poldka
168acc54 139Group: Libraries
b25cb9a7
JB
140
141%description libs
142poldek libraries.
143
9c03ea8f
ZU
144%description libs -l hu.UTF-8
145A poldek könyvtárai.
146
caed9b36 147%description libs -l pl.UTF-8
b25cb9a7
JB
148Biblioteki poldka.
149
150%package devel
168acc54 151Summary: Header files for poldek libraries
9c03ea8f 152Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
9faf625a 153Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
168acc54 154Group: Development/Libraries
09d4c571 155Requires: %{name}-libs = %{version}-%{release}
b980560b 156Requires: rpm-devel >= %{ver_rpm}
b25cb9a7
JB
157
158%description devel
159Header files for poldek libraries.
160
9c03ea8f
ZU
161%description devel -l hu.UTF-8
162A poldek könyvtár fejlesztői fájljai.
163
caed9b36
JR
164%description devel -l pl.UTF-8
165Pliki nagłówkowe bibliotek poldka.
b25cb9a7
JB
166
167%package static
168acc54 168Summary: poldek static libraries
9c03ea8f 169Summary(hu.UTF-8): poldek statikus könyvtárak
9faf625a 170Summary(pl.UTF-8): Biblioteki statyczne poldka
168acc54 171Group: Development/Libraries
09d4c571 172Requires: %{name}-devel = %{version}-%{release}
b25cb9a7
JB
173
174%description static
175poldek static libraries.
176
9c03ea8f
ZU
177%description static -l hu.UTF-8
178poldek statikus könyvtárak.
179
caed9b36 180%description static -l pl.UTF-8
b25cb9a7
JB
181Biblioteki statyczne poldka.
182
58c31de0
JB
183%package -n python-poldek
184Summary: Python modules for poldek
9c03ea8f 185Summary(hu.UTF-8): Python modulok poldek-hez
9faf625a 186Summary(pl.UTF-8): Moduły języka Python dla poldka
58c31de0
JB
187Group: Libraries/Python
188Requires: %{name}-libs = %{version}-%{release}
189%pyrequires_eq python-libs
190
191%description -n python-poldek
192Python modules for poldek.
193
9c03ea8f
ZU
194%description -n python-poldek -l hu.UTF-8
195Python modulok poldek-hez.
196
caed9b36
JR
197%description -n python-poldek -l pl.UTF-8
198Moduły języka Python dla poldka.
58c31de0 199
03159b71 200%prep
a9c9446a 201%setup -q
85398bac 202%patch0 -p1
13aa6434
AM
203%patch1 -p1
204%patch2 -p1
65a99b8b 205#%patch3 -p1
3ccca390 206%patch4 -p1
8dcb75fc
ER
207
208rm -f m4/libtool.m4 m4/lt*.m4
b44549bf 209
0579f9b7
ER
210# cleanup backups after patching
211find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
4fa2b79c 212chmod u+x ./configure ./doc/conf-xml2.sh
0579f9b7 213
b44549bf 214%build
bef9d2a3 215%{__libtoolize}
21a83253 216%{__aclocal} -I m4
d878a63c 217%{__autoheader}
21a83253
MM
218%{__autoconf}
219%{__automake}
63bd61a7 220cp -f config.sub trurlib
b25cb9a7 221
97ecf213 222CPPFLAGS="-std=gnu99"
1f84648f 223%configure \
b25cb9a7 224 %{?with_static:--enable-static --disable-shared} \
9fe14a3f 225 %{!?with_imode:--disable-imode} \
58c31de0
JB
226 --enable-nls \
227 %{?with_python:--with-python}
03159b71 228%{__make}
a1f22296 229# --enable-trace
8efee472 230
b44549bf 231%install
232rm -rf $RPM_BUILD_ROOT
08335479 233install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
8efee472 234
c8f7d829 235%{__make} install \
236 DESTDIR=$RPM_BUILD_ROOT
de1099c4 237
58c31de0
JB
238%if %{with python}
239%{__make} -C python install \
240 DESTDIR=$RPM_BUILD_ROOT \
241 libdir=%{py_sitedir}
242%endif
243
9fe14a3f 244%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
a49836bb 245
9639596f 246%ifarch i486 i686 ppc sparc alpha athlon
23ead09a 247 %define _ftp_arch %{_target_cpu}
36004ea3 248%endif
9639596f 249%ifarch %{x8664}
23ead09a
ER
250 %define _ftp_arch x86_64
251 %define _ftp_alt_arch i686
36004ea3 252%endif
9639596f 253%ifarch i586
23ead09a
ER
254 %if "%{pld_release}" == "ti"
255 %define _ftp_arch i586
256 %else
257 %define _ftp_arch i486
258 %endif
58820d9b 259%endif
a49836bb 260%ifarch pentium2 pentium3 pentium4
23ead09a 261 %define _ftp_arch i686
36004ea3 262%endif
a49836bb 263%ifarch sparcv9 sparc64
23ead09a
ER
264 %define _ftp_arch sparc
265 %if "%{pld_release}" == "th"
266 %define _ftp_arch %{_target_cpu}
267 %ifarch sparc64
268 %define _ftp_alt_arch sparcv9
269 %endif
270 %endif
652b5bc5 271%endif
32697bd0 272
2ccd5d66 273%if "%{pld_release}" == "ti"
7c0e4fc5 274 %define pld_conf %{SOURCE3}
23ead09a 275 %ifarch %{x8664}
7c0e4fc5 276 %define pld_multilib_conf %{SOURCE4}
23ead09a 277 %endif
2ccd5d66 278%endif
7c0e4fc5 279
23ead09a 280%if "%{pld_release}" == "th"
7c0e4fc5
ER
281 %define pld_conf %{SOURCE1}
282 %define pld_debuginfo_conf %{SOURCE8}
8db66c11 283 %define pld_archive_conf %{SOURCE11}
7c0e4fc5
ER
284
285 %ifarch %{x8664}
286 %define pld_multilib_conf %{SOURCE2}
287 %endif
288
23ead09a
ER
289 # aidath
290 %ifarch sparcv9 sparc64
7c0e4fc5 291 %define pld_conf %{SOURCE9}
8db66c11 292 %undefine pld_archive_conf
7c0e4fc5
ER
293 %endif
294 %ifarch sparc64
295 %define pld_multilib_conf %{SOURCE10}
296 %endif
297%endif
23ead09a 298
7c0e4fc5 299sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
23ead09a 300
7c0e4fc5
ER
301%if 0%{?pld_multilib_conf:1}
302 sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
303%endif
304
305%if 0%{?pld_debuginfo_conf:1}
306sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
652b5bc5 307%endif
b25cb9a7 308
8db66c11
ER
309%if 0%{?pld_archive_conf:1}
310sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf
311%endif
312
23ead09a 313cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
b25cb9a7 314
9e6ff4ef 315%if %{with imode}
316# add desktop file and icon
317install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
23ead09a
ER
318cp -a %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
319cp -a %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
9e6ff4ef 320%endif
321
b43abde7
ER
322# sources we don't package
323rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
b25cb9a7
JB
324# include them in %doc
325rm -rf configs
326cp -a conf configs
327rm -f configs/Makefile*
328
62e80071 329%if %{with python}
58c31de0
JB
330%py_postclean
331rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
62e80071 332%endif
58c31de0 333
b25cb9a7 334%find_lang %{name}
f373d903 335
b44549bf 336%clean
337rm -rf $RPM_BUILD_ROOT
338
daf0e7ce
ER
339%post
340[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
341if [ "$1" = "1" ]; then
342 # remove ignore = vserver-packages inside vserver on first install
343 {
344 while read f ctx; do
345 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
346 done </proc/self/status
347 } 2>/dev/null
348 if [ -z "$ctx" -o "$ctx" = "0" ]; then
349 VSERVER=no
350 else
351 VSERVER=yes
352 fi
353 if [ "$VSERVER" = "yes" ]; then
354 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
355 fi
356fi
b25cb9a7 357
3896c8b1
ER
358%postun -p /sbin/postshell
359-/usr/sbin/fix-info-dir -c %{_infodir}
b25cb9a7
JB
360
361%post libs -p /sbin/ldconfig
362%postun libs -p /sbin/ldconfig
363
b25cb9a7
JB
364%triggerpostun -- poldek < 0.19.0-1.20050613.22.0
365if [ -f /etc/poldek.conf.rpmsave ]; then
366 awk '/^source/ {
367 name = $3;
368 path = $4;
369 auto = "yes";
370 autoup = "yes";
371 type = "pdir";
f154dd55 372 pri = "";
b25cb9a7
JB
373
374 if (sub(",noauto", "", name)) {
375 auto = "no";
376 }
377
f154dd55
ER
378 # process pri=\d+
379 if (match(name, /,pri=[0-9]+/)) {
380 pri = substr(name, RSTART + 5, RLENGTH - 5);
381 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
382 }
383
b25cb9a7
JB
384 # skip ac sources. already in new config.
385 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
386 print "";
387 print "[source]";
388 print "name = " name;
389 print "type = " type;
390 print "path = " path;
391 print "auto = " auto;
392 print "autoup = " autoup;
f154dd55
ER
393 if (pri) {
394 print "pri = " pri;
395 }
b25cb9a7
JB
396 }
397
398 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
19cae196 399 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
b25cb9a7
JB
400
401 # copy hold=
402 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
403 if [ "$hold" ]; then
404 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
405 fi
406fi
407
b43abde7
ER
408%triggerpostun -- poldek < 0.30-0.20080225.00.1
409if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
410 %{__sed} -i -e '/^%%include source.conf/{
411 a
412 a# /etc/poldek/repos.d/*.conf
413 a%%includedir repos.d
414 }' %{_sysconfdir}/%{name}/poldek.conf
415fi
416
417%{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
418%{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
419
420if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
421 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
478b6a69 422 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
b43abde7
ER
423fi
424
425%ifarch %{x8664}
426if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
427 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
478b6a69 428 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
b43abde7
ER
429fi
430%endif
431
767366b0 432%files -f %{name}.lang
b44549bf 433%defattr(644,root,root,755)
a9c9446a 434%doc ChangeLog README* NEWS TODO configs
b25cb9a7 435%dir %{_sysconfdir}/%{name}
08335479 436%dir %{_sysconfdir}/%{name}/repos.d
168acc54 437%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
b43abde7 438%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
8efee472 439%attr(755,root,root) %{_bindir}/*
b25cb9a7
JB
440%dir %{_libdir}/%{name}
441%attr(755,root,root) %{_libdir}/%{name}/*
b44549bf 442%{_mandir}/man1/%{name}*
d8826405 443%lang(pl) %{_mandir}/pl/man1/%{name}*
b25cb9a7 444%{_infodir}/poldek.info*
9e6ff4ef 445%if %{with imode}
446%{_desktopdir}/%{name}.desktop
447%{_pixmapsdir}/%{name}.png
448%endif
b25cb9a7 449
b43abde7 450%if %{without static}
b25cb9a7
JB
451%files libs
452%defattr(644,root,root,755)
d8aeff9a
MB
453%attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
454%attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
455%attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
456%attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
457%attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
458%attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
459%attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
460%attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
461%attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
462%attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
b25cb9a7
JB
463%endif
464
465%files devel
466%defattr(644,root,root,755)
467%{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
468%{_libdir}/lib*.la
469%{_includedir}/*
470
471%files static
472%defattr(644,root,root,755)
473%{_libdir}/lib*.a
58c31de0
JB
474
475%if %{with python}
476%files -n python-poldek
477%defattr(644,root,root,755)
478%attr(755,root,root) %{py_sitedir}/_poldekmod.so
479%{py_sitescriptdir}/poldek.py[co]
480%{py_sitescriptdir}/poldekmod.py[co]
481%endif
This page took 0.165755 seconds and 4 git commands to generate.