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