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