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