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