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