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