]> git.pld-linux.org Git - packages/poldek.git/blame_incremental - poldek.spec
- test rpm5+poldek with db5.2
[packages/poldek.git] / poldek.spec
... / ...
CommitLineData
1#
2# Conditional build:
3%bcond_with static # don't use shared libraries
4%bcond_without imode # don't build interactive mode
5%bcond_without python # don't build python bindings
6%bcond_with snap # install configs for official Th snapshot
7
8# current snapshot name
9%define SNAP 2012
10
11# required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
12%define ver_db 5.2
13%define ver_db_rel 2
14%define ver_rpm 5.4.10
15
16%define snap rc6
17%define rel 4%{?with_snap:.%{SNAP}}
18Summary: RPM packages management helper tool
19Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz
20Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
21Name: poldek
22Version: 0.30
23Release: 1.%{snap}.%{rel}
24License: GPL v2
25Group: Applications/System
26#Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
27Source0: http://carme.pld-linux.org/~megabajt/snaps/poldek/%{name}-%{version}%{snap}.tar.xz
28# Source0-md5: 4b528ad356b02efdd72b81f1ecaceb83
29Source1: %{name}.conf
30Source2: %{name}-multilib.conf
31Source5: %{name}-aliases.conf
32Source6: %{name}.desktop
33Source7: %{name}.png
34Source8: %{name}-debuginfo.conf
35Source9: %{name}-aidath.conf
36Source10: %{name}-multilib-aidath.conf
37Source11: %{name}-archive.conf
38Source100: %{name}-snap.conf
39Source101: %{name}-multilib-snap.conf
40Source102: %{name}-debuginfo-snap.conf
41Patch0: %{name}-vserver-packages.patch
42Patch1: %{name}-config.patch
43Patch2: %{name}-size-type.patch
44Patch3: %{name}-Os-fail-workaround.patch
45Patch4: %{name}-link-rpmio.patch
46Patch5: %{name}-vrpmlog.patch
47Patch6: %{name}-git.patch
48URL: http://poldek.pld-linux.org/
49BuildRequires: autoconf
50BuildRequires: automake
51BuildRequires: bzip2-devel
52BuildRequires: check-devel
53BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel}
54BuildRequires: docbook-dtd412-xml
55BuildRequires: gettext-devel
56BuildRequires: libtool
57BuildRequires: libxml2-devel
58BuildRequires: neon-devel
59BuildRequires: openssl-devel >= 0.9.7d
60BuildRequires: pcre-devel
61BuildRequires: pkgconfig
62BuildRequires: popt-devel
63%{?with_python:BuildRequires: python-devel}
64BuildRequires: readline-devel >= 5.0
65BuildRequires: rpm-devel >= %{ver_rpm}
66%{?with_python:BuildRequires: rpm-pythonprov}
67BuildRequires: swig-python
68BuildRequires: xmlto
69BuildRequires: zlib-devel
70%if %{with static}
71BuildRequires: bzip2-static
72BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
73BuildRequires: glibc-static
74BuildRequires: libselinux-static
75BuildRequires: libxml2-static
76BuildRequires: ncurses-static
77BuildRequires: openssl-static
78BuildRequires: pcre-static
79BuildRequires: popt-static
80BuildRequires: readline-static
81BuildRequires: rpm-static
82BuildRequires: zlib-static
83%endif
84Requires(triggerpostun): awk
85Requires(triggerpostun): sed >= 4.0
86Requires: %{name}-libs = %{version}-%{release}
87Requires: db >= %{ver_db}-%{ver_db_rel}
88Requires: rpm >= %{ver_rpm}
89Requires: rpm-db-ver = %{ver_db}
90#Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
91Requires: rpm-lib >= 5.4.10
92# vf* scripts use sed
93Requires: sed
94BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
95
96%description
97poldek is an RPM package management tool which allows you to easily
98perform package verification, installation (including system
99installation from scratch), upgrading, and removal.
100
101Program can be used in batch (like apt-get from Debian's APT) or
102interactive mode. The interactive mode puts you into a readline
103interface with command line autocompletion and history, similar to the
104shell mode of Perl's CPAN.
105
106%{?with_static:This version is statically linked.}
107
108%{!?with_imode:This version hasn't got interactive mode.}
109#'vim
110
111%description -l hu.UTF-8
112poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a
113csomagellenőrzést, telepítést (beleértve a rendszertelepítést a
114nulláról), frissítést és eltávolítást.
115
116A program használható parancssorból (mint a Debian apt-get programja)
117vagy interaktív módban. Az interaktív mód egy readline környezetet
118jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN
119shell módjához.
120
121%{?with_static:Ez a verzió statikusan linkelt.}
122
123%{!?with_imode:Ennek a verziónak nincs interaktív módja.}
124
125%description -l pl.UTF-8
126poldek jest narzędziem linii poleceń służącym do weryfikacji,
127instalacji (włączając instalację systemu od zera), aktualizacji i
128usuwania pakietów.
129
130Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
131interaktywnym. Tryb interaktywny posiada interfejs readline z
132dopełnianiem komend i historią, podobny do trybu shell perlowego
133modułu CPAN.
134
135%{?with_static:Ta wersja jest konsolidowana statycznie.}
136
137%{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
138
139%package libs
140Summary: poldek libraries
141Summary(hu.UTF-8): A poldek könyvtárai
142Summary(pl.UTF-8): Biblioteki poldka
143Group: Libraries
144
145%description libs
146poldek libraries.
147
148%description libs -l hu.UTF-8
149A poldek könyvtárai.
150
151%description libs -l pl.UTF-8
152Biblioteki poldka.
153
154%package devel
155Summary: Header files for poldek libraries
156Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
157Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
158Group: Development/Libraries
159Requires: %{name}-libs = %{version}-%{release}
160Requires: rpm-devel >= %{ver_rpm}
161
162%description devel
163Header files for poldek libraries.
164
165%description devel -l hu.UTF-8
166A poldek könyvtár fejlesztői fájljai.
167
168%description devel -l pl.UTF-8
169Pliki nagłówkowe bibliotek poldka.
170
171%package static
172Summary: poldek static libraries
173Summary(hu.UTF-8): poldek statikus könyvtárak
174Summary(pl.UTF-8): Biblioteki statyczne poldka
175Group: Development/Libraries
176Requires: %{name}-devel = %{version}-%{release}
177
178%description static
179poldek static libraries.
180
181%description static -l hu.UTF-8
182poldek statikus könyvtárak.
183
184%description static -l pl.UTF-8
185Biblioteki statyczne poldka.
186
187%package -n python-poldek
188Summary: Python modules for poldek
189Summary(hu.UTF-8): Python modulok poldek-hez
190Summary(pl.UTF-8): Moduły języka Python dla poldka
191Group: Libraries/Python
192Requires: %{name}-libs = %{version}-%{release}
193%pyrequires_eq python-libs
194
195%description -n python-poldek
196Python modules for poldek.
197
198%description -n python-poldek -l hu.UTF-8
199Python modulok poldek-hez.
200
201%description -n python-poldek -l pl.UTF-8
202Moduły języka Python dla poldka.
203
204%prep
205%setup -q
206%patch0 -p1
207%patch1 -p1
208%patch2 -p1
209%patch3 -p1
210%patch4 -p1
211%patch5 -p1
212%patch6 -p1
213
214%{__rm} m4/libtool.m4 m4/lt*.m4
215
216# cleanup backups after patching
217find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
218chmod u+x ./configure ./doc/conf-xml2.sh
219
220%build
221%{__libtoolize}
222%{__aclocal} -I m4
223%{__autoheader}
224%{__autoconf}
225%{__automake}
226cd tndb
227%{__libtoolize}
228%{__aclocal}
229%{__autoheader}
230%{__autoconf}
231%{__automake}
232cd ../trurlib
233%{__libtoolize}
234%{__aclocal}
235%{__autoheader}
236%{__autoconf}
237%{__automake}
238cd ..
239
240CPPFLAGS="%{rpmcppflags} -std=gnu99"
241%configure \
242 %{?with_static:--enable-static --disable-shared} \
243 %{!?with_imode:--disable-imode} \
244 --enable-nls \
245 %{?with_python:--with-python}
246%{__make} -j1
247# --enable-trace
248
249%install
250rm -rf $RPM_BUILD_ROOT
251install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}}
252
253%{__make} install -j1 \
254 DESTDIR=$RPM_BUILD_ROOT
255
256%if %{with python}
257%{__make} -C python -j1 install \
258 DESTDIR=$RPM_BUILD_ROOT \
259 libdir=%{py_sitedir}
260%endif
261
262%{?with_static:%{__rm} $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
263
264%ifarch i486 i686 ppc sparc alpha athlon
265 %define _ftp_arch %{_target_cpu}
266%endif
267%ifarch %{x8664}
268 %define _ftp_arch x86_64
269 %define _ftp_alt_arch i686
270%endif
271%ifarch i586
272 %define _ftp_arch i486
273%endif
274%ifarch pentium2 pentium3 pentium4
275 %define _ftp_arch i686
276%endif
277%ifarch sparcv9 sparc64
278 %define _ftp_arch sparc
279 %define _ftp_arch %{_target_cpu}
280 %ifarch sparc64
281 %define _ftp_alt_arch sparcv9
282 %endif
283%endif
284
285%define pld_conf %{SOURCE1}
286%define pld_debuginfo_conf %{SOURCE8}
287%define pld_archive_conf %{SOURCE11}
288
289%ifarch %{x8664}
290 %define pld_multilib_conf %{SOURCE2}
291%endif
292
293# aidath
294%ifarch sparcv9 sparc64
295 %define pld_conf %{SOURCE9}
296 %undefine pld_archive_conf
297%endif
298%ifarch sparc64
299 %define pld_multilib_conf %{SOURCE10}
300%endif
301
302%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
303
304%if 0%{?pld_multilib_conf:1}
305 %{__sed} 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
306%endif
307
308%if 0%{?pld_debuginfo_conf:1}
309%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
310%endif
311
312%if 0%{?pld_archive_conf:1}
313%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf
314%endif
315
316# Always install snapshot configs
317%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' \
318 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE100} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
319%{__sed} -e 's|%%ARCH%%|%{_ftp_arch}|g' \
320 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE102} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-debuginfo.conf
321%ifarch %{x8664}
322 %{__sed} -e 's|%%ARCH%%|%{_ftp_alt_arch}|g' \
323 -e 's|%%SNAP%%|%{SNAP}|g' < %{SOURCE101} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}-multilib.conf
324%endif
325
326%if %{with snap}
327%{__sed} -i -e 's|@@SNAP@@||g' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
328%{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
329%else
330%{__sed} -i -e 's|@@SNAP@@||g' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-%{SNAP}.conf
331%{__sed} -i '/@@SNAP@@.*/d' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
332%endif
333
334cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
335
336%if %{with imode}
337# add desktop file and icon
338install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
339cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
340cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
341%endif
342
343# sources we don't package
344%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
345# include them in %doc
346%{__rm} -rf configs
347cp -a conf configs
348%{__rm} -f configs/Makefile*
349
350%if %{with python}
351%py_postclean
352%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
353%endif
354
355%find_lang %{name}
356
357%clean
358rm -rf $RPM_BUILD_ROOT
359
360%post
361[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
362if [ "$1" = "1" ]; then
363 # remove ignore = vserver-packages inside vserver on first install
364 {
365 while read f ctx; do
366 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
367 done </proc/self/status
368 } 2>/dev/null
369 if [ -z "$ctx" -o "$ctx" = "0" ]; then
370 VSERVER=no
371 else
372 VSERVER=yes
373 fi
374 if [ "$VSERVER" = "yes" ]; then
375 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
376 fi
377fi
378
379%postun -p /sbin/postshell
380-/usr/sbin/fix-info-dir -c %{_infodir}
381
382%post libs -p /sbin/ldconfig
383%postun libs -p /sbin/ldconfig
384
385%triggerpostun -- poldek < 0.19.0-1.20050613.22.0
386if [ -f /etc/poldek.conf.rpmsave ]; then
387 awk '/^source/ {
388 name = $3;
389 path = $4;
390 auto = "yes";
391 autoup = "yes";
392 type = "pdir";
393 pri = "";
394
395 if (sub(",noauto", "", name)) {
396 auto = "no";
397 }
398
399 # process pri=\d+
400 if (match(name, /,pri=[0-9]+/)) {
401 pri = substr(name, RSTART + 5, RLENGTH - 5);
402 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
403 }
404
405 # skip ac sources. already in new config.
406 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
407 print "";
408 print "[source]";
409 print "name = " name;
410 print "type = " type;
411 print "path = " path;
412 print "auto = " auto;
413 print "autoup = " autoup;
414 if (pri) {
415 print "pri = " pri;
416 }
417 }
418
419 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
420 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
421
422 # copy hold=
423 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
424 if [ "$hold" ]; then
425 %{__sed} -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
426 fi
427fi
428
429%triggerpostun -- poldek < 0.30-0.20080225.00.1
430if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
431 %{__sed} -i -e '/^%%include source.conf/{
432 a
433 a# /etc/poldek/repos.d/*.conf
434 a%%includedir repos.d
435 }' %{_sysconfdir}/%{name}/poldek.conf
436fi
437
438%{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
439%{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
440
441if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
442 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
443 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
444fi
445
446%ifarch %{x8664}
447if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
448 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
449 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
450fi
451%endif
452
453%files -f %{name}.lang
454%defattr(644,root,root,755)
455%doc ChangeLog README* NEWS TODO configs
456%dir %{_sysconfdir}/%{name}
457%dir %{_sysconfdir}/%{name}/repos.d
458%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
459%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
460%attr(755,root,root) %{_bindir}/ipoldek
461%attr(755,root,root) %{_bindir}/poldek
462%attr(755,root,root) %{_bindir}/rpmvercmp
463%dir %{_libdir}/%{name}
464%attr(755,root,root) %{_libdir}/%{name}/*
465%{_mandir}/man1/%{name}*.1*
466%lang(pl) %{_mandir}/pl/man1/%{name}*
467%{_infodir}/poldek.info*
468%if %{with imode}
469%{_desktopdir}/%{name}.desktop
470%{_pixmapsdir}/%{name}.png
471%endif
472%dir /var/cache/%{name}
473
474%if %{without static}
475%files libs
476%defattr(644,root,root,755)
477%attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
478%attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
479%attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
480%attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
481%attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
482%attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
483%attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
484%attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
485%attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
486%attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
487%endif
488
489%files devel
490%defattr(644,root,root,755)
491%if %{without static}
492%attr(755,root,root) %{_libdir}/libpoclidek.so
493%attr(755,root,root) %{_libdir}/libpoldek.so
494%attr(755,root,root) %{_libdir}/libtndb.so
495%attr(755,root,root) %{_libdir}/libtrurl.so
496%attr(755,root,root) %{_libdir}/libvfile.so
497%endif
498%{_libdir}/libpoclidek.la
499%{_libdir}/libpoldek.la
500%{_libdir}/libtndb.la
501%{_libdir}/libtrurl.la
502%{_libdir}/libvfile.la
503%{_includedir}/poldek
504%{_includedir}/tndb
505%{_includedir}/trurl
506%{_includedir}/vfile
507%{_pkgconfigdir}/tndb.pc
508
509%files static
510%defattr(644,root,root,755)
511%{_libdir}/libtndb.a
512%{_libdir}/libtrurl.a
513
514%if %{with python}
515%files -n python-poldek
516%defattr(644,root,root,755)
517%attr(755,root,root) %{py_sitedir}/_poldekmod.so
518%{py_sitescriptdir}/poldek.py[co]
519%{py_sitescriptdir}/poldekmod.py[co]
520%endif
This page took 0.027307 seconds and 4 git commands to generate.