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