]> git.pld-linux.org Git - packages/poldek.git/blame - poldek.spec
- if there is unknown key in pkguinf, don't call n_assert(0). This fix allows
[packages/poldek.git] / poldek.spec
CommitLineData
7638abfc 1#
de1099c4 2# Conditional build:
9fe14a3f 3%bcond_with static # don't use shared libraries
4%bcond_without imode # don't build interactive mode
58c31de0 5%bcond_without python # don't build python bindings
7638abfc 6#
373c6f03 7# required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
5486bf2e
ER
8%define ver_db 4.3.27-1
9%define ver_rpm 4.4.9-1
10#
24ad8b8d 11%define snap 20080225.00
ed85dd45 12%define rel 4
b44549bf 13Summary: RPM packages management helper tool
9faf625a 14Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM
b44549bf 15Name: poldek
24ad8b8d 16Version: 0.30
78b0cd64 17Release: 0.%{snap}.%{rel}
9f931ada 18License: GPL v2
8efee472 19Group: Applications/System
7b350490 20Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
24ad8b8d 21# Source0-md5: 22b2cfb19cebd123e8d8148fb6ca27de
911a8560 22Source1: %{name}.conf
b25cb9a7
JB
23Source2: %{name}-multilib.conf
24Source3: %{name}-aliases.conf
9e6ff4ef 25Source4: %{name}.desktop
26Source5: %{name}.png
13aa6434
AM
27Patch1: %{name}-vserver-packages.patch
28Patch2: %{name}-config.patch
69c6b68a 29Patch3: %{name}-nonoorder.patch
533cf0f6 30Patch4: %{name}-bug117hack.patch
d8aeff9a 31Patch5: %{name}-missing-symbol.patch
03777721 32Patch6: %{name}-abort-on-upgrade.patch
ed85dd45 33Patch7: %{name}-uninstall-greedy-fix.patch
39ca2371 34URL: http://poldek.pld-linux.org/
a4268952 35BuildRequires: autoconf
b25cb9a7 36BuildRequires: automake
373c6f03 37BuildRequires: bzip2-devel
b25cb9a7 38BuildRequires: check
b1928c7a 39BuildRequires: db-devel >= %{ver_db}
c0d8905a 40BuildRequires: gettext-autopoint
b25cb9a7
JB
41BuildRequires: libtool
42BuildRequires: libxml2-devel
cbc6f56b 43BuildRequires: openssl-devel >= 0.9.7d
13fd950e 44BuildRequires: pcre-devel
f373d903 45BuildRequires: perl-tools-pod
b3ea4b51 46BuildRequires: pkgconfig
13fd950e 47BuildRequires: popt-devel
58c31de0 48%{?with_python:BuildRequires: python-devel}
b25cb9a7 49BuildRequires: readline-devel >= 5.0
373c6f03 50BuildRequires: rpm-devel >= %{ver_rpm}
300927eb 51%{?with_python:BuildRequires: rpm-pythonprov}
282cfaec 52BuildRequires: xmlto
96475e5e 53BuildRequires: zlib-devel
373c6f03
JB
54%if %{with static}
55BuildRequires: bzip2-static
b1928c7a 56BuildRequires: db-static >= %{ver_db}
2fac0b02 57BuildRequires: glibc-static
acb26797 58BuildRequires: libselinux-static
b25cb9a7 59BuildRequires: libxml2-static
373c6f03
JB
60BuildRequires: ncurses-static
61BuildRequires: openssl-static
62BuildRequires: pcre-static
63BuildRequires: popt-static
64BuildRequires: readline-static
65BuildRequires: rpm-static
66BuildRequires: zlib-static
373c6f03 67%endif
b25cb9a7 68Requires(triggerpostun): awk
168acc54 69Requires(triggerpostun): sed >= 4.0
09d4c571 70Requires: %{name}-libs = %{version}-%{release}
b1928c7a 71Requires: db >= %{ver_db}
373c6f03 72Requires: rpm >= %{ver_rpm}
78b0cd64 73Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
e202a52a
ER
74# vf* scripts use sed
75Requires: sed
b44549bf 76BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
77
78%description
0fa0dc36 79poldek is an RPM package management tool which allows you to easily
80perform package verification, installation (including system
13fd950e 81installation from scratch), upgrading, and removal.
0fa0dc36 82
13fd950e
JB
83Program can be used in batch (like apt-get from Debian's APT) or
84interactive mode. The interactive mode puts you into a readline
85interface with command line autocompletion and history, similar to the
86shell mode of Perl's CPAN.
8efee472 87
9fe14a3f 88%{?with_static:This version is statically linked.}
d94b28a6 89
9fe14a3f 90%{!?with_imode:This version hasn't got interactive mode.}
7f07e487 91#'vim
1f84648f 92
caed9b36
JR
93%description -l pl.UTF-8
94poldek jest narzędziem linii poleceń służącym do weryfikacji,
95instalacji (włączając instalację systemu od zera), aktualizacji i
96usuwania pakietów.
56e1ab51 97
caed9b36 98Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
d82a9cb2 99interaktywnym. Tryb interaktywny posiada interfejs readline z
caed9b36
JR
100dopełnianiem komend i historią, podobny do trybu shell perlowego
101modułu CPAN.
8efee472 102
9fe14a3f 103%{?with_static:Ta wersja jest konsolidowana statycznie.}
a611e0bc 104
9fe14a3f 105%{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
b44549bf 106
b25cb9a7 107%package libs
168acc54 108Summary: poldek libraries
9faf625a 109Summary(pl.UTF-8): Biblioteki poldka
168acc54 110Group: Libraries
b25cb9a7
JB
111
112%description libs
113poldek libraries.
114
caed9b36 115%description libs -l pl.UTF-8
b25cb9a7
JB
116Biblioteki poldka.
117
118%package devel
168acc54 119Summary: Header files for poldek libraries
9faf625a 120Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka
168acc54 121Group: Development/Libraries
09d4c571 122Requires: %{name}-libs = %{version}-%{release}
b25cb9a7
JB
123
124%description devel
125Header files for poldek libraries.
126
caed9b36
JR
127%description devel -l pl.UTF-8
128Pliki nagłówkowe bibliotek poldka.
b25cb9a7
JB
129
130%package static
168acc54 131Summary: poldek static libraries
9faf625a 132Summary(pl.UTF-8): Biblioteki statyczne poldka
168acc54 133Group: Development/Libraries
09d4c571 134Requires: %{name}-devel = %{version}-%{release}
b25cb9a7
JB
135
136%description static
137poldek static libraries.
138
caed9b36 139%description static -l pl.UTF-8
b25cb9a7
JB
140Biblioteki statyczne poldka.
141
58c31de0
JB
142%package -n python-poldek
143Summary: Python modules for poldek
9faf625a 144Summary(pl.UTF-8): Moduły języka Python dla poldka
58c31de0
JB
145Group: Libraries/Python
146Requires: %{name}-libs = %{version}-%{release}
147%pyrequires_eq python-libs
148
149%description -n python-poldek
150Python modules for poldek.
151
caed9b36
JR
152%description -n python-poldek -l pl.UTF-8
153Moduły języka Python dla poldka.
58c31de0 154
03159b71 155%prep
78b0cd64 156%setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
13aa6434
AM
157%patch1 -p1
158%patch2 -p1
69c6b68a 159%patch3 -p1
533cf0f6 160%patch4 -p0
d8aeff9a 161%patch5 -p1
03777721 162%patch6 -p1
ed85dd45 163%patch7 -p0
b44549bf 164
0579f9b7
ER
165# cleanup backups after patching
166find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
167
b44549bf 168%build
df3bea74 169%{__autopoint}
21a83253
MM
170%{__aclocal} -I m4
171%{__autoconf}
172%{__automake}
63bd61a7 173cp -f config.sub trurlib
b25cb9a7 174
97ecf213 175CPPFLAGS="-std=gnu99"
1f84648f 176%configure \
b25cb9a7 177 %{?with_static:--enable-static --disable-shared} \
9fe14a3f 178 %{!?with_imode:--disable-imode} \
58c31de0
JB
179 --enable-nls \
180 %{?with_python:--with-python}
03159b71 181%{__make}
8efee472 182
b44549bf 183%install
184rm -rf $RPM_BUILD_ROOT
08335479 185install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
8efee472 186
c8f7d829 187%{__make} install \
188 DESTDIR=$RPM_BUILD_ROOT
de1099c4 189
58c31de0
JB
190%if %{with python}
191%{__make} -C python install \
192 DESTDIR=$RPM_BUILD_ROOT \
193 libdir=%{py_sitedir}
194%endif
195
9fe14a3f 196%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
a49836bb 197
9639596f 198%ifarch i486 i686 ppc sparc alpha athlon
a49836bb 199%define _ftp_arch %{_target_cpu}
36004ea3 200%endif
9639596f 201%ifarch %{x8664}
590302c4 202%define _ftp_arch x86_64
b25cb9a7 203%define _ftp_alt_arch i686
36004ea3 204%endif
9639596f
PS
205%ifarch i586
206%define _ftp_arch i486
36004ea3 207%endif
a49836bb 208%ifarch pentium2 pentium3 pentium4
209%define _ftp_arch i686
36004ea3 210%endif
a49836bb 211%ifarch sparcv9 sparc64
212%define _ftp_arch sparc
213%endif
a49836bb 214
b25cb9a7 215%{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
32697bd0 216
7adf66ff
ER
217sed -e '
218 s|%%ARCH%%|%{_ftp_arch}|g
b43abde7 219' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
b44549bf 220
590302c4 221%ifarch %{x8664}
7adf66ff
ER
222sed '
223 s|%%ARCH%%|%{_ftp_alt_arch}|g
b43abde7 224' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
b25cb9a7
JB
225%endif
226
227install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/aliases.conf
228
9e6ff4ef 229%if %{with imode}
230# add desktop file and icon
231install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
232install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
233install %{SOURCE5} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
234%endif
235
b43abde7
ER
236# sources we don't package
237rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
b25cb9a7
JB
238# include them in %doc
239rm -rf configs
240cp -a conf configs
241rm -f configs/Makefile*
242
62e80071 243%if %{with python}
58c31de0
JB
244%py_postclean
245rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
62e80071 246%endif
58c31de0 247
b25cb9a7 248%find_lang %{name}
f373d903 249
b44549bf 250%clean
251rm -rf $RPM_BUILD_ROOT
252
3896c8b1
ER
253%post -p /sbin/postshell
254-/usr/sbin/fix-info-dir -c %{_infodir}
b25cb9a7 255
3896c8b1
ER
256%postun -p /sbin/postshell
257-/usr/sbin/fix-info-dir -c %{_infodir}
b25cb9a7
JB
258
259%post libs -p /sbin/ldconfig
260%postun libs -p /sbin/ldconfig
261
b25cb9a7
JB
262%triggerpostun -- poldek < 0.19.0-1.20050613.22.0
263if [ -f /etc/poldek.conf.rpmsave ]; then
264 awk '/^source/ {
265 name = $3;
266 path = $4;
267 auto = "yes";
268 autoup = "yes";
269 type = "pdir";
f154dd55 270 pri = "";
b25cb9a7
JB
271
272 if (sub(",noauto", "", name)) {
273 auto = "no";
274 }
275
f154dd55
ER
276 # process pri=\d+
277 if (match(name, /,pri=[0-9]+/)) {
278 pri = substr(name, RSTART + 5, RLENGTH - 5);
279 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
280 }
281
b25cb9a7
JB
282 # skip ac sources. already in new config.
283 if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
284 print "";
285 print "[source]";
286 print "name = " name;
287 print "type = " type;
288 print "path = " path;
289 print "auto = " auto;
290 print "autoup = " autoup;
f154dd55
ER
291 if (pri) {
292 print "pri = " pri;
293 }
b25cb9a7
JB
294 }
295
296 }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
19cae196 297 echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
b25cb9a7
JB
298
299 # copy hold=
300 hold=$(grep ^hold /etc/poldek.conf.rpmsave)
301 if [ "$hold" ]; then
302 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
303 fi
304fi
305
b43abde7
ER
306%triggerpostun -- poldek < 0.30-0.20080225.00.1
307if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
308 %{__sed} -i -e '/^%%include source.conf/{
309 a
310 a# /etc/poldek/repos.d/*.conf
311 a%%includedir repos.d
312 }' %{_sysconfdir}/%{name}/poldek.conf
313fi
314
315%{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
316%{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
317
318if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
319 cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
320 mv -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
321fi
322
323%ifarch %{x8664}
324if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
325 cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
326 mv -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
327fi
328%endif
329
767366b0 330%files -f %{name}.lang
b44549bf 331%defattr(644,root,root,755)
b43abde7 332%doc README* NEWS TODO configs
b25cb9a7 333%dir %{_sysconfdir}/%{name}
08335479 334%dir %{_sysconfdir}/%{name}/repos.d
168acc54 335%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
b43abde7 336%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
8efee472 337%attr(755,root,root) %{_bindir}/*
b25cb9a7
JB
338%dir %{_libdir}/%{name}
339%attr(755,root,root) %{_libdir}/%{name}/*
b44549bf 340%{_mandir}/man1/%{name}*
d8826405 341%lang(pl) %{_mandir}/pl/man1/%{name}*
b25cb9a7 342%{_infodir}/poldek.info*
9e6ff4ef 343%if %{with imode}
344%{_desktopdir}/%{name}.desktop
345%{_pixmapsdir}/%{name}.png
346%endif
b25cb9a7 347
b43abde7 348%if %{without static}
b25cb9a7
JB
349%files libs
350%defattr(644,root,root,755)
d8aeff9a
MB
351%attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
352%attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
353%attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
354%attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
355%attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
356%attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
357%attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
358%attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
359%attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
360%attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
b25cb9a7
JB
361%endif
362
363%files devel
364%defattr(644,root,root,755)
365%{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
366%{_libdir}/lib*.la
367%{_includedir}/*
368
369%files static
370%defattr(644,root,root,755)
371%{_libdir}/lib*.a
58c31de0
JB
372
373%if %{with python}
374%files -n python-poldek
375%defattr(644,root,root,755)
376%attr(755,root,root) %{py_sitedir}/_poldekmod.so
377%{py_sitescriptdir}/poldek.py[co]
378%{py_sitescriptdir}/poldekmod.py[co]
379%endif
This page took 0.124554 seconds and 4 git commands to generate.