]> git.pld-linux.org Git - packages/poldek.git/blame - poldek.spec
- rel .3
[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)
bef9d2a3 8%define ver_db 4.7.25-1
ce5515ca 9%define ver_rpm 4.4.9-56
5486bf2e 10#
85398bac 11%define snap 20080519.22
67e1198c 12%define rel 3
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}
bef9d2a3 165%{__libtoolize}
21a83253
MM
166%{__aclocal} -I m4
167%{__autoconf}
168%{__automake}
63bd61a7 169cp -f config.sub trurlib
b25cb9a7 170
97ecf213 171CPPFLAGS="-std=gnu99"
1f84648f 172%configure \
b25cb9a7 173 %{?with_static:--enable-static --disable-shared} \
9fe14a3f 174 %{!?with_imode:--disable-imode} \
58c31de0
JB
175 --enable-nls \
176 %{?with_python:--with-python}
03159b71 177%{__make}
8efee472 178
b44549bf 179%install
180rm -rf $RPM_BUILD_ROOT
08335479 181install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
8efee472 182
c8f7d829 183%{__make} install \
184 DESTDIR=$RPM_BUILD_ROOT
de1099c4 185
58c31de0
JB
186%if %{with python}
187%{__make} -C python install \
188 DESTDIR=$RPM_BUILD_ROOT \
189 libdir=%{py_sitedir}
190%endif
191
9fe14a3f 192%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
a49836bb 193
9639596f 194%ifarch i486 i686 ppc sparc alpha athlon
a49836bb 195%define _ftp_arch %{_target_cpu}
36004ea3 196%endif
9639596f 197%ifarch %{x8664}
590302c4 198%define _ftp_arch x86_64
b25cb9a7 199%define _ftp_alt_arch i686
36004ea3 200%endif
9639596f 201%ifarch i586
58820d9b 202%if "%{pld_release}" == "ti"
203%define _ftp_arch i586
204%else
9639596f 205%define _ftp_arch i486
36004ea3 206%endif
58820d9b 207%endif
a49836bb 208%ifarch pentium2 pentium3 pentium4
209%define _ftp_arch i686
36004ea3 210%endif
a49836bb 211%ifarch sparcv9 sparc64
212%define _ftp_arch sparc
213%endif
a49836bb 214
b25cb9a7 215%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
32697bd0 216
2ccd5d66 217%if "%{pld_release}" == "ti"
218sed -e '
219 s|%%ARCH%%|%{_ftp_arch}|g
220' < %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
221
222%ifarch %{x8664}
223sed '
224 s|%%ARCH%%|%{_ftp_alt_arch}|g
225' < %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
226%endif
227%else
7adf66ff
ER
228sed -e '
229 s|%%ARCH%%|%{_ftp_arch}|g
b43abde7 230' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
b44549bf 231
590302c4 232%ifarch %{x8664}
7adf66ff
ER
233sed '
234 s|%%ARCH%%|%{_ftp_alt_arch}|g
b43abde7 235' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
b25cb9a7 236%endif
2ccd5d66 237%endif
b25cb9a7 238
2ccd5d66 239install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/aliases.conf
b25cb9a7 240
9e6ff4ef 241%if %{with imode}
242# add desktop file and icon
243install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
2ccd5d66 244install %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
245install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
9e6ff4ef 246%endif
247
b43abde7
ER
248# sources we don't package
249rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
b25cb9a7
JB
250# include them in %doc
251rm -rf configs
252cp -a conf configs
253rm -f configs/Makefile*
254
62e80071 255%if %{with python}
58c31de0
JB
256%py_postclean
257rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
62e80071 258%endif
58c31de0 259
b25cb9a7 260%find_lang %{name}
f373d903 261
b44549bf 262%clean
263rm -rf $RPM_BUILD_ROOT
264
3896c8b1
ER
265%post -p /sbin/postshell
266-/usr/sbin/fix-info-dir -c %{_infodir}
b25cb9a7 267
3896c8b1
ER
268%postun -p /sbin/postshell
269-/usr/sbin/fix-info-dir -c %{_infodir}
b25cb9a7
JB
270
271%post libs -p /sbin/ldconfig
272%postun libs -p /sbin/ldconfig
273
b25cb9a7
JB
274%triggerpostun -- poldek < 0.19.0-1.20050613.22.0
275if [ -f /etc/poldek.conf.rpmsave ]; then
276 awk '/^source/ {
277 name = $3;
278 path = $4;
279 auto = "yes";
280 autoup = "yes";
281 type = "pdir";
f154dd55 282 pri = "";
b25cb9a7
JB
283
284 if (sub(",noauto", "", name)) {
285 auto = "no";
286 }
287
f154dd55
ER
288 # process pri=\d+
289 if (match(name, /,pri=[0-9]+/)) {
290 pri = substr(name, RSTART + 5, RLENGTH - 5);
291 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
292 }
293
b25cb9a7
JB
294 # skip ac sources. already in new config.
295 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
296 print "";
297 print "[source]";
298 print "name = " name;
299 print "type = " type;
300 print "path = " path;
301 print "auto = " auto;
302 print "autoup = " autoup;
f154dd55
ER
303 if (pri) {
304 print "pri = " pri;
305 }
b25cb9a7
JB
306 }
307
308 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
19cae196 309 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
b25cb9a7
JB
310
311 # copy hold=
312 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
313 if [ "$hold" ]; then
314 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
315 fi
316fi
317
b43abde7
ER
318%triggerpostun -- poldek < 0.30-0.20080225.00.1
319if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
320 %{__sed} -i -e '/^%%include source.conf/{
321 a
322 a# /etc/poldek/repos.d/*.conf
323 a%%includedir repos.d
324 }' %{_sysconfdir}/%{name}/poldek.conf
325fi
326
327%{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
328%{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
329
330if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
331 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
478b6a69 332 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
b43abde7
ER
333fi
334
335%ifarch %{x8664}
336if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
337 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
478b6a69 338 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
b43abde7
ER
339fi
340%endif
341
767366b0 342%files -f %{name}.lang
b44549bf 343%defattr(644,root,root,755)
b43abde7 344%doc README* NEWS TODO configs
b25cb9a7 345%dir %{_sysconfdir}/%{name}
08335479 346%dir %{_sysconfdir}/%{name}/repos.d
168acc54 347%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
b43abde7 348%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
8efee472 349%attr(755,root,root) %{_bindir}/*
b25cb9a7
JB
350%dir %{_libdir}/%{name}
351%attr(755,root,root) %{_libdir}/%{name}/*
b44549bf 352%{_mandir}/man1/%{name}*
d8826405 353%lang(pl) %{_mandir}/pl/man1/%{name}*
b25cb9a7 354%{_infodir}/poldek.info*
9e6ff4ef 355%if %{with imode}
356%{_desktopdir}/%{name}.desktop
357%{_pixmapsdir}/%{name}.png
358%endif
b25cb9a7 359
b43abde7 360%if %{without static}
b25cb9a7
JB
361%files libs
362%defattr(644,root,root,755)
d8aeff9a
MB
363%attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
364%attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
365%attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
366%attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
367%attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
368%attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
369%attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
370%attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
371%attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
372%attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
b25cb9a7
JB
373%endif
374
375%files devel
376%defattr(644,root,root,755)
377%{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
378%{_libdir}/lib*.la
379%{_includedir}/*
380
381%files static
382%defattr(644,root,root,755)
383%{_libdir}/lib*.a
58c31de0
JB
384
385%if %{with python}
386%files -n python-poldek
387%defattr(644,root,root,755)
388%attr(755,root,root) %{py_sitedir}/_poldekmod.so
389%{py_sitescriptdir}/poldek.py[co]
390%{py_sitescriptdir}/poldekmod.py[co]
391%endif
This page took 0.168382 seconds and 4 git commands to generate.