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