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