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