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