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