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