]> git.pld-linux.org Git - packages/poldek.git/blame - poldek.spec
- up to rc4
[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
e46f6b38
BZ
19%define snap rc4
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
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
BZ
30Source0: http://carme.pld-linux.org/~cactus/snaps/poldek/%{name}-%{version}%{snap}.tar.xz
31# Source0-md5: 1903db3137c297f42405ba2ac3fa17db
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 220cd tndb
313cd172 221%{__libtoolize}
f8e81a61
BZ
222autoreconf -i
223cd ../trurlib
313cd172 224%{__libtoolize}
f8e81a61
BZ
225autoreconf -i
226cd ..
b25cb9a7 227
97ecf213 228CPPFLAGS="-std=gnu99"
1f84648f 229%configure \
b25cb9a7 230 %{?with_static:--enable-static --disable-shared} \
9fe14a3f 231 %{!?with_imode:--disable-imode} \
58c31de0
JB
232 --enable-nls \
233 %{?with_python:--with-python}
03159b71 234%{__make}
a1f22296 235# --enable-trace
8efee472 236
b44549bf 237%install
238rm -rf $RPM_BUILD_ROOT
27edf30a 239install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}}
8efee472 240
f8e81a61 241%{__make} install \
c8f7d829 242 DESTDIR=$RPM_BUILD_ROOT
de1099c4 243
58c31de0
JB
244%if %{with python}
245%{__make} -C python install \
246 DESTDIR=$RPM_BUILD_ROOT \
247 libdir=%{py_sitedir}
248%endif
249
9fe14a3f 250%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
a49836bb 251
9639596f 252%ifarch i486 i686 ppc sparc alpha athlon
23ead09a 253 %define _ftp_arch %{_target_cpu}
36004ea3 254%endif
9639596f 255%ifarch %{x8664}
23ead09a
ER
256 %define _ftp_arch x86_64
257 %define _ftp_alt_arch i686
36004ea3 258%endif
9639596f 259%ifarch i586
23ead09a
ER
260 %if "%{pld_release}" == "ti"
261 %define _ftp_arch i586
262 %else
263 %define _ftp_arch i486
264 %endif
58820d9b 265%endif
a49836bb 266%ifarch pentium2 pentium3 pentium4
23ead09a 267 %define _ftp_arch i686
36004ea3 268%endif
a49836bb 269%ifarch sparcv9 sparc64
23ead09a
ER
270 %define _ftp_arch sparc
271 %if "%{pld_release}" == "th"
272 %define _ftp_arch %{_target_cpu}
273 %ifarch sparc64
274 %define _ftp_alt_arch sparcv9
275 %endif
276 %endif
652b5bc5 277%endif
32697bd0 278
2ccd5d66 279%if "%{pld_release}" == "ti"
7c0e4fc5 280 %define pld_conf %{SOURCE3}
23ead09a 281 %ifarch %{x8664}
7c0e4fc5 282 %define pld_multilib_conf %{SOURCE4}
23ead09a 283 %endif
2ccd5d66 284%endif
7c0e4fc5 285
23ead09a 286%if "%{pld_release}" == "th"
7c0e4fc5
ER
287 %define pld_conf %{SOURCE1}
288 %define pld_debuginfo_conf %{SOURCE8}
8db66c11 289 %define pld_archive_conf %{SOURCE11}
7c0e4fc5
ER
290
291 %ifarch %{x8664}
292 %define pld_multilib_conf %{SOURCE2}
293 %endif
294
23ead09a
ER
295 # aidath
296 %ifarch sparcv9 sparc64
7c0e4fc5 297 %define pld_conf %{SOURCE9}
8db66c11 298 %undefine pld_archive_conf
7c0e4fc5
ER
299 %endif
300 %ifarch sparc64
301 %define pld_multilib_conf %{SOURCE10}
302 %endif
303%endif
23ead09a 304
7c0e4fc5 305sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
23ead09a 306
7c0e4fc5
ER
307%if 0%{?pld_multilib_conf:1}
308 sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
309%endif
310
311%if 0%{?pld_debuginfo_conf:1}
312sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
652b5bc5 313%endif
b25cb9a7 314
8db66c11
ER
315%if 0%{?pld_archive_conf:1}
316sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf
317%endif
318
27edf30a 319cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
b25cb9a7 320
9e6ff4ef 321%if %{with imode}
322# add desktop file and icon
323install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
27edf30a
ER
324cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
325cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
9e6ff4ef 326%endif
327
b43abde7
ER
328# sources we don't package
329rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
b25cb9a7
JB
330# include them in %doc
331rm -rf configs
332cp -a conf configs
333rm -f configs/Makefile*
334
62e80071 335%if %{with python}
58c31de0
JB
336%py_postclean
337rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
62e80071 338%endif
58c31de0 339
b25cb9a7 340%find_lang %{name}
f373d903 341
b44549bf 342%clean
343rm -rf $RPM_BUILD_ROOT
344
daf0e7ce
ER
345%post
346[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
347if [ "$1" = "1" ]; then
348 # remove ignore = vserver-packages inside vserver on first install
349 {
350 while read f ctx; do
351 [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
352 done </proc/self/status
353 } 2>/dev/null
354 if [ -z "$ctx" -o "$ctx" = "0" ]; then
355 VSERVER=no
356 else
357 VSERVER=yes
358 fi
359 if [ "$VSERVER" = "yes" ]; then
360 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
361 fi
362fi
b25cb9a7 363
3896c8b1
ER
364%postun -p /sbin/postshell
365-/usr/sbin/fix-info-dir -c %{_infodir}
b25cb9a7
JB
366
367%post libs -p /sbin/ldconfig
368%postun libs -p /sbin/ldconfig
369
b25cb9a7
JB
370%triggerpostun -- poldek < 0.19.0-1.20050613.22.0
371if [ -f /etc/poldek.conf.rpmsave ]; then
372 awk '/^source/ {
373 name = $3;
374 path = $4;
375 auto = "yes";
376 autoup = "yes";
377 type = "pdir";
f154dd55 378 pri = "";
b25cb9a7
JB
379
380 if (sub(",noauto", "", name)) {
381 auto = "no";
382 }
383
f154dd55
ER
384 # process pri=\d+
385 if (match(name, /,pri=[0-9]+/)) {
386 pri = substr(name, RSTART + 5, RLENGTH - 5);
387 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
388 }
389
b25cb9a7
JB
390 # skip ac sources. already in new config.
391 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
392 print "";
393 print "[source]";
394 print "name = " name;
395 print "type = " type;
396 print "path = " path;
397 print "auto = " auto;
398 print "autoup = " autoup;
f154dd55
ER
399 if (pri) {
400 print "pri = " pri;
401 }
b25cb9a7
JB
402 }
403
404 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
19cae196 405 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
b25cb9a7
JB
406
407 # copy hold=
408 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
409 if [ "$hold" ]; then
410 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
411 fi
412fi
413
b43abde7
ER
414%triggerpostun -- poldek < 0.30-0.20080225.00.1
415if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
416 %{__sed} -i -e '/^%%include source.conf/{
417 a
418 a# /etc/poldek/repos.d/*.conf
419 a%%includedir repos.d
420 }' %{_sysconfdir}/%{name}/poldek.conf
421fi
422
423%{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
424%{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
425
426if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
427 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
478b6a69 428 cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
b43abde7
ER
429fi
430
431%ifarch %{x8664}
432if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
433 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
478b6a69 434 cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
b43abde7
ER
435fi
436%endif
437
767366b0 438%files -f %{name}.lang
b44549bf 439%defattr(644,root,root,755)
a9c9446a 440%doc ChangeLog README* NEWS TODO configs
b25cb9a7 441%dir %{_sysconfdir}/%{name}
08335479 442%dir %{_sysconfdir}/%{name}/repos.d
168acc54 443%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
b43abde7 444%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
8efee472 445%attr(755,root,root) %{_bindir}/*
b25cb9a7
JB
446%dir %{_libdir}/%{name}
447%attr(755,root,root) %{_libdir}/%{name}/*
b44549bf 448%{_mandir}/man1/%{name}*
d8826405 449%lang(pl) %{_mandir}/pl/man1/%{name}*
b25cb9a7 450%{_infodir}/poldek.info*
9e6ff4ef 451%if %{with imode}
452%{_desktopdir}/%{name}.desktop
453%{_pixmapsdir}/%{name}.png
454%endif
27edf30a 455%dir /var/cache/%{name}
b25cb9a7 456
b43abde7 457%if %{without static}
b25cb9a7
JB
458%files libs
459%defattr(644,root,root,755)
d8aeff9a
MB
460%attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
461%attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
462%attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
463%attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
464%attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
465%attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
466%attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
467%attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
468%attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
469%attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
b25cb9a7
JB
470%endif
471
472%files devel
473%defattr(644,root,root,755)
474%{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
475%{_libdir}/lib*.la
476%{_includedir}/*
477
478%files static
479%defattr(644,root,root,755)
480%{_libdir}/lib*.a
58c31de0
JB
481
482%if %{with python}
483%files -n python-poldek
484%defattr(644,root,root,755)
485%attr(755,root,root) %{py_sitedir}/_poldekmod.so
486%{py_sitescriptdir}/poldek.py[co]
487%{py_sitescriptdir}/poldekmod.py[co]
488%endif
This page took 0.123275 seconds and 4 git commands to generate.