]> git.pld-linux.org Git - packages/poldek.git/blob - poldek.spec
- "ls -S": match "security" case insensitively
[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    rc3
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.bz2
31 # Source0-md5:  d85c14544d02d03d67d0b1ebd6ec7c61
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:         am-pkglib.patch
48 Patch5:         ls-security.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:  zlib-devel
70 %if %{with static}
71 BuildRequires:  bzip2-static
72 BuildRequires:  db-static >= %{ver_db}-%{ver_db_rel}
73 BuildRequires:  glibc-static
74 BuildRequires:  libselinux-static
75 BuildRequires:  libxml2-static
76 BuildRequires:  ncurses-static
77 BuildRequires:  openssl-static
78 BuildRequires:  pcre-static
79 BuildRequires:  popt-static
80 BuildRequires:  readline-static
81 BuildRequires:  rpm-static
82 BuildRequires:  zlib-static
83 %endif
84 Requires(triggerpostun):        awk
85 Requires(triggerpostun):        sed >= 4.0
86 Requires:       %{name}-libs = %{version}-%{release}
87 Requires:       db >= %{ver_db}-%{ver_db_rel}
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 -f 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 autoreconf -i
227 cd ../trurlib
228 %{__libtoolize}
229 autoreconf -i
230 cd ..
231
232 CPPFLAGS="-std=gnu99"
233 %configure \
234         %{?with_static:--enable-static --disable-shared} \
235         %{!?with_imode:--disable-imode} \
236         --enable-nls \
237         %{?with_python:--with-python}
238 %{__make}
239 #       --enable-trace
240
241 %install
242 rm -rf $RPM_BUILD_ROOT
243 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name}/repos.d,/var/cache/%{name}}
244
245 %{__make} install \
246         DESTDIR=$RPM_BUILD_ROOT
247
248 %if %{with python}
249 %{__make} -C python install \
250         DESTDIR=$RPM_BUILD_ROOT \
251         libdir=%{py_sitedir}
252 %endif
253
254 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
255
256 %ifarch i486 i686 ppc sparc alpha athlon
257         %define         _ftp_arch       %{_target_cpu}
258 %endif
259 %ifarch %{x8664}
260         %define         _ftp_arch       x86_64
261         %define         _ftp_alt_arch   i686
262 %endif
263 %ifarch i586
264         %if "%{pld_release}" == "ti"
265                 %define         _ftp_arch       i586
266         %else
267                 %define         _ftp_arch       i486
268         %endif
269 %endif
270 %ifarch pentium2 pentium3 pentium4
271         %define         _ftp_arch       i686
272 %endif
273 %ifarch sparcv9 sparc64
274         %define         _ftp_arch       sparc
275         %if "%{pld_release}" == "th"
276                 %define         _ftp_arch       %{_target_cpu}
277                 %ifarch sparc64
278                 %define         _ftp_alt_arch   sparcv9
279                 %endif
280         %endif
281 %endif
282
283 %if "%{pld_release}" == "ti"
284         %define pld_conf %{SOURCE3}
285         %ifarch %{x8664}
286                 %define pld_multilib_conf %{SOURCE4}
287         %endif
288 %endif
289
290 %if "%{pld_release}" == "th"
291         %define pld_conf %{SOURCE1}
292         %define pld_debuginfo_conf %{SOURCE8}
293         %define pld_archive_conf %{SOURCE11}
294
295         %ifarch %{x8664}
296                 %define pld_multilib_conf %{SOURCE2}
297         %endif
298
299         # aidath
300         %ifarch sparcv9 sparc64
301                 %define pld_conf %{SOURCE9}
302                 %undefine pld_archive_conf
303         %endif
304         %ifarch sparc64
305                 %define pld_multilib_conf %{SOURCE10}
306         %endif
307 %endif
308
309 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
310
311 %if 0%{?pld_multilib_conf:1}
312         sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{pld_multilib_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
313 %endif
314
315 %if 0%{?pld_debuginfo_conf:1}
316 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_debuginfo_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
317 %endif
318
319 %if 0%{?pld_archive_conf:1}
320 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{pld_archive_conf} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-archive.conf
321 %endif
322
323 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
324
325 %if %{with imode}
326 # add desktop file and icon
327 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
328 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
329 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
330 %endif
331
332 # sources we don't package
333 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
334 # include them in %doc
335 rm -rf configs
336 cp -a conf configs
337 rm -f configs/Makefile*
338
339 %if %{with python}
340 %py_postclean
341 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
342 %endif
343
344 %find_lang %{name}
345
346 %clean
347 rm -rf $RPM_BUILD_ROOT
348
349 %post
350 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
351 if [ "$1" = "1" ]; then
352         # remove ignore = vserver-packages inside vserver on first install
353         {
354                 while read f ctx; do
355                         [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
356                 done </proc/self/status
357         } 2>/dev/null
358         if [ -z "$ctx" -o "$ctx" = "0" ]; then
359                 VSERVER=no
360         else
361                 VSERVER=yes
362         fi
363         if [ "$VSERVER" = "yes" ]; then
364                 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
365         fi
366 fi
367
368 %postun -p      /sbin/postshell
369 -/usr/sbin/fix-info-dir -c %{_infodir}
370
371 %post   libs -p /sbin/ldconfig
372 %postun libs -p /sbin/ldconfig
373
374 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
375 if [ -f /etc/poldek.conf.rpmsave ]; then
376         awk '/^source/ {
377         name = $3;
378         path = $4;
379         auto = "yes";
380         autoup = "yes";
381         type = "pdir";
382         pri = "";
383
384         if (sub(",noauto", "", name)) {
385                 auto = "no";
386         }
387
388         # process pri=\d+
389         if (match(name, /,pri=[0-9]+/)) {
390                 pri = substr(name, RSTART + 5, RLENGTH - 5);
391                 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
392         }
393
394         # skip ac sources. already in new config.
395         if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
396                 print "";
397                 print "[source]";
398                 print "name = " name;
399                 print "type = " type;
400                 print "path = " path;
401                 print "auto = " auto;
402                 print "autoup = " autoup;
403                 if (pri) {
404                         print "pri = " pri;
405                 }
406         }
407
408         }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
409         echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
410
411         # copy hold=
412         hold=$(grep ^hold /etc/poldek.conf.rpmsave)
413         if [ "$hold" ]; then
414                 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
415         fi
416 fi
417
418 %triggerpostun -- poldek < 0.30-0.20080225.00.1
419 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
420         %{__sed} -i -e '/^%%include source.conf/{
421                 a
422                 a# /etc/poldek/repos.d/*.conf
423                 a%%includedir repos.d
424         }' %{_sysconfdir}/%{name}/poldek.conf
425 fi
426
427 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
428 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
429
430 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
431         cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
432         cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
433 fi
434
435 %ifarch %{x8664}
436 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
437         cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
438         cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
439 fi
440 %endif
441
442 %files -f %{name}.lang
443 %defattr(644,root,root,755)
444 %doc ChangeLog README* NEWS TODO configs
445 %dir %{_sysconfdir}/%{name}
446 %dir %{_sysconfdir}/%{name}/repos.d
447 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
448 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
449 %attr(755,root,root) %{_bindir}/*
450 %dir %{_libdir}/%{name}
451 %attr(755,root,root) %{_libdir}/%{name}/*
452 %{_mandir}/man1/%{name}*
453 %lang(pl) %{_mandir}/pl/man1/%{name}*
454 %{_infodir}/poldek.info*
455 %if %{with imode}
456 %{_desktopdir}/%{name}.desktop
457 %{_pixmapsdir}/%{name}.png
458 %endif
459 %dir /var/cache/%{name}
460
461 %if %{without static}
462 %files libs
463 %defattr(644,root,root,755)
464 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
465 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
466 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
467 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
468 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
469 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
470 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
471 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
472 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
473 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
474 %endif
475
476 %files devel
477 %defattr(644,root,root,755)
478 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
479 %{_libdir}/lib*.la
480 %{_includedir}/*
481
482 %files static
483 %defattr(644,root,root,755)
484 %{_libdir}/lib*.a
485
486 %if %{with python}
487 %files -n python-poldek
488 %defattr(644,root,root,755)
489 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
490 %{py_sitescriptdir}/poldek.py[co]
491 %{py_sitescriptdir}/poldekmod.py[co]
492 %endif
This page took 0.060197 seconds and 4 git commands to generate.