]> git.pld-linux.org Git - packages/poldek.git/blame - poldek.spec
- add rest of last commit info
[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
dda7b73c 17%define ver_rpm 4.5-49
7000d724 18
810df317 19%define snap rc5
4e656999 20%define rel 4
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
d5caab1d 26Release: 1.%{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
e46f6b38 30Source0: http://carme.pld-linux.org/~cactus/snaps/poldek/%{name}-%{version}%{snap}.tar.xz
810df317 31# Source0-md5: ab89926c28cfb6b7d72497fc37c16ac4
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
f8e81a61 46Patch3: %{name}-Os-fail-workaround.patch
f4205795 47Patch4: %{name}-git.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}
1d67e563 54BuildRequires: docbook-dtd412-xml
f77a8b4c 55BuildRequires: gettext-devel
b25cb9a7
JB
56BuildRequires: libtool
57BuildRequires: libxml2-devel
fc37ede0 58BuildRequires: neon-devel
cbc6f56b 59BuildRequires: openssl-devel >= 0.9.7d
13fd950e 60BuildRequires: pcre-devel
b3ea4b51 61BuildRequires: pkgconfig
13fd950e 62BuildRequires: popt-devel
58c31de0 63%{?with_python:BuildRequires: python-devel}
b25cb9a7 64BuildRequires: readline-devel >= 5.0
373c6f03 65BuildRequires: rpm-devel >= %{ver_rpm}
300927eb 66%{?with_python:BuildRequires: rpm-pythonprov}
65a99b8b 67BuildRequires: swig-python
96475e5e 68BuildRequires: zlib-devel
373c6f03
JB
69%if %{with static}
70BuildRequires: bzip2-static
530c8c41 71BuildRequires: db-static >= %{ver_db}-%{ver_db_rel}
2fac0b02 72BuildRequires: glibc-static
acb26797 73BuildRequires: libselinux-static
b25cb9a7 74BuildRequires: libxml2-static
373c6f03
JB
75BuildRequires: ncurses-static
76BuildRequires: openssl-static
77BuildRequires: pcre-static
78BuildRequires: popt-static
79BuildRequires: readline-static
80BuildRequires: rpm-static
81BuildRequires: zlib-static
373c6f03 82%endif
b25cb9a7 83Requires(triggerpostun): awk
168acc54 84Requires(triggerpostun): sed >= 4.0
09d4c571 85Requires: %{name}-libs = %{version}-%{release}
530c8c41 86Requires: db >= %{ver_db}-%{ver_db_rel}
373c6f03 87Requires: rpm >= %{ver_rpm}
530c8c41 88Requires: rpm-db-ver = %{ver_db}
78b0cd64 89Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
e202a52a
ER
90# vf* scripts use sed
91Requires: sed
b44549bf 92BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
93
94%description
0fa0dc36 95poldek is an RPM package management tool which allows you to easily
96perform package verification, installation (including system
13fd950e 97installation from scratch), upgrading, and removal.
0fa0dc36 98
13fd950e
JB
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.
8efee472 103
9fe14a3f 104%{?with_static:This version is statically linked.}
d94b28a6 105
9fe14a3f 106%{!?with_imode:This version hasn't got interactive mode.}
7f07e487 107#'vim
1f84648f 108
9c03ea8f
ZU
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
caed9b36
JR
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.
56e1ab51 127
caed9b36 128Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
d82a9cb2 129interaktywnym. Tryb interaktywny posiada interfejs readline z
caed9b36
JR
130dopełnianiem komend i historią, podobny do trybu shell perlowego
131modułu CPAN.
8efee472 132
9fe14a3f 133%{?with_static:Ta wersja jest konsolidowana statycznie.}
a611e0bc 134
9fe14a3f 135%{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
b44549bf 136
b25cb9a7 137%package libs
168acc54 138Summary: poldek libraries
9c03ea8f 139Summary(hu.UTF-8): A poldek könyvtárai
9faf625a 140Summary(pl.UTF-8): Biblioteki poldka
168acc54 141Group: Libraries
b25cb9a7
JB
142
143%description libs
144poldek libraries.
145
9c03ea8f
ZU
146%description libs -l hu.UTF-8
147A poldek könyvtárai.
148
caed9b36 149%description libs -l pl.UTF-8
b25cb9a7
JB
150Biblioteki poldka.
151
152%package devel
168acc54 153Summary: Header files for poldek libraries
9c03ea8f 154Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai
9faf625a 155Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
168acc54 156Group: Development/Libraries
09d4c571 157Requires: %{name}-libs = %{version}-%{release}
b980560b 158Requires: rpm-devel >= %{ver_rpm}
b25cb9a7
JB
159
160%description devel
161Header files for poldek libraries.
162
9c03ea8f
ZU
163%description devel -l hu.UTF-8
164A poldek könyvtár fejlesztői fájljai.
165
caed9b36
JR
166%description devel -l pl.UTF-8
167Pliki nagłówkowe bibliotek poldka.
b25cb9a7
JB
168
169%package static
168acc54 170Summary: poldek static libraries
9c03ea8f 171Summary(hu.UTF-8): poldek statikus könyvtárak
9faf625a 172Summary(pl.UTF-8): Biblioteki statyczne poldka
168acc54 173Group: Development/Libraries
09d4c571 174Requires: %{name}-devel = %{version}-%{release}
b25cb9a7
JB
175
176%description static
177poldek static libraries.
178
9c03ea8f
ZU
179%description static -l hu.UTF-8
180poldek statikus könyvtárak.
181
caed9b36 182%description static -l pl.UTF-8
b25cb9a7
JB
183Biblioteki statyczne poldka.
184
58c31de0
JB
185%package -n python-poldek
186Summary: Python modules for poldek
9c03ea8f 187Summary(hu.UTF-8): Python modulok poldek-hez
9faf625a 188Summary(pl.UTF-8): Moduły języka Python dla poldka
58c31de0
JB
189Group: Libraries/Python
190Requires: %{name}-libs = %{version}-%{release}
191%pyrequires_eq python-libs
192
193%description -n python-poldek
194Python modules for poldek.
195
9c03ea8f
ZU
196%description -n python-poldek -l hu.UTF-8
197Python modulok poldek-hez.
198
caed9b36
JR
199%description -n python-poldek -l pl.UTF-8
200Moduły języka Python dla poldka.
58c31de0 201
03159b71 202%prep
a9c9446a 203%setup -q
85398bac 204%patch0 -p1
13aa6434
AM
205%patch1 -p1
206%patch2 -p1
f8e81a61 207%patch3 -p1
e790f566 208%patch4 -p1
8dcb75fc
ER
209
210rm -f m4/libtool.m4 m4/lt*.m4
b44549bf 211
0579f9b7
ER
212# cleanup backups after patching
213find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
4fa2b79c 214chmod u+x ./configure ./doc/conf-xml2.sh
0579f9b7 215
b44549bf 216%build
bef9d2a3 217%{__libtoolize}
21a83253 218%{__aclocal} -I m4
d878a63c 219%{__autoheader}
21a83253
MM
220%{__autoconf}
221%{__automake}
f8e81a61 222cd tndb
313cd172 223%{__libtoolize}
f8e81a61
BZ
224autoreconf -i
225cd ../trurlib
313cd172 226%{__libtoolize}
f8e81a61
BZ
227autoreconf -i
228cd ..
b25cb9a7 229
97ecf213 230CPPFLAGS="-std=gnu99"
1f84648f 231%configure \
b25cb9a7 232 %{?with_static:--enable-static --disable-shared} \
9fe14a3f 233 %{!?with_imode:--disable-imode} \
58c31de0
JB
234 --enable-nls \
235 %{?with_python:--with-python}
03159b71 236%{__make}
a1f22296 237# --enable-trace
8efee472 238
b44549bf 239%install
240rm -rf $RPM_BUILD_ROOT
27edf30a 241install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}}
8efee472 242
f8e81a61 243%{__make} install \
c8f7d829 244 DESTDIR=$RPM_BUILD_ROOT
de1099c4 245
58c31de0
JB
246%if %{with python}
247%{__make} -C python install \
248 DESTDIR=$RPM_BUILD_ROOT \
249 libdir=%{py_sitedir}
250%endif
251
9fe14a3f 252%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
a49836bb 253
9639596f 254%ifarch i486 i686 ppc sparc alpha athlon
23ead09a 255 %define _ftp_arch %{_target_cpu}
36004ea3 256%endif
9639596f 257%ifarch %{x8664}
23ead09a
ER
258 %define _ftp_arch x86_64
259 %define _ftp_alt_arch i686
36004ea3 260%endif
9639596f 261%ifarch i586
23ead09a
ER
262 %if "%{pld_release}" == "ti"
263 %define _ftp_arch i586
264 %else
265 %define _ftp_arch i486
266 %endif
58820d9b 267%endif
a49836bb 268%ifarch pentium2 pentium3 pentium4
23ead09a 269 %define _ftp_arch i686
36004ea3 270%endif
a49836bb 271%ifarch sparcv9 sparc64
23ead09a
ER
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
652b5bc5 279%endif
32697bd0 280
2ccd5d66 281%if "%{pld_release}" == "ti"
7c0e4fc5 282 %define pld_conf %{SOURCE3}
23ead09a 283 %ifarch %{x8664}
7c0e4fc5 284 %define pld_multilib_conf %{SOURCE4}
23ead09a 285 %endif
2ccd5d66 286%endif
7c0e4fc5 287
23ead09a 288%if "%{pld_release}" == "th"
7c0e4fc5
ER
289 %define pld_conf %{SOURCE1}
290 %define pld_debuginfo_conf %{SOURCE8}
8db66c11 291 %define pld_archive_conf %{SOURCE11}
7c0e4fc5
ER
292
293 %ifarch %{x8664}
294 %define pld_multilib_conf %{SOURCE2}
295 %endif
296
23ead09a
ER
297 # aidath
298 %ifarch sparcv9 sparc64
7c0e4fc5 299 %define pld_conf %{SOURCE9}
8db66c11 300 %undefine pld_archive_conf
7c0e4fc5
ER
301 %endif
302 %ifarch sparc64
303 %define pld_multilib_conf %{SOURCE10}
304 %endif
305%endif
23ead09a 306
7c0e4fc5 307sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
23ead09a 308
7c0e4fc5
ER
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
652b5bc5 315%endif
b25cb9a7 316
8db66c11
ER
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
27edf30a 321cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
b25cb9a7 322
9e6ff4ef 323%if %{with imode}
324# add desktop file and icon
325install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
27edf30a
ER
326cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
327cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
9e6ff4ef 328%endif
329
b43abde7
ER
330# sources we don't package
331rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
b25cb9a7
JB
332# include them in %doc
333rm -rf configs
334cp -a conf configs
335rm -f configs/Makefile*
336
62e80071 337%if %{with python}
58c31de0
JB
338%py_postclean
339rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
62e80071 340%endif
58c31de0 341
b25cb9a7 342%find_lang %{name}
f373d903 343
b44549bf 344%clean
345rm -rf $RPM_BUILD_ROOT
346
daf0e7ce
ER
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
b25cb9a7 365
3896c8b1
ER
366%postun -p /sbin/postshell
367-/usr/sbin/fix-info-dir -c %{_infodir}
b25cb9a7
JB
368
369%post libs -p /sbin/ldconfig
370%postun libs -p /sbin/ldconfig
371
b25cb9a7
JB
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";
f154dd55 380 pri = "";
b25cb9a7
JB
381
382 if (sub(",noauto", "", name)) {
383 auto = "no";
384 }
385
f154dd55
ER
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
b25cb9a7
JB
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;
f154dd55
ER
401 if (pri) {
402 print "pri = " pri;
403 }
b25cb9a7
JB
404 }
405
406 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
19cae196 407 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
b25cb9a7
JB
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
b43abde7
ER
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}
478b6a69 430 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
b43abde7
ER
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}
478b6a69 436 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
b43abde7
ER
437fi
438%endif
439
767366b0 440%files -f %{name}.lang
b44549bf 441%defattr(644,root,root,755)
a9c9446a 442%doc ChangeLog README* NEWS TODO configs
b25cb9a7 443%dir %{_sysconfdir}/%{name}
08335479 444%dir %{_sysconfdir}/%{name}/repos.d
168acc54 445%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
b43abde7 446%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
8efee472 447%attr(755,root,root) %{_bindir}/*
b25cb9a7
JB
448%dir %{_libdir}/%{name}
449%attr(755,root,root) %{_libdir}/%{name}/*
b44549bf 450%{_mandir}/man1/%{name}*
d8826405 451%lang(pl) %{_mandir}/pl/man1/%{name}*
b25cb9a7 452%{_infodir}/poldek.info*
9e6ff4ef 453%if %{with imode}
454%{_desktopdir}/%{name}.desktop
455%{_pixmapsdir}/%{name}.png
456%endif
27edf30a 457%dir /var/cache/%{name}
b25cb9a7 458
b43abde7 459%if %{without static}
b25cb9a7
JB
460%files libs
461%defattr(644,root,root,755)
d8aeff9a
MB
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
b25cb9a7
JB
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
58c31de0
JB
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.187548 seconds and 4 git commands to generate.