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