]>
Commit | Line | Data |
---|---|---|
1 | # TODO: | |
2 | # - fails to build without poldek-devel - fix it ! | |
3 | # | |
4 | # Conditional build: | |
5 | %bcond_with static # don't use shared libraries | |
6 | %bcond_without imode # don't build interactive mode | |
7 | %bcond_without python # don't build python bindings | |
8 | ||
9 | # required versions (forced to avoid SEGV with mixed db used by rpm and poldek) | |
10 | %if "%{pld_release}" == "ti" | |
11 | %define ver_db 4.5.20 | |
12 | %define ver_db_rel 8 | |
13 | %else | |
14 | %define ver_db 4.7.25 | |
15 | %define ver_db_rel 1 | |
16 | %endif | |
17 | %define ver_rpm 4.5-49 | |
18 | ||
19 | %define snap rc5 | |
20 | %define rel 4 | |
21 | Summary: RPM packages management helper tool | |
22 | Summary(hu.UTF-8): RPM csomagkezelést segítő eszköz | |
23 | Summary(pl.UTF-8): Pomocnicze narzędzie do zarządzania pakietami RPM | |
24 | Name: poldek | |
25 | Version: 0.30 | |
26 | Release: 1.%{snap}.%{rel} | |
27 | License: GPL v2 | |
28 | Group: Applications/System | |
29 | #Source0: http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2 | |
30 | Source0: http://carme.pld-linux.org/~cactus/snaps/poldek/%{name}-%{version}%{snap}.tar.xz | |
31 | # Source0-md5: ab89926c28cfb6b7d72497fc37c16ac4 | |
32 | Source1: %{name}.conf | |
33 | Source2: %{name}-multilib.conf | |
34 | Source3: %{name}-ti.conf | |
35 | Source4: %{name}-multilib-ti.conf | |
36 | Source5: %{name}-aliases.conf | |
37 | Source6: %{name}.desktop | |
38 | Source7: %{name}.png | |
39 | Source8: %{name}-debuginfo.conf | |
40 | Source9: %{name}-aidath.conf | |
41 | Source10: %{name}-multilib-aidath.conf | |
42 | Source11: %{name}-archive.conf | |
43 | Patch0: %{name}-vserver-packages.patch | |
44 | Patch1: %{name}-config.patch | |
45 | Patch2: %{name}-size-type.patch | |
46 | Patch3: %{name}-Os-fail-workaround.patch | |
47 | Patch4: %{name}-git.patch | |
48 | URL: http://poldek.pld-linux.org/ | |
49 | BuildRequires: autoconf | |
50 | BuildRequires: automake | |
51 | BuildRequires: bzip2-devel | |
52 | BuildRequires: check-devel | |
53 | BuildRequires: db-devel >= %{ver_db}-%{ver_db_rel} | |
54 | BuildRequires: docbook-dtd412-xml | |
55 | BuildRequires: gettext-devel | |
56 | BuildRequires: libtool | |
57 | BuildRequires: libxml2-devel | |
58 | BuildRequires: neon-devel | |
59 | BuildRequires: openssl-devel >= 0.9.7d | |
60 | BuildRequires: pcre-devel | |
61 | BuildRequires: pkgconfig | |
62 | BuildRequires: popt-devel | |
63 | %{?with_python:BuildRequires: python-devel} | |
64 | BuildRequires: readline-devel >= 5.0 | |
65 | BuildRequires: rpm-devel >= %{ver_rpm} | |
66 | %{?with_python:BuildRequires: rpm-pythonprov} | |
67 | BuildRequires: swig-python | |
68 | BuildRequires: zlib-devel | |
69 | %if %{with static} | |
70 | BuildRequires: bzip2-static | |
71 | BuildRequires: db-static >= %{ver_db}-%{ver_db_rel} | |
72 | BuildRequires: glibc-static | |
73 | BuildRequires: libselinux-static | |
74 | BuildRequires: libxml2-static | |
75 | BuildRequires: ncurses-static | |
76 | BuildRequires: openssl-static | |
77 | BuildRequires: pcre-static | |
78 | BuildRequires: popt-static | |
79 | BuildRequires: readline-static | |
80 | BuildRequires: rpm-static | |
81 | BuildRequires: zlib-static | |
82 | %endif | |
83 | Requires(triggerpostun): awk | |
84 | Requires(triggerpostun): sed >= 4.0 | |
85 | Requires: %{name}-libs = %{version}-%{release} | |
86 | Requires: db >= %{ver_db}-%{ver_db_rel} | |
87 | Requires: rpm >= %{ver_rpm} | |
88 | Requires: rpm-db-ver = %{ver_db} | |
89 | Requires: rpm-lib = %(rpm -q --qf '%{V}' rpm-lib) | |
90 | # vf* scripts use sed | |
91 | Requires: sed | |
92 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
93 | ||
94 | %description | |
95 | poldek is an RPM package management tool which allows you to easily | |
96 | perform package verification, installation (including system | |
97 | installation from scratch), upgrading, and removal. | |
98 | ||
99 | Program can be used in batch (like apt-get from Debian's APT) or | |
100 | interactive mode. The interactive mode puts you into a readline | |
101 | interface with command line autocompletion and history, similar to the | |
102 | shell mode of Perl's CPAN. | |
103 | ||
104 | %{?with_static:This version is statically linked.} | |
105 | ||
106 | %{!?with_imode:This version hasn't got interactive mode.} | |
107 | #'vim | |
108 | ||
109 | %description -l hu.UTF-8 | |
110 | poldek egy RPM csomagkezelő eszköz, amely megkönnyíti a | |
111 | csomagellenőrzést, telepítést (beleértve a rendszertelepítést a | |
112 | nulláról), frissítést és eltávolítást. | |
113 | ||
114 | A program használható parancssorból (mint a Debian apt-get programja) | |
115 | vagy interaktív módban. Az interaktív mód egy readline környezetet | |
116 | jelent, parancskiegészítéssel és előzményekkel, hasonlóan a Perl CPAN | |
117 | shell módjához. | |
118 | ||
119 | %{?with_static:Ez a verzió statikusan linkelt.} | |
120 | ||
121 | %{!?with_imode:Ennek a verziónak nincs interaktív módja.} | |
122 | ||
123 | %description -l pl.UTF-8 | |
124 | poldek jest narzędziem linii poleceń służącym do weryfikacji, | |
125 | instalacji (włączając instalację systemu od zera), aktualizacji i | |
126 | usuwania pakietów. | |
127 | ||
128 | Program może być używany w trybie wsadowym (jak debianowy apt-get) lub | |
129 | interaktywnym. Tryb interaktywny posiada interfejs readline z | |
130 | dopełnianiem komend i historią, podobny do trybu shell perlowego | |
131 | modułu CPAN. | |
132 | ||
133 | %{?with_static:Ta wersja jest konsolidowana statycznie.} | |
134 | ||
135 | %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.} | |
136 | ||
137 | %package libs | |
138 | Summary: poldek libraries | |
139 | Summary(hu.UTF-8): A poldek könyvtárai | |
140 | Summary(pl.UTF-8): Biblioteki poldka | |
141 | Group: Libraries | |
142 | ||
143 | %description libs | |
144 | poldek libraries. | |
145 | ||
146 | %description libs -l hu.UTF-8 | |
147 | A poldek könyvtárai. | |
148 | ||
149 | %description libs -l pl.UTF-8 | |
150 | Biblioteki poldka. | |
151 | ||
152 | %package devel | |
153 | Summary: Header files for poldek libraries | |
154 | Summary(hu.UTF-8): A poldek könyvtár fejlesztői fájljai | |
155 | Summary(pl.UTF-8): Pliki nagłówkowe bibliotek poldka | |
156 | Group: Development/Libraries | |
157 | Requires: %{name}-libs = %{version}-%{release} | |
158 | Requires: rpm-devel >= %{ver_rpm} | |
159 | ||
160 | %description devel | |
161 | Header files for poldek libraries. | |
162 | ||
163 | %description devel -l hu.UTF-8 | |
164 | A poldek könyvtár fejlesztői fájljai. | |
165 | ||
166 | %description devel -l pl.UTF-8 | |
167 | Pliki nagłówkowe bibliotek poldka. | |
168 | ||
169 | %package static | |
170 | Summary: poldek static libraries | |
171 | Summary(hu.UTF-8): poldek statikus könyvtárak | |
172 | Summary(pl.UTF-8): Biblioteki statyczne poldka | |
173 | Group: Development/Libraries | |
174 | Requires: %{name}-devel = %{version}-%{release} | |
175 | ||
176 | %description static | |
177 | poldek static libraries. | |
178 | ||
179 | %description static -l hu.UTF-8 | |
180 | poldek statikus könyvtárak. | |
181 | ||
182 | %description static -l pl.UTF-8 | |
183 | Biblioteki statyczne poldka. | |
184 | ||
185 | %package -n python-poldek | |
186 | Summary: Python modules for poldek | |
187 | Summary(hu.UTF-8): Python modulok poldek-hez | |
188 | Summary(pl.UTF-8): Moduły języka Python dla poldka | |
189 | Group: Libraries/Python | |
190 | Requires: %{name}-libs = %{version}-%{release} | |
191 | %pyrequires_eq python-libs | |
192 | ||
193 | %description -n python-poldek | |
194 | Python modules for poldek. | |
195 | ||
196 | %description -n python-poldek -l hu.UTF-8 | |
197 | Python modulok poldek-hez. | |
198 | ||
199 | %description -n python-poldek -l pl.UTF-8 | |
200 | Moduły języka Python dla poldka. | |
201 | ||
202 | %prep | |
203 | %setup -q | |
204 | %patch0 -p1 | |
205 | %patch1 -p1 | |
206 | %patch2 -p1 | |
207 | %patch3 -p1 | |
208 | %patch4 -p1 | |
209 | ||
210 | rm -f m4/libtool.m4 m4/lt*.m4 | |
211 | ||
212 | # cleanup backups after patching | |
213 | find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f | |
214 | chmod u+x ./configure ./doc/conf-xml2.sh | |
215 | ||
216 | %build | |
217 | %{__libtoolize} | |
218 | %{__aclocal} -I m4 | |
219 | %{__autoheader} | |
220 | %{__autoconf} | |
221 | %{__automake} | |
222 | cd tndb | |
223 | %{__libtoolize} | |
224 | autoreconf -i | |
225 | cd ../trurlib | |
226 | %{__libtoolize} | |
227 | autoreconf -i | |
228 | cd .. | |
229 | ||
230 | CPPFLAGS="-std=gnu99" | |
231 | %configure \ | |
232 | %{?with_static:--enable-static --disable-shared} \ | |
233 | %{!?with_imode:--disable-imode} \ | |
234 | --enable-nls \ | |
235 | %{?with_python:--with-python} | |
236 | %{__make} | |
237 | # --enable-trace | |
238 | ||
239 | %install | |
240 | rm -rf $RPM_BUILD_ROOT | |
241 | install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}} | |
242 | ||
243 | %{__make} install \ | |
244 | DESTDIR=$RPM_BUILD_ROOT | |
245 | ||
246 | %if %{with python} | |
247 | %{__make} -C python install \ | |
248 | DESTDIR=$RPM_BUILD_ROOT \ | |
249 | libdir=%{py_sitedir} | |
250 | %endif | |
251 | ||
252 | %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp} | |
253 | ||
254 | %ifarch i486 i686 ppc sparc alpha athlon | |
255 | %define _ftp_arch %{_target_cpu} | |
256 | %endif | |
257 | %ifarch %{x8664} | |
258 | %define _ftp_arch x86_64 | |
259 | %define _ftp_alt_arch i686 | |
260 | %endif | |
261 | %ifarch i586 | |
262 | %if "%{pld_release}" == "ti" | |
263 | %define _ftp_arch i586 | |
264 | %else | |
265 | %define _ftp_arch i486 | |
266 | %endif | |
267 | %endif | |
268 | %ifarch pentium2 pentium3 pentium4 | |
269 | %define _ftp_arch i686 | |
270 | %endif | |
271 | %ifarch sparcv9 sparc64 | |
272 | %define _ftp_arch sparc | |
273 | %if "%{pld_release}" == "th" | |
274 | %define _ftp_arch %{_target_cpu} | |
275 | %ifarch sparc64 | |
276 | %define _ftp_alt_arch sparcv9 | |
277 | %endif | |
278 | %endif | |
279 | %endif | |
280 | ||
281 | %if "%{pld_release}" == "ti" | |
282 | %define pld_conf %{SOURCE3} | |
283 | %ifarch %{x8664} | |
284 | %define pld_multilib_conf %{SOURCE4} | |
285 | %endif | |
286 | %endif | |
287 | ||
288 | %if "%{pld_release}" == "th" | |
289 | %define pld_conf %{SOURCE1} | |
290 | %define pld_debuginfo_conf %{SOURCE8} | |
291 | %define pld_archive_conf %{SOURCE11} | |
292 | ||
293 | %ifarch %{x8664} | |
294 | %define pld_multilib_conf %{SOURCE2} | |
295 | %endif | |
296 | ||
297 | # aidath | |
298 | %ifarch sparcv9 sparc64 | |
299 | %define pld_conf %{SOURCE9} | |
300 | %undefine pld_archive_conf | |
301 | %endif | |
302 | %ifarch sparc64 | |
303 | %define pld_multilib_conf %{SOURCE10} | |
304 | %endif | |
305 | %endif | |
306 | ||
307 | sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf | |
308 | ||
309 | %if 0%{?pld_multilib_conf:1} | |
310 | sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf | |
311 | %endif | |
312 | ||
313 | %if 0%{?pld_debuginfo_conf:1} | |
314 | sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf | |
315 | %endif | |
316 | ||
317 | %if 0%{?pld_archive_conf:1} | |
318 | sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf | |
319 | %endif | |
320 | ||
321 | cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf | |
322 | ||
323 | %if %{with imode} | |
324 | # add desktop file and icon | |
325 | install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}} | |
326 | cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop | |
327 | cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png | |
328 | %endif | |
329 | ||
330 | # sources we don't package | |
331 | rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf | |
332 | # include them in %doc | |
333 | rm -rf configs | |
334 | cp -a conf configs | |
335 | rm -f configs/Makefile* | |
336 | ||
337 | %if %{with python} | |
338 | %py_postclean | |
339 | rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la | |
340 | %endif | |
341 | ||
342 | %find_lang %{name} | |
343 | ||
344 | %clean | |
345 | rm -rf $RPM_BUILD_ROOT | |
346 | ||
347 | %post | |
348 | [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 | |
349 | if [ "$1" = "1" ]; then | |
350 | # remove ignore = vserver-packages inside vserver on first install | |
351 | { | |
352 | while read f ctx; do | |
353 | [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break | |
354 | done </proc/self/status | |
355 | } 2>/dev/null | |
356 | if [ -z "$ctx" -o "$ctx" = "0" ]; then | |
357 | VSERVER=no | |
358 | else | |
359 | VSERVER=yes | |
360 | fi | |
361 | if [ "$VSERVER" = "yes" ]; then | |
362 | %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf | |
363 | fi | |
364 | fi | |
365 | ||
366 | %postun -p /sbin/postshell | |
367 | -/usr/sbin/fix-info-dir -c %{_infodir} | |
368 | ||
369 | %post libs -p /sbin/ldconfig | |
370 | %postun libs -p /sbin/ldconfig | |
371 | ||
372 | %triggerpostun -- poldek < 0.19.0-1.20050613.22.0 | |
373 | if [ -f /etc/poldek.conf.rpmsave ]; then | |
374 | awk '/^source/ { | |
375 | name = $3; | |
376 | path = $4; | |
377 | auto = "yes"; | |
378 | autoup = "yes"; | |
379 | type = "pdir"; | |
380 | pri = ""; | |
381 | ||
382 | if (sub(",noauto", "", name)) { | |
383 | auto = "no"; | |
384 | } | |
385 | ||
386 | # process pri=\d+ | |
387 | if (match(name, /,pri=[0-9]+/)) { | |
388 | pri = substr(name, RSTART + 5, RLENGTH - 5); | |
389 | name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH); | |
390 | } | |
391 | ||
392 | # skip ac sources. already in new config. | |
393 | if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) { | |
394 | print ""; | |
395 | print "[source]"; | |
396 | print "name = " name; | |
397 | print "type = " type; | |
398 | print "path = " path; | |
399 | print "auto = " auto; | |
400 | print "autoup = " autoup; | |
401 | if (pri) { | |
402 | print "pri = " pri; | |
403 | } | |
404 | } | |
405 | ||
406 | }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf | |
407 | echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf" | |
408 | ||
409 | # copy hold= | |
410 | hold=$(grep ^hold /etc/poldek.conf.rpmsave) | |
411 | if [ "$hold" ]; then | |
412 | sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf | |
413 | fi | |
414 | fi | |
415 | ||
416 | %triggerpostun -- poldek < 0.30-0.20080225.00.1 | |
417 | if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then | |
418 | %{__sed} -i -e '/^%%include source.conf/{ | |
419 | a | |
420 | a# /etc/poldek/repos.d/*.conf | |
421 | a%%includedir repos.d | |
422 | }' %{_sysconfdir}/%{name}/poldek.conf | |
423 | fi | |
424 | ||
425 | %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf | |
426 | %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf | |
427 | ||
428 | if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then | |
429 | cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew} | |
430 | cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf | |
431 | fi | |
432 | ||
433 | %ifarch %{x8664} | |
434 | if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then | |
435 | cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew} | |
436 | cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf | |
437 | fi | |
438 | %endif | |
439 | ||
440 | %files -f %{name}.lang | |
441 | %defattr(644,root,root,755) | |
442 | %doc ChangeLog README* NEWS TODO configs | |
443 | %dir %{_sysconfdir}/%{name} | |
444 | %dir %{_sysconfdir}/%{name}/repos.d | |
445 | %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf | |
446 | %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf | |
447 | %attr(755,root,root) %{_bindir}/* | |
448 | %dir %{_libdir}/%{name} | |
449 | %attr(755,root,root) %{_libdir}/%{name}/* | |
450 | %{_mandir}/man1/%{name}* | |
451 | %lang(pl) %{_mandir}/pl/man1/%{name}* | |
452 | %{_infodir}/poldek.info* | |
453 | %if %{with imode} | |
454 | %{_desktopdir}/%{name}.desktop | |
455 | %{_pixmapsdir}/%{name}.png | |
456 | %endif | |
457 | %dir /var/cache/%{name} | |
458 | ||
459 | %if %{without static} | |
460 | %files libs | |
461 | %defattr(644,root,root,755) | |
462 | %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.* | |
463 | %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.* | |
464 | %attr(755,root,root) %{_libdir}/libtndb.so.*.*.* | |
465 | %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.* | |
466 | %attr(755,root,root) %{_libdir}/libvfile.so.*.*.* | |
467 | %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0 | |
468 | %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2 | |
469 | %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0 | |
470 | %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0 | |
471 | %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0 | |
472 | %endif | |
473 | ||
474 | %files devel | |
475 | %defattr(644,root,root,755) | |
476 | %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so} | |
477 | %{_libdir}/lib*.la | |
478 | %{_includedir}/* | |
479 | ||
480 | %files static | |
481 | %defattr(644,root,root,755) | |
482 | %{_libdir}/lib*.a | |
483 | ||
484 | %if %{with python} | |
485 | %files -n python-poldek | |
486 | %defattr(644,root,root,755) | |
487 | %attr(755,root,root) %{py_sitedir}/_poldekmod.so | |
488 | %{py_sitescriptdir}/poldek.py[co] | |
489 | %{py_sitescriptdir}/poldekmod.py[co] | |
490 | %endif |