]> git.pld-linux.org Git - packages/poldek.git/blob - poldek.spec
- reformat sources hacking to get some readability
[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 %if "%{pld_release}" == "ti"
273         sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
274
275         %ifarch %{x8664}
276                 sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
277         %endif
278 %endif
279 %if "%{pld_release}" == "th"
280         # aidath
281         %ifarch sparcv9 sparc64
282                 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{SOURCE9} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
283
284                 %ifarch sparc64
285                 sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{SOURCE10} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
286                 %endif
287         %else
288                 # th
289                 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld.conf
290                 sed -e 's|%%ARCH%%|%{_ftp_arch}|g' < %{SOURCE8} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-debuginfo.conf
291
292                 %ifarch %{x8664}
293                         sed 's|%%ARCH%%|%{_ftp_alt_arch}|g' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
294                 %endif
295         %endif
296 %endif
297
298 cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cli.conf
299
300 %if %{with imode}
301 # add desktop file and icon
302 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
303 cp -a %{SOURCE6} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
304 cp -a %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
305 %endif
306
307 # sources we don't package
308 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,pld,fedora,centos}-source.conf
309 # include them in %doc
310 rm -rf configs
311 cp -a conf configs
312 rm -f configs/Makefile*
313
314 %if %{with python}
315 %py_postclean
316 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
317 %endif
318
319 %find_lang %{name}
320
321 %clean
322 rm -rf $RPM_BUILD_ROOT
323
324 %post
325 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
326 if [ "$1" = "1" ]; then
327         # remove ignore = vserver-packages inside vserver on first install
328         {
329                 while read f ctx; do
330                         [ "$f" = "VxID:" -o "$f" = "s_context:" ] && break
331                 done </proc/self/status
332         } 2>/dev/null
333         if [ -z "$ctx" -o "$ctx" = "0" ]; then
334                 VSERVER=no
335         else
336                 VSERVER=yes
337         fi
338         if [ "$VSERVER" = "yes" ]; then
339                 %{__sed} -i -e '/^ignore/s/vserver-packages//' %{_sysconfdir}/%{name}/poldek.conf
340         fi
341 fi
342
343 %postun -p      /sbin/postshell
344 -/usr/sbin/fix-info-dir -c %{_infodir}
345
346 %post   libs -p /sbin/ldconfig
347 %postun libs -p /sbin/ldconfig
348
349 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
350 if [ -f /etc/poldek.conf.rpmsave ]; then
351         awk '/^source/ {
352         name = $3;
353         path = $4;
354         auto = "yes";
355         autoup = "yes";
356         type = "pdir";
357         pri = "";
358
359         if (sub(",noauto", "", name)) {
360                 auto = "no";
361         }
362
363         # process pri=\d+
364         if (match(name, /,pri=[0-9]+/)) {
365                 pri = substr(name, RSTART + 5, RLENGTH - 5);
366                 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
367         }
368
369         # skip ac sources. already in new config.
370         if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
371                 print "";
372                 print "[source]";
373                 print "name = " name;
374                 print "type = " type;
375                 print "path = " path;
376                 print "auto = " auto;
377                 print "autoup = " autoup;
378                 if (pri) {
379                         print "pri = " pri;
380                 }
381         }
382
383         }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
384         echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
385
386         # copy hold=
387         hold=$(grep ^hold /etc/poldek.conf.rpmsave)
388         if [ "$hold" ]; then
389                 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
390         fi
391 fi
392
393 %triggerpostun -- poldek < 0.30-0.20080225.00.1
394 if ! grep -q '^%%includedir repos.d' %{_sysconfdir}/%{name}/poldek.conf; then
395         %{__sed} -i -e '/^%%include source.conf/{
396                 a
397                 a# /etc/poldek/repos.d/*.conf
398                 a%%includedir repos.d
399         }' %{_sysconfdir}/%{name}/poldek.conf
400 fi
401
402 %{__sed} -i -e '/%%include %%{_distro}-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
403 %{__sed} -i -e '/%%include %%{_distro}-multilib-source.conf/d' %{_sysconfdir}/%{name}/poldek.conf
404
405 if [ -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave ]; then
406         cp -f %{_sysconfdir}/%{name}/repos.d/pld.conf{,.rpmnew}
407         cp -f %{_sysconfdir}/%{name}/pld-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld.conf
408 fi
409
410 %ifarch %{x8664}
411 if [ -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave ]; then
412         cp -f %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf{,.rpmnew}
413         cp -f %{_sysconfdir}/%{name}/pld-multilib-source.conf.rpmsave %{_sysconfdir}/%{name}/repos.d/pld-multilib.conf
414 fi
415 %endif
416
417 %files -f %{name}.lang
418 %defattr(644,root,root,755)
419 %doc ChangeLog README* NEWS TODO configs
420 %dir %{_sysconfdir}/%{name}
421 %dir %{_sysconfdir}/%{name}/repos.d
422 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
423 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/repos.d/*.conf
424 %attr(755,root,root) %{_bindir}/*
425 %dir %{_libdir}/%{name}
426 %attr(755,root,root) %{_libdir}/%{name}/*
427 %{_mandir}/man1/%{name}*
428 %lang(pl) %{_mandir}/pl/man1/%{name}*
429 %{_infodir}/poldek.info*
430 %if %{with imode}
431 %{_desktopdir}/%{name}.desktop
432 %{_pixmapsdir}/%{name}.png
433 %endif
434
435 %if %{without static}
436 %files libs
437 %defattr(644,root,root,755)
438 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
439 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
440 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
441 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
442 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
443 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
444 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
445 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
446 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
447 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
448 %endif
449
450 %files devel
451 %defattr(644,root,root,755)
452 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
453 %{_libdir}/lib*.la
454 %{_includedir}/*
455
456 %files static
457 %defattr(644,root,root,755)
458 %{_libdir}/lib*.a
459
460 %if %{with python}
461 %files -n python-poldek
462 %defattr(644,root,root,755)
463 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
464 %{py_sitescriptdir}/poldek.py[co]
465 %{py_sitescriptdir}/poldekmod.py[co]
466 %endif
This page took 0.073017 seconds and 4 git commands to generate.