]> git.pld-linux.org Git - packages/poldek.git/blame - poldek.spec
- fixes segfault
[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
149abeda 18%define rel 14
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
78b0cd64 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
85398bac
MB
36Patch0: %{name}-vserver-packages.patch
37Patch1: %{name}-config.patch
38Patch2: %{name}-abort-on-upgrade.patch
04a91ad3
MB
39Patch3: %{name}-inline.patch
40Patch4: %{name}-ls-llu.patch
41Patch5: %{name}-op-ldalldesc.patch
25838a54 42Patch6: %{name}-nocolor-upgrade.patch
f4114128
ER
43Patch7: %{name}-upgrade-dist.patch
44Patch8: %{name}-keep-reinstalled-provides.patch
bf43a3ac 45Patch9: %{name}-dont-ask-for-suggests-on-errors.patch
c7d7bdf5 46Patch10: %{name}-crash-on-invalid-locale.patch
149abeda 47Patch11: %{name}-noutf8.patch
f031015c 48Patch12: %{name}-dont-suggests-required-packages.patch
05e22a22 49Patch13: %{name}-tty-for-erasures.patch
c756c410 50Patch14: %{name}-both_langs.patch
20ff11b6 51Patch15: %{name}-317130.patch
39ca2371 52URL: http://poldek.pld-linux.org/
a4268952 53BuildRequires: autoconf
b25cb9a7 54BuildRequires: automake
373c6f03 55BuildRequires: bzip2-devel
b25cb9a7 56BuildRequires: check
530c8c41 57BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
c0d8905a 58BuildRequires: gettext-autopoint
b25cb9a7
JB
59BuildRequires: libtool
60BuildRequires: libxml2-devel
cbc6f56b 61BuildRequires: openssl-devel >= 0.9.7d
13fd950e 62BuildRequires: pcre-devel
f373d903 63BuildRequires: perl-tools-pod
b3ea4b51 64BuildRequires: pkgconfig
13fd950e 65BuildRequires: popt-devel
58c31de0 66%{?with_python:BuildRequires: python-devel}
b25cb9a7 67BuildRequires: readline-devel >= 5.0
373c6f03 68BuildRequires: rpm-devel >= %{ver_rpm}
300927eb 69%{?with_python:BuildRequires: rpm-pythonprov}
282cfaec 70BuildRequires: xmlto
96475e5e 71BuildRequires: zlib-devel
373c6f03
JB
72%if %{with static}
73BuildRequires: bzip2-static
530c8c41 74BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
2fac0b02 75BuildRequires: glibc-static
acb26797 76BuildRequires: libselinux-static
b25cb9a7 77BuildRequires: libxml2-static
373c6f03
JB
78BuildRequires: ncurses-static
79BuildRequires: openssl-static
80BuildRequires: pcre-static
81BuildRequires: popt-static
82BuildRequires: readline-static
83BuildRequires: rpm-static
84BuildRequires: zlib-static
373c6f03 85%endif
b25cb9a7 86Requires(triggerpostun): awk
168acc54 87Requires(triggerpostun): sed >= 4.0
09d4c571 88Requires: %{name}-libs = %{version}-%{release}
530c8c41 89Requires: db >= %{ver_db}-%{ver_db_rel}
373c6f03 90Requires: rpm >= %{ver_rpm}
530c8c41 91Requires: rpm-db-ver = %{ver_db}
78b0cd64 92Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
e202a52a
ER
93# vf* scripts use sed
94Requires: sed
b44549bf 95BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96
97%description
0fa0dc36 98poldek is an RPM package management tool which allows you to easily
99perform package verification, installation (including system
13fd950e 100installation from scratch), upgrading, and removal.
0fa0dc36 101
13fd950e
JB
102Program can be used in batch (like apt-get from Debian's APT) or
103interactive mode. The interactive mode puts you into a readline
104interface with command line autocompletion and history, similar to the
105shell mode of Perl's CPAN.
8efee472 106
9fe14a3f 107%{?with_static:This version is statically linked.}
d94b28a6 108
9fe14a3f 109%{!?with_imode:This version hasn't got interactive mode.}
7f07e487 110#'vim
1f84648f 111
caed9b36
JR
112%description -l pl.UTF-8
113poldek jest narzędziem linii poleceń służącym do weryfikacji,
114instalacji (włączając instalację systemu od zera), aktualizacji i
115usuwania pakietów.
56e1ab51 116
caed9b36 117Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
d82a9cb2 118interaktywnym. Tryb interaktywny posiada interfejs readline z
caed9b36
JR
119dopełnianiem komend i historią, podobny do trybu shell perlowego
120modułu CPAN.
8efee472 121
9fe14a3f 122%{?with_static:Ta wersja jest konsolidowana statycznie.}
a611e0bc 123
9fe14a3f 124%{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
b44549bf 125
b25cb9a7 126%package libs
168acc54 127Summary: poldek libraries
9faf625a 128Summary(pl.UTF-8): Biblioteki poldka
168acc54 129Group: Libraries
b25cb9a7
JB
130
131%description libs
132poldek libraries.
133
caed9b36 134%description libs -l pl.UTF-8
b25cb9a7
JB
135Biblioteki poldka.
136
137%package devel
168acc54 138Summary: Header files for poldek libraries
9faf625a 139Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
168acc54 140Group: Development/Libraries
09d4c571 141Requires: %{name}-libs = %{version}-%{release}
b25cb9a7
JB
142
143%description devel
144Header files for poldek libraries.
145
caed9b36
JR
146%description devel -l pl.UTF-8
147Pliki nagłówkowe bibliotek poldka.
b25cb9a7
JB
148
149%package static
168acc54 150Summary: poldek static libraries
9faf625a 151Summary(pl.UTF-8): Biblioteki statyczne poldka
168acc54 152Group: Development/Libraries
09d4c571 153Requires: %{name}-devel = %{version}-%{release}
b25cb9a7
JB
154
155%description static
156poldek static libraries.
157
caed9b36 158%description static -l pl.UTF-8
b25cb9a7
JB
159Biblioteki statyczne poldka.
160
58c31de0
JB
161%package -n python-poldek
162Summary: Python modules for poldek
9faf625a 163Summary(pl.UTF-8): Moduły języka Python dla poldka
58c31de0
JB
164Group: Libraries/Python
165Requires: %{name}-libs = %{version}-%{release}
166%pyrequires_eq python-libs
167
168%description -n python-poldek
169Python modules for poldek.
170
caed9b36
JR
171%description -n python-poldek -l pl.UTF-8
172Moduły języka Python dla poldka.
58c31de0 173
03159b71 174%prep
78b0cd64 175%setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
85398bac 176%patch0 -p1
13aa6434
AM
177%patch1 -p1
178%patch2 -p1
04a91ad3 179%patch3 -p1
2a61c5d4 180%patch4 -p1
c826891f 181%patch5 -p1
25838a54 182%patch6 -p0
f4114128
ER
183%patch7 -p0
184%patch8 -p0
bf43a3ac 185%patch9 -p0
c7d7bdf5 186%patch10 -p1
22858076 187%patch11 -p1
f031015c 188%patch12 -p1
05e22a22 189%patch13 -p1
c756c410 190%patch14 -p1
20ff11b6 191%patch15 -p1
b44549bf 192
0579f9b7
ER
193# cleanup backups after patching
194find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
195
b44549bf 196%build
bef9d2a3 197%{__libtoolize}
21a83253
MM
198%{__aclocal} -I m4
199%{__autoconf}
200%{__automake}
63bd61a7 201cp -f config.sub trurlib
b25cb9a7 202
97ecf213 203CPPFLAGS="-std=gnu99"
1f84648f 204%configure \
b25cb9a7 205 %{?with_static:--enable-static --disable-shared} \
9fe14a3f 206 %{!?with_imode:--disable-imode} \
58c31de0
JB
207 --enable-nls \
208 %{?with_python:--with-python}
03159b71 209%{__make}
8efee472 210
b44549bf 211%install
212rm -rf $RPM_BUILD_ROOT
08335479 213install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
8efee472 214
c8f7d829 215%{__make} install \
216 DESTDIR=$RPM_BUILD_ROOT
de1099c4 217
58c31de0
JB
218%if %{with python}
219%{__make} -C python install \
220 DESTDIR=$RPM_BUILD_ROOT \
221 libdir=%{py_sitedir}
222%endif
223
9fe14a3f 224%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
a49836bb 225
9639596f 226%ifarch i486 i686 ppc sparc alpha athlon
a49836bb 227%define _ftp_arch %{_target_cpu}
36004ea3 228%endif
9639596f 229%ifarch %{x8664}
590302c4 230%define _ftp_arch x86_64
b25cb9a7 231%define _ftp_alt_arch i686
36004ea3 232%endif
9639596f 233%ifarch i586
58820d9b 234%if "%{pld_release}" == "ti"
235%define _ftp_arch i586
236%else
9639596f 237%define _ftp_arch i486
36004ea3 238%endif
58820d9b 239%endif
a49836bb 240%ifarch pentium2 pentium3 pentium4
241%define _ftp_arch i686
36004ea3 242%endif
a49836bb 243%ifarch sparcv9 sparc64
244%define _ftp_arch sparc
245%endif
a49836bb 246
b25cb9a7 247%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
32697bd0 248
2ccd5d66 249%if "%{pld_release}" == "ti"
250sed -e '
251 s|%%ARCH%%|%{_ftp_arch}|g
252' < %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
253
254%ifarch %{x8664}
255sed '
256 s|%%ARCH%%|%{_ftp_alt_arch}|g
257' < %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
258%endif
259%else
7adf66ff
ER
260sed -e '
261 s|%%ARCH%%|%{_ftp_arch}|g
b43abde7 262' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
b44549bf 263
590302c4 264%ifarch %{x8664}
7adf66ff
ER
265sed '
266 s|%%ARCH%%|%{_ftp_alt_arch}|g
b43abde7 267' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
b25cb9a7 268%endif
2ccd5d66 269%endif
b25cb9a7 270
2ccd5d66 271install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/aliases.conf
b25cb9a7 272
9e6ff4ef 273%if %{with imode}
274# add desktop file and icon
275install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
2ccd5d66 276install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
277install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
9e6ff4ef 278%endif
279
b43abde7
ER
280# sources we don't package
281rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
b25cb9a7
JB
282# include them in %doc
283rm -rf configs
284cp -a conf configs
285rm -f configs/Makefile*
286
62e80071 287%if %{with python}
58c31de0
JB
288%py_postclean
289rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
62e80071 290%endif
58c31de0 291
b25cb9a7 292%find_lang %{name}
f373d903 293
b44549bf 294%clean
295rm -rf $RPM_BUILD_ROOT
296
3896c8b1
ER
297%post -p /sbin/postshell
298-/usr/sbin/fix-info-dir -c %{_infodir}
b25cb9a7 299
3896c8b1
ER
300%postun -p /sbin/postshell
301-/usr/sbin/fix-info-dir -c %{_infodir}
b25cb9a7
JB
302
303%post libs -p /sbin/ldconfig
304%postun libs -p /sbin/ldconfig
305
b25cb9a7
JB
306%triggerpostun -- poldek < 0.19.0-1.20050613.22.0
307if [ -f /etc/poldek.conf.rpmsave ]; then
308 awk '/^source/ {
309 name = $3;
310 path = $4;
311 auto = "yes";
312 autoup = "yes";
313 type = "pdir";
f154dd55 314 pri = "";
b25cb9a7
JB
315
316 if (sub(",noauto", "", name)) {
317 auto = "no";
318 }
319
f154dd55
ER
320 # process pri=\d+
321 if (match(name, /,pri=[0-9]+/)) {
322 pri = substr(name, RSTART + 5, RLENGTH - 5);
323 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
324 }
325
b25cb9a7
JB
326 # skip ac sources. already in new config.
327 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
328 print "";
329 print "[source]";
330 print "name = " name;
331 print "type = " type;
332 print "path = " path;
333 print "auto = " auto;
334 print "autoup = " autoup;
f154dd55
ER
335 if (pri) {
336 print "pri = " pri;
337 }
b25cb9a7
JB
338 }
339
340 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
19cae196 341 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
b25cb9a7
JB
342
343 # copy hold=
344 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
345 if [ "$hold" ]; then
346 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
347 fi
348fi
349
b43abde7
ER
350%triggerpostun -- poldek < 0.30-0.20080225.00.1
351if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
352 %{__sed} -i -e '/^%%include source.conf/{
353 a
354 a# /etc/poldek/repos.d/*.conf
355 a%%includedir repos.d
356 }' %{_sysconfdir}/%{name}/poldek.conf
357fi
358
359%{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
360%{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
361
362if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
363 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
478b6a69 364 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
b43abde7
ER
365fi
366
367%ifarch %{x8664}
368if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
369 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
478b6a69 370 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
b43abde7
ER
371fi
372%endif
373
767366b0 374%files -f %{name}.lang
b44549bf 375%defattr(644,root,root,755)
b43abde7 376%doc README* NEWS TODO configs
b25cb9a7 377%dir %{_sysconfdir}/%{name}
08335479 378%dir %{_sysconfdir}/%{name}/repos.d
168acc54 379%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
b43abde7 380%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
8efee472 381%attr(755,root,root) %{_bindir}/*
b25cb9a7
JB
382%dir %{_libdir}/%{name}
383%attr(755,root,root) %{_libdir}/%{name}/*
b44549bf 384%{_mandir}/man1/%{name}*
d8826405 385%lang(pl) %{_mandir}/pl/man1/%{name}*
b25cb9a7 386%{_infodir}/poldek.info*
9e6ff4ef 387%if %{with imode}
388%{_desktopdir}/%{name}.desktop
389%{_pixmapsdir}/%{name}.png
390%endif
b25cb9a7 391
b43abde7 392%if %{without static}
b25cb9a7
JB
393%files libs
394%defattr(644,root,root,755)
d8aeff9a
MB
395%attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
396%attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
397%attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
398%attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
399%attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
400%attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
401%attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
402%attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
403%attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
404%attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
b25cb9a7
JB
405%endif
406
407%files devel
408%defattr(644,root,root,755)
409%{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
410%{_libdir}/lib*.la
411%{_includedir}/*
412
413%files static
414%defattr(644,root,root,755)
415%{_libdir}/lib*.a
58c31de0
JB
416
417%if %{with python}
418%files -n python-poldek
419%defattr(644,root,root,755)
420%attr(755,root,root) %{py_sitedir}/_poldekmod.so
421%{py_sitescriptdir}/poldek.py[co]
422%{py_sitescriptdir}/poldekmod.py[co]
423%endif
This page took 0.321997 seconds and 4 git commands to generate.