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