]> git.pld-linux.org Git - packages/poldek.git/blame - poldek.spec
- added -unescape-urlencoded-strings.patch (fixes lp#381548)
[packages/poldek.git] / poldek.spec
CommitLineData
7638abfc 1#
de1099c4 2# Conditional build:
9fe14a3f 3%bcond_with static # don't use shared libraries
4%bcond_without imode # don't build interactive mode
58c31de0 5%bcond_without python # don't build python bindings
7638abfc 6#
373c6f03 7# required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
4d7ffb0a 8%if "%{pld_release}" == "ti"
530c8c41 9%define ver_db 4.5.20
473ce98d 10%define ver_db_rel 8
4d7ffb0a 11%else
530c8c41 12%define ver_db 4.7.25
473ce98d 13%define ver_db_rel 1
4d7ffb0a 14%endif
2b6db74f 15%define ver_rpm 4.5-5
5486bf2e 16#
04a91ad3 17%define snap 20080820.23
3e69de12 18%define rel 30
b44549bf 19Summary: RPM packages management helper tool
9faf625a 20Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
b44549bf 21Name: poldek
24ad8b8d 22Version: 0.30
40ae4011 23Release: 0.%{snap}.%{rel}
9f931ada 24License: GPL v2
8efee472 25Group: Applications/System
85398bac 26#Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
c0898992 27Source0: http://carme.pld-linux.org/~megabajt/snaps/poldek/%{name}-%{version}-cvs%{snap}.tar.bz2
04a91ad3 28# Source0-md5: 2738eb3996f1cdf1e5d74b913d6e7414
911a8560 29Source1: %{name}.conf
b25cb9a7 30Source2: %{name}-multilib.conf
2ccd5d66 31Source3: %{name}-ti.conf
32Source4: %{name}-multilib-ti.conf
33Source5: %{name}-aliases.conf
34Source6: %{name}.desktop
35Source7: %{name}.png
171e07f6 36Source8: %{name}-debuginfo.conf
85398bac
MB
37Patch0: %{name}-vserver-packages.patch
38Patch1: %{name}-config.patch
39Patch2: %{name}-abort-on-upgrade.patch
04a91ad3
MB
40Patch3: %{name}-inline.patch
41Patch4: %{name}-ls-llu.patch
42Patch5: %{name}-op-ldalldesc.patch
25838a54 43Patch6: %{name}-nocolor-upgrade.patch
f4114128
ER
44Patch7: %{name}-upgrade-dist.patch
45Patch8: %{name}-keep-reinstalled-provides.patch
bf43a3ac 46Patch9: %{name}-dont-ask-for-suggests-on-errors.patch
c7d7bdf5 47Patch10: %{name}-crash-on-invalid-locale.patch
149abeda 48Patch11: %{name}-noutf8.patch
f031015c 49Patch12: %{name}-dont-suggests-required-packages.patch
05e22a22 50Patch13: %{name}-tty-for-erasures.patch
c756c410 51Patch14: %{name}-both_langs.patch
20ff11b6 52Patch15: %{name}-317130.patch
d0d294bd 53Patch16: %{name}-321546.patch
f76d4526
PZ
54Patch17: %{name}-size-type.patch
55Patch18: %{name}-no-inlines.patch
a483213a 56Patch19: %{name}-export-missing-symbol.patch
fb2a8800 57Patch20: %{name}-skip-suggests-on-upgrade.patch
8f2fba8c 58Patch21: %{name}-po.patch
b9baa977 59Patch22: %{name}-refcnt.patch
20b92beb 60Patch23: %{name}-assertion-failed.patch
3e69de12 61Patch24: %{name}-unescape-urlencoded-strings.patch
39ca2371 62URL: http://poldek.pld-linux.org/
a4268952 63BuildRequires: autoconf
b25cb9a7 64BuildRequires: automake
373c6f03 65BuildRequires: bzip2-devel
b25cb9a7 66BuildRequires: check
530c8c41 67BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
c0d8905a 68BuildRequires: gettext-autopoint
b25cb9a7
JB
69BuildRequires: libtool
70BuildRequires: libxml2-devel
cbc6f56b 71BuildRequires: openssl-devel >= 0.9.7d
13fd950e 72BuildRequires: pcre-devel
f373d903 73BuildRequires: perl-tools-pod
b3ea4b51 74BuildRequires: pkgconfig
13fd950e 75BuildRequires: popt-devel
58c31de0 76%{?with_python:BuildRequires: python-devel}
b25cb9a7 77BuildRequires: readline-devel >= 5.0
373c6f03 78BuildRequires: rpm-devel >= %{ver_rpm}
300927eb 79%{?with_python:BuildRequires: rpm-pythonprov}
282cfaec 80BuildRequires: xmlto
96475e5e 81BuildRequires: zlib-devel
373c6f03
JB
82%if %{with static}
83BuildRequires: bzip2-static
530c8c41 84BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
2fac0b02 85BuildRequires: glibc-static
acb26797 86BuildRequires: libselinux-static
b25cb9a7 87BuildRequires: libxml2-static
373c6f03
JB
88BuildRequires: ncurses-static
89BuildRequires: openssl-static
90BuildRequires: pcre-static
91BuildRequires: popt-static
92BuildRequires: readline-static
93BuildRequires: rpm-static
94BuildRequires: zlib-static
373c6f03 95%endif
b25cb9a7 96Requires(triggerpostun): awk
168acc54 97Requires(triggerpostun): sed >= 4.0
09d4c571 98Requires: %{name}-libs = %{version}-%{release}
530c8c41 99Requires: db >= %{ver_db}-%{ver_db_rel}
373c6f03 100Requires: rpm >= %{ver_rpm}
530c8c41 101Requires: rpm-db-ver = %{ver_db}
78b0cd64 102Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
e202a52a
ER
103# vf* scripts use sed
104Requires: sed
b44549bf 105BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
106
107%description
0fa0dc36 108poldek is an RPM package management tool which allows you to easily
109perform package verification, installation (including system
13fd950e 110installation from scratch), upgrading, and removal.
0fa0dc36 111
13fd950e
JB
112Program can be used in batch (like apt-get from Debian's APT) or
113interactive mode. The interactive mode puts you into a readline
114interface with command line autocompletion and history, similar to the
115shell mode of Perl's CPAN.
8efee472 116
9fe14a3f 117%{?with_static:This version is statically linked.}
d94b28a6 118
9fe14a3f 119%{!?with_imode:This version hasn't got interactive mode.}
7f07e487 120#'vim
1f84648f 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
9faf625a 138Summary(pl.UTF-8): Biblioteki poldka
168acc54 139Group: Libraries
b25cb9a7
JB
140
141%description libs
142poldek libraries.
143
caed9b36 144%description libs -l pl.UTF-8
b25cb9a7
JB
145Biblioteki poldka.
146
147%package devel
168acc54 148Summary: Header files for poldek libraries
9faf625a 149Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
168acc54 150Group: Development/Libraries
09d4c571 151Requires: %{name}-libs = %{version}-%{release}
b980560b 152Requires: rpm-devel >= %{ver_rpm}
b25cb9a7
JB
153
154%description devel
155Header files for poldek libraries.
156
caed9b36
JR
157%description devel -l pl.UTF-8
158Pliki nagłówkowe bibliotek poldka.
b25cb9a7
JB
159
160%package static
168acc54 161Summary: poldek static libraries
9faf625a 162Summary(pl.UTF-8): Biblioteki statyczne poldka
168acc54 163Group: Development/Libraries
09d4c571 164Requires: %{name}-devel = %{version}-%{release}
b25cb9a7
JB
165
166%description static
167poldek static libraries.
168
caed9b36 169%description static -l pl.UTF-8
b25cb9a7
JB
170Biblioteki statyczne poldka.
171
58c31de0
JB
172%package -n python-poldek
173Summary: Python modules for poldek
9faf625a 174Summary(pl.UTF-8): Moduły języka Python dla poldka
58c31de0
JB
175Group: Libraries/Python
176Requires: %{name}-libs = %{version}-%{release}
177%pyrequires_eq python-libs
178
179%description -n python-poldek
180Python modules for poldek.
181
caed9b36
JR
182%description -n python-poldek -l pl.UTF-8
183Moduły języka Python dla poldka.
58c31de0 184
03159b71 185%prep
78b0cd64 186%setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
85398bac 187%patch0 -p1
13aa6434
AM
188%patch1 -p1
189%patch2 -p1
04a91ad3 190%patch3 -p1
2a61c5d4 191%patch4 -p1
c826891f 192%patch5 -p1
25838a54 193%patch6 -p0
f4114128
ER
194%patch7 -p0
195%patch8 -p0
bf43a3ac 196%patch9 -p0
c7d7bdf5 197%patch10 -p1
22858076 198%patch11 -p1
f031015c 199%patch12 -p1
05e22a22 200%patch13 -p1
c756c410 201%patch14 -p1
20ff11b6 202%patch15 -p1
d0d294bd 203%patch16 -p1
f76d4526
PZ
204%patch17 -p1
205%patch18 -p1
a483213a 206%patch19 -p0
fb2a8800 207%patch20 -p1
8f2fba8c 208%patch21 -p1
b9baa977 209%patch22 -p0
20b92beb 210%patch23 -p1
3e69de12 211%patch24 -p1
b44549bf 212
0579f9b7
ER
213# cleanup backups after patching
214find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
215
b44549bf 216%build
bef9d2a3 217%{__libtoolize}
21a83253
MM
218%{__aclocal} -I m4
219%{__autoconf}
220%{__automake}
63bd61a7 221cp -f config.sub trurlib
b25cb9a7 222
97ecf213 223CPPFLAGS="-std=gnu99"
1f84648f 224%configure \
b25cb9a7 225 %{?with_static:--enable-static --disable-shared} \
9fe14a3f 226 %{!?with_imode:--disable-imode} \
58c31de0
JB
227 --enable-nls \
228 %{?with_python:--with-python}
03159b71 229%{__make}
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
a49836bb 247%define _ftp_arch %{_target_cpu}
36004ea3 248%endif
9639596f 249%ifarch %{x8664}
590302c4 250%define _ftp_arch x86_64
b25cb9a7 251%define _ftp_alt_arch i686
36004ea3 252%endif
9639596f 253%ifarch i586
58820d9b 254%if "%{pld_release}" == "ti"
255%define _ftp_arch i586
256%else
9639596f 257%define _ftp_arch i486
36004ea3 258%endif
58820d9b 259%endif
a49836bb 260%ifarch pentium2 pentium3 pentium4
261%define _ftp_arch i686
36004ea3 262%endif
a49836bb 263%ifarch sparcv9 sparc64
264%define _ftp_arch sparc
265%endif
a49836bb 266
b25cb9a7 267%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
32697bd0 268
2ccd5d66 269%if "%{pld_release}" == "ti"
270sed -e '
271 s|%%ARCH%%|%{_ftp_arch}|g
272' < %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
273
274%ifarch %{x8664}
275sed '
276 s|%%ARCH%%|%{_ftp_alt_arch}|g
277' < %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
278%endif
279%else
171e07f6 280# pld_release = th
7adf66ff
ER
281sed -e '
282 s|%%ARCH%%|%{_ftp_arch}|g
b43abde7 283' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
171e07f6
ER
284sed -e '
285 s|%%ARCH%%|%{_ftp_arch}|g
286' < %{SOURCE8} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
b44549bf 287
590302c4 288%ifarch %{x8664}
7adf66ff
ER
289sed '
290 s|%%ARCH%%|%{_ftp_alt_arch}|g
b43abde7 291' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
b25cb9a7 292%endif
2ccd5d66 293%endif
b25cb9a7 294
480fc3c0 295install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
b25cb9a7 296
9e6ff4ef 297%if %{with imode}
298# add desktop file and icon
299install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
2ccd5d66 300install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
301install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
9e6ff4ef 302%endif
303
b43abde7
ER
304# sources we don't package
305rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
b25cb9a7
JB
306# include them in %doc
307rm -rf configs
308cp -a conf configs
309rm -f configs/Makefile*
310
62e80071 311%if %{with python}
58c31de0
JB
312%py_postclean
313rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
62e80071 314%endif
58c31de0 315
b25cb9a7 316%find_lang %{name}
f373d903 317
b44549bf 318%clean
319rm -rf $RPM_BUILD_ROOT
320
daf0e7ce
ER
321%post
322[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
323if [ "$1" = "1" ]; then
324 # remove ignore = vserver-packages inside vserver on first install
325 {
326 while read f ctx; do
327 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
328 done </proc/self/status
329 } 2>/dev/null
330 if [ -z "$ctx" -o "$ctx" = "0" ]; then
331 VSERVER=no
332 else
333 VSERVER=yes
334 fi
335 if [ "$VSERVER" = "yes" ]; then
336 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
337 fi
338fi
b25cb9a7 339
3896c8b1
ER
340%postun -p /sbin/postshell
341-/usr/sbin/fix-info-dir -c %{_infodir}
b25cb9a7
JB
342
343%post libs -p /sbin/ldconfig
344%postun libs -p /sbin/ldconfig
345
b25cb9a7
JB
346%triggerpostun -- poldek < 0.19.0-1.20050613.22.0
347if [ -f /etc/poldek.conf.rpmsave ]; then
348 awk '/^source/ {
349 name = $3;
350 path = $4;
351 auto = "yes";
352 autoup = "yes";
353 type = "pdir";
f154dd55 354 pri = "";
b25cb9a7
JB
355
356 if (sub(",noauto", "", name)) {
357 auto = "no";
358 }
359
f154dd55
ER
360 # process pri=\d+
361 if (match(name, /,pri=[0-9]+/)) {
362 pri = substr(name, RSTART + 5, RLENGTH - 5);
363 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
364 }
365
b25cb9a7
JB
366 # skip ac sources. already in new config.
367 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
368 print "";
369 print "[source]";
370 print "name = " name;
371 print "type = " type;
372 print "path = " path;
373 print "auto = " auto;
374 print "autoup = " autoup;
f154dd55
ER
375 if (pri) {
376 print "pri = " pri;
377 }
b25cb9a7
JB
378 }
379
380 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
19cae196 381 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
b25cb9a7
JB
382
383 # copy hold=
384 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
385 if [ "$hold" ]; then
386 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
387 fi
388fi
389
b43abde7
ER
390%triggerpostun -- poldek < 0.30-0.20080225.00.1
391if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
392 %{__sed} -i -e '/^%%include source.conf/{
393 a
394 a# /etc/poldek/repos.d/*.conf
395 a%%includedir repos.d
396 }' %{_sysconfdir}/%{name}/poldek.conf
397fi
398
399%{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
400%{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
401
402if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
403 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
478b6a69 404 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
b43abde7
ER
405fi
406
407%ifarch %{x8664}
408if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
409 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
478b6a69 410 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
b43abde7
ER
411fi
412%endif
413
767366b0 414%files -f %{name}.lang
b44549bf 415%defattr(644,root,root,755)
b43abde7 416%doc README* NEWS TODO configs
b25cb9a7 417%dir %{_sysconfdir}/%{name}
08335479 418%dir %{_sysconfdir}/%{name}/repos.d
168acc54 419%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
b43abde7 420%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
8efee472 421%attr(755,root,root) %{_bindir}/*
b25cb9a7
JB
422%dir %{_libdir}/%{name}
423%attr(755,root,root) %{_libdir}/%{name}/*
b44549bf 424%{_mandir}/man1/%{name}*
d8826405 425%lang(pl) %{_mandir}/pl/man1/%{name}*
b25cb9a7 426%{_infodir}/poldek.info*
9e6ff4ef 427%if %{with imode}
428%{_desktopdir}/%{name}.desktop
429%{_pixmapsdir}/%{name}.png
430%endif
b25cb9a7 431
b43abde7 432%if %{without static}
b25cb9a7
JB
433%files libs
434%defattr(644,root,root,755)
d8aeff9a
MB
435%attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
436%attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
437%attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
438%attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
439%attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
440%attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
441%attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
442%attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
443%attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
444%attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
b25cb9a7
JB
445%endif
446
447%files devel
448%defattr(644,root,root,755)
449%{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
450%{_libdir}/lib*.la
451%{_includedir}/*
452
453%files static
454%defattr(644,root,root,755)
455%{_libdir}/lib*.a
58c31de0
JB
456
457%if %{with python}
458%files -n python-poldek
459%defattr(644,root,root,755)
460%attr(755,root,root) %{py_sitedir}/_poldekmod.so
461%{py_sitescriptdir}/poldek.py[co]
462%{py_sitescriptdir}/poldekmod.py[co]
463%endif
This page took 0.142414 seconds and 4 git commands to generate.