]> git.pld-linux.org Git - packages/poldek.git/blob - poldek.spec
- require rpm-lib from same rpm that poldek was built with; rel .12
[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 #
7 # required versions (forced to avoid SEGV with mixed db used by rpm and poldek)
8 %define ver_db  4.3.27-1
9 %define ver_rpm 4.4.9-1
10 #
11 %define         snap    20070703.00
12 %define         rel     12
13 Summary:        RPM packages management helper tool
14 Summary(pl.UTF-8):      Pomocnicze narzędzie do zarządzania pakietami RPM
15 Name:           poldek
16 Version:        0.21
17 Release:        0.%{snap}.%{rel}
18 License:        GPL v2
19 Group:          Applications/System
20 Source0:        http://poldek.pld-linux.org/download/snapshots/%{name}-%{version}-cvs%{snap}.tar.bz2
21 # Source0-md5:  dae23dec560fad954abf157fd250e4c3
22 Source1:        %{name}.conf
23 Source2:        %{name}-multilib.conf
24 Source3:        %{name}-aliases.conf
25 %if %{with imode}
26 Source4:        %{name}.desktop
27 Source5:        %{name}.png
28 %endif
29 Patch1:         %{name}-vserver-packages.patch
30 Patch2:         %{name}-config.patch
31 Patch3:         %{name}-multilib.patch
32 Patch4:         %{name}-ndie_fix.patch
33 Patch5:         %{name}-uri-escape-fix.patch
34 Patch6:         %{name}-install-dist.patch
35 Patch7:         %{name}-nohold-fix.patch
36 Patch8:         %{name}-dir-dot.patch
37 Patch9:         %{name}-suggests-one-package.patch
38 URL:            http://poldek.pld-linux.org/
39 BuildRequires:  autoconf
40 BuildRequires:  automake
41 BuildRequires:  bzip2-devel
42 BuildRequires:  check
43 BuildRequires:  db-devel >= %{ver_db}
44 BuildRequires:  gettext-autopoint
45 BuildRequires:  libtool
46 BuildRequires:  libxml2-devel
47 BuildRequires:  openssl-devel >= 0.9.7d
48 BuildRequires:  pcre-devel
49 BuildRequires:  perl-tools-pod
50 BuildRequires:  pkgconfig
51 BuildRequires:  popt-devel
52 %{?with_python:BuildRequires:   python-devel}
53 BuildRequires:  readline-devel >= 5.0
54 BuildRequires:  rpm-devel >= %{ver_rpm}
55 %{?with_python:BuildRequires:   rpm-pythonprov}
56 BuildRequires:  xmlto
57 BuildRequires:  zlib-devel
58 %if %{with static}
59 BuildRequires:  bzip2-static
60 BuildRequires:  db-static >= %{ver_db}
61 BuildRequires:  glibc-static
62 BuildRequires:  libselinux-static
63 BuildRequires:  libxml2-static
64 BuildRequires:  ncurses-static
65 BuildRequires:  openssl-static
66 BuildRequires:  pcre-static
67 BuildRequires:  popt-static
68 BuildRequires:  readline-static
69 BuildRequires:  rpm-static
70 BuildRequires:  zlib-static
71 %endif
72 Requires(triggerpostun):        awk
73 Requires(triggerpostun):        sed >= 4.0
74 Requires:       %{name}-libs = %{version}-%{release}
75 Requires:       db >= %{ver_db}
76 Requires:       rpm >= %{ver_rpm}
77 Requires:       rpm-lib = %(rpm -q --qf '%{V}' rpm-lib)
78 # vf* scripts use sed
79 Requires:       sed
80 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
81
82 %description
83 poldek is an RPM package management tool which allows you to easily
84 perform package verification, installation (including system
85 installation from scratch), upgrading, and removal.
86
87 Program can be used in batch (like apt-get from Debian's APT) or
88 interactive mode. The interactive mode puts you into a readline
89 interface with command line autocompletion and history, similar to the
90 shell mode of Perl's CPAN.
91
92 %{?with_static:This version is statically linked.}
93
94 %{!?with_imode:This version hasn't got interactive mode.}
95 #'vim
96
97 %description -l pl.UTF-8
98 poldek jest narzędziem linii poleceń służącym do weryfikacji,
99 instalacji (włączając instalację systemu od zera), aktualizacji i
100 usuwania pakietów.
101
102 Program może być używany w trybie wsadowym (jak debianowy apt-get) lub
103 interaktywnym. Tryb interaktywny posiada interfejs readline z
104 dopełnianiem komend i historią, podobny do trybu shell perlowego
105 modułu CPAN.
106
107 %{?with_static:Ta wersja jest konsolidowana statycznie.}
108
109 %{!?with_imode:Ta wersja nie posiada trybu interaktywnego.}
110
111 %package libs
112 Summary:        poldek libraries
113 Summary(pl.UTF-8):      Biblioteki poldka
114 Group:          Libraries
115
116 %description libs
117 poldek libraries.
118
119 %description libs -l pl.UTF-8
120 Biblioteki poldka.
121
122 %package devel
123 Summary:        Header files for poldek libraries
124 Summary(pl.UTF-8):      Pliki nagłówkowe bibliotek poldka
125 Group:          Development/Libraries
126 Requires:       %{name}-libs = %{version}-%{release}
127
128 %description devel
129 Header files for poldek libraries.
130
131 %description devel -l pl.UTF-8
132 Pliki nagłówkowe bibliotek poldka.
133
134 %package static
135 Summary:        poldek static libraries
136 Summary(pl.UTF-8):      Biblioteki statyczne poldka
137 Group:          Development/Libraries
138 Requires:       %{name}-devel = %{version}-%{release}
139
140 %description static
141 poldek static libraries.
142
143 %description static -l pl.UTF-8
144 Biblioteki statyczne poldka.
145
146 %package -n python-poldek
147 Summary:        Python modules for poldek
148 Summary(pl.UTF-8):      Moduły języka Python dla poldka
149 Group:          Libraries/Python
150 Requires:       %{name}-libs = %{version}-%{release}
151 %pyrequires_eq  python-libs
152
153 %description -n python-poldek
154 Python modules for poldek.
155
156 %description -n python-poldek -l pl.UTF-8
157 Moduły języka Python dla poldka.
158
159 %prep
160 %setup -q -n %{name}-%{version}%{?snap:-cvs%{snap}}
161 %patch1 -p1
162 %patch2 -p1
163 %ifarch %{x8664}
164 %patch3 -p1
165 %endif
166 %patch4 -p0
167 %patch5 -p0
168 %patch6 -p1
169 %patch7 -p1
170 %patch8 -p1
171 %patch9 -p1
172
173 # cleanup backups after patching
174 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
175
176 %build
177 %{__autopoint}
178 %{__aclocal} -I m4
179 %{__autoconf}
180 %{__automake}
181 cp -f config.sub trurlib
182
183 %configure \
184         %{?with_static:--enable-static --disable-shared} \
185         %{!?with_imode:--disable-imode} \
186         --enable-nls \
187         %{?with_python:--with-python}
188 %{__make}
189
190 %install
191 rm -rf $RPM_BUILD_ROOT
192 install -d $RPM_BUILD_ROOT%{_sysconfdir}
193
194 %{__make} install \
195         DESTDIR=$RPM_BUILD_ROOT
196
197 %if %{with python}
198 %{__make} -C python install \
199         DESTDIR=$RPM_BUILD_ROOT \
200         libdir=%{py_sitedir}
201 %endif
202
203 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
204
205 %ifarch i486 i686 ppc sparc alpha athlon
206 %define         _ftp_arch       %{_target_cpu}
207 %else
208 %ifarch %{x8664}
209 %define         _ftp_arch       x86_64
210 %define         _ftp_alt_arch   i686
211 %else
212 %ifarch i586
213 %define         _ftp_arch       i486
214 %else
215 %ifarch pentium2 pentium3 pentium4
216 %define         _ftp_arch       i686
217 %else
218 %ifarch sparcv9 sparc64
219 %define         _ftp_arch       sparc
220 %endif
221 %endif
222 %endif
223 %endif
224 %endif
225
226 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
227
228 sed -e '
229         s|%%ARCH%%|%{_ftp_arch}|g
230 ' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/pld-source.conf
231
232 %ifarch %{x8664}
233 sed '
234         s|%%ARCH%%|%{_ftp_alt_arch}|g
235 ' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/pld-multilib-source.conf
236 %endif
237
238 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/aliases.conf
239
240 %if %{with imode}
241 # add desktop file and icon
242 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
243 install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
244 install %{SOURCE5} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
245 %endif
246
247 # get rid of non-pld sources
248 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora}-source.conf
249 # include them in %doc
250 rm -rf configs
251 cp -a conf configs
252 rm -f configs/Makefile*
253
254 %if %{with python}
255 %py_postclean
256 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
257 %endif
258
259 %find_lang %{name}
260
261 %clean
262 rm -rf $RPM_BUILD_ROOT
263
264 %post
265 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
266
267 %postun
268 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
269
270 %post   libs -p /sbin/ldconfig
271 %postun libs -p /sbin/ldconfig
272
273 %triggerpostun -- poldek <= 0.18.3-5
274 if [ -f /etc/poldek.conf ]; then
275         sed -i -e '/^promoteepoch:.*yes/s/^/#/' /etc/poldek.conf
276 fi
277
278 # otherwise don't touch
279 %ifarch i386 i586 i686 ppc sparc alpha amd64 athlon
280 %triggerpostun -- poldek <= 0.18.7-1
281 if [ -f /etc/poldek.conf ]; then
282         sed -i -e 's://ftp.pld-linux.org://ftp.ac.pld-linux.org:g' /etc/poldek.conf
283 fi
284 %endif
285
286 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
287 if [ -f /etc/poldek.conf.rpmsave ]; then
288         awk '/^source/ {
289         name = $3;
290         path = $4;
291         auto = "yes";
292         autoup = "yes";
293         type = "pdir";
294         pri = "";
295
296         if (sub(",noauto", "", name)) {
297                 auto = "no";
298         }
299
300         # process pri=\d+
301         if (match(name, /,pri=[0-9]+/)) {
302                 pri = substr(name, RSTART + 5, RLENGTH - 5);
303                 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
304         }
305
306         # skip ac sources. already in new config.
307         if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
308                 print "";
309                 print "[source]";
310                 print "name = " name;
311                 print "type = " type;
312                 print "path = " path;
313                 print "auto = " auto;
314                 print "autoup = " autoup;
315                 if (pri) {
316                         print "pri = " pri;
317                 }
318         }
319
320         }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
321         echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
322
323         # copy hold=
324         hold=$(grep ^hold /etc/poldek.conf.rpmsave)
325         if [ "$hold" ]; then
326                 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
327         fi
328 fi
329
330 %files -f %{name}.lang
331 %defattr(644,root,root,755)
332 %doc README* NEWS TODO configs/
333 %dir %{_sysconfdir}/%{name}
334 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
335 %attr(755,root,root) %{_bindir}/*
336 %dir %{_libdir}/%{name}
337 %attr(755,root,root) %{_libdir}/%{name}/*
338 %{_mandir}/man1/%{name}*
339 %lang(pl) %{_mandir}/pl/man1/%{name}*
340 %{_infodir}/poldek.info*
341 %if %{with imode}
342 %{_desktopdir}/%{name}.desktop
343 %{_pixmapsdir}/%{name}.png
344 %endif
345
346 %if !%{with static}
347 %files libs
348 %defattr(644,root,root,755)
349 %attr(755,root,root) %{_libdir}/lib*.so.*.*.*
350 %endif
351
352 %files devel
353 %defattr(644,root,root,755)
354 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
355 %{_libdir}/lib*.la
356 %{_includedir}/*
357
358 %files static
359 %defattr(644,root,root,755)
360 %{_libdir}/lib*.a
361
362 %if %{with python}
363 %files -n python-poldek
364 %defattr(644,root,root,755)
365 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
366 %{py_sitescriptdir}/poldek.py[co]
367 %{py_sitescriptdir}/poldekmod.py[co]
368 %endif
This page took 0.076241 seconds and 3 git commands to generate.