]> git.pld-linux.org Git - packages/poldek.git/blob - poldek.spec
- simplify ftp arch macro setup
[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     0.5
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}-multilib.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 %ifarch %{x8664}
159 %patch3 -p1
160 %endif
161 %patch4 -p0
162 %patch5 -p1
163 %patch6 -p1
164
165 # cleanup backups after patching
166 find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
167
168 %build
169 %{__autopoint}
170 %{__aclocal} -I m4
171 %{__autoconf}
172 %{__automake}
173 cp -f config.sub trurlib
174
175 CPPFLAGS="-std=gnu99"
176 %configure \
177         %{?with_static:--enable-static --disable-shared} \
178         %{!?with_imode:--disable-imode} \
179         --enable-nls \
180         %{?with_python:--with-python}
181 %{__make}
182
183 %install
184 rm -rf $RPM_BUILD_ROOT
185 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/repos.d
186
187 %{__make} install \
188         DESTDIR=$RPM_BUILD_ROOT
189
190 %if %{with python}
191 %{__make} -C python install \
192         DESTDIR=$RPM_BUILD_ROOT \
193         libdir=%{py_sitedir}
194 %endif
195
196 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
197
198 %ifarch i486 i686 ppc sparc alpha athlon
199 %define         _ftp_arch       %{_target_cpu}
200 %endif
201 %ifarch %{x8664}
202 %define         _ftp_arch       x86_64
203 %define         _ftp_alt_arch   i686
204 %endif
205 %ifarch i586
206 %define         _ftp_arch       i486
207 %endif
208 %ifarch pentium2 pentium3 pentium4
209 %define         _ftp_arch       i686
210 %endif
211 %ifarch sparcv9 sparc64
212 %define         _ftp_arch       sparc
213 %endif
214
215 %{?with_static:rm -f $RPM_BUILD_ROOT%{_bindir}/rpmvercmp}
216
217 sed -e '
218         s|%%ARCH%%|%{_ftp_arch}|g
219 ' < %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/pld-source.conf
220
221 %ifarch %{x8664}
222 sed '
223         s|%%ARCH%%|%{_ftp_alt_arch}|g
224 ' < %{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/pld-multilib-source.conf
225 %endif
226
227 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/aliases.conf
228
229 %if %{with imode}
230 # add desktop file and icon
231 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
232 install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
233 install %{SOURCE5} $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
234 %endif
235
236 # get rid of non-pld sources
237 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{rh,fedora,centos}-source.conf
238 # include them in %doc
239 rm -rf configs
240 cp -a conf configs
241 rm -f configs/Makefile*
242
243 %if %{with python}
244 %py_postclean
245 rm -f $RPM_BUILD_ROOT%{py_sitedir}/_poldekmod.la
246 %endif
247
248 %find_lang %{name}
249
250 %clean
251 rm -rf $RPM_BUILD_ROOT
252
253 %post   -p      /sbin/postshell
254 -/usr/sbin/fix-info-dir -c %{_infodir}
255
256 %postun -p      /sbin/postshell
257 -/usr/sbin/fix-info-dir -c %{_infodir}
258
259 %post   libs -p /sbin/ldconfig
260 %postun libs -p /sbin/ldconfig
261
262 %triggerpostun -- poldek < 0.19.0-1.20050613.22.0
263 if [ -f /etc/poldek.conf.rpmsave ]; then
264         awk '/^source/ {
265         name = $3;
266         path = $4;
267         auto = "yes";
268         autoup = "yes";
269         type = "pdir";
270         pri = "";
271
272         if (sub(",noauto", "", name)) {
273                 auto = "no";
274         }
275
276         # process pri=\d+
277         if (match(name, /,pri=[0-9]+/)) {
278                 pri = substr(name, RSTART + 5, RLENGTH - 5);
279                 name = substr(name, 1, RSTART - 1) substr(name, RSTART + RLENGTH);
280         }
281
282         # skip ac sources. already in new config.
283         if (name !~ /^ac(-(ready|test|supported|updates-(general|security)))?$/) {
284                 print "";
285                 print "[source]";
286                 print "name = " name;
287                 print "type = " type;
288                 print "path = " path;
289                 print "auto = " auto;
290                 print "autoup = " autoup;
291                 if (pri) {
292                         print "pri = " pri;
293                 }
294         }
295
296         }' < /etc/poldek.conf.rpmsave >> /etc/poldek/source.conf
297         echo "Converted old custom sources from /etc/poldek.conf.rpmsave to new poldek format in /etc/poldek/source.conf"
298
299         # copy hold=
300         hold=$(grep ^hold /etc/poldek.conf.rpmsave)
301         if [ "$hold" ]; then
302                 sed -i -e "/^#hold =/s/^.*/$hold/" /etc/poldek/poldek.conf
303         fi
304 fi
305
306 %files -f %{name}.lang
307 %defattr(644,root,root,755)
308 %doc README* NEWS TODO configs/
309 %dir %{_sysconfdir}/%{name}
310 %dir %{_sysconfdir}/%{name}/repos.d
311 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
312 %attr(755,root,root) %{_bindir}/*
313 %dir %{_libdir}/%{name}
314 %attr(755,root,root) %{_libdir}/%{name}/*
315 %{_mandir}/man1/%{name}*
316 %lang(pl) %{_mandir}/pl/man1/%{name}*
317 %{_infodir}/poldek.info*
318 %if %{with imode}
319 %{_desktopdir}/%{name}.desktop
320 %{_pixmapsdir}/%{name}.png
321 %endif
322
323 %if !%{with static}
324 %files libs
325 %defattr(644,root,root,755)
326 %attr(755,root,root) %{_libdir}/libpoclidek.so.*.*.*
327 %attr(755,root,root) %{_libdir}/libpoldek.so.*.*.*
328 %attr(755,root,root) %{_libdir}/libtndb.so.*.*.*
329 %attr(755,root,root) %{_libdir}/libtrurl.so.*.*.*
330 %attr(755,root,root) %{_libdir}/libvfile.so.*.*.*
331 %attr(755,root,root) %ghost %{_libdir}/libpoclidek.so.0
332 %attr(755,root,root) %ghost %{_libdir}/libpoldek.so.2
333 %attr(755,root,root) %ghost %{_libdir}/libtndb.so.0
334 %attr(755,root,root) %ghost %{_libdir}/libtrurl.so.0
335 %attr(755,root,root) %ghost %{_libdir}/libvfile.so.0
336 %endif
337
338 %files devel
339 %defattr(644,root,root,755)
340 %{!?with_static:%attr(755,root,root) %{_libdir}/lib*.so}
341 %{_libdir}/lib*.la
342 %{_includedir}/*
343
344 %files static
345 %defattr(644,root,root,755)
346 %{_libdir}/lib*.a
347
348 %if %{with python}
349 %files -n python-poldek
350 %defattr(644,root,root,755)
351 %attr(755,root,root) %{py_sitedir}/_poldekmod.so
352 %{py_sitescriptdir}/poldek.py[co]
353 %{py_sitescriptdir}/poldekmod.py[co]
354 %endif
This page took 0.050384 seconds and 3 git commands to generate.