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