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