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