1 %define with_python_subpackage @WITH_PYTHON_SUBPACKAGE@ %{nil}
2 %define with_perl_subpackage 1
3 %define with_bzip2 @WITH_BZIP2@ %{nil}
4 %define with_apidocs @WITH_APIDOCS@ %{nil}
5 %define with_internal_db @WITH_INTERNAL_DB@ %{nil}
6 %define strip_binaries 1
8 # XXX enable at your own risk, CDB access to rpmdb isn't cooked yet.
9 %define enable_cdb create cdb
11 # XXX legacy requires './' payload prefix to be omitted from rpm packages.
12 %define _noPayloadPrefix 1
15 %{expand: %%define __share %(if [ -d %{__prefix}/share/man ]; then echo /share ; else echo %%{nil} ; fi)}
17 Summary: The Red Hat package management system.
19 %define version @VERSION@
21 %{expand: %%define rpm_version %{version}}
23 Group: System Environment/Base
24 Source: ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/rpm-%{rpm_version}.tar.gz
26 Conflicts: patch < 2.5
28 Prereq: gawk fileutils textutils mktemp
29 Requires: popt = 1.6.3
32 %if !%{with_internal_db}
33 BuildRequires: db3-devel
35 # XXX glibc-2.1.92 has incompatible locale changes that affect statically
36 # XXX linked binaries like /bin/rpm.
38 Requires: glibc >= 2.1.92
42 BuildRequires: zlib-devel
43 # XXX Red Hat 5.2 has not bzip2 or python
45 BuildRequires: bzip2 >= 0.9.0c-2
47 %if %{with_python_subpackage}
48 BuildRequires: python-devel >= 1.5.2
50 %if %{with_perl_subpackage}
51 BuildRequires: perl >= 0:5.00503
54 BuildRoot: %{_tmppath}/%{name}-root
57 The RPM Package Manager (RPM) is a powerful command line driven
58 package management system capable of installing, uninstalling,
59 verifying, querying, and updating software packages. Each software
60 package consists of an archive of files along with information about
61 the package like its version, a description, etc.
64 Summary: Development files for applications which will manipulate RPM packages.
65 Group: Development/Libraries
66 Requires: rpm = %{rpm_version}, popt = 1.6.3
69 This package contains the RPM C library and header files. These
70 development files will simplify the process of writing programs which
71 manipulate RPM packages and databases. These files are intended to
72 simplify the process of creating graphical package managers or any
73 other tools that need an intimate knowledge of RPM packages in order
76 This package should be installed if you want to develop programs that
77 will manipulate RPM packages and databases.
80 Summary: Scripts and executable programs used to build packages.
81 Group: Development/Tools
82 Requires: rpm = %{rpm_version}
85 This package contains scripts and executable programs that are used to
86 build packages using RPM.
88 %if %{with_python_subpackage}
90 Summary: Python bindings for apps which will manipulate RPM packages.
91 Group: Development/Libraries
92 Requires: rpm = %{rpm_version}
93 Requires: python >= 1.5.2
94 Requires: popt = 1.6.3
97 The rpm-python package contains a module which permits applications
98 written in the Python programming language to use the interface
99 supplied by RPM (RPM Package Manager) libraries.
101 This package should be installed if you want to develop Python
102 programs that will manipulate RPM packages and databases.
105 %if %{with_perl_subpackage}
107 Summary: Native bindings to the RPM API for Perl.
108 Group: Development/Languages
109 URL: http://www.cpan.org
110 Provides: perl(RPM::Database) = %{rpm_version}
111 Provides: perl(RPM::Header) = %{rpm_version}
112 Requires: rpm = %{rpm_version}
113 Requires: perl >= 0:5.00503
114 Requires: popt = 1.6.3
115 Obsoletes: perl-Perl-RPM
118 The Perl-RPM module is an attempt to provide Perl-level access to the
119 complete application programming interface that is a part of the Red
120 Hat Package Manager (RPM). Rather than have scripts rely on executing
121 RPM commands and parse the resulting output, this module aims to give
122 Perl programmers the ability to do anything that would otherwise have
123 been done in C or C++.
125 The interface is being designed and laid out as a collection of
126 classes, at least some of which are also available as tied-hash
129 At this time, the interface only provides access to the database of
130 installed packages, and header data retrieval for RPM and SRPM files
131 is not yet installed. Error management and the export of most defined
132 constants, through RPM::Error and RPM::Constants, respectively, are
138 Summary: A C library for parsing command line parameters.
139 Group: Development/Libraries
143 Popt is a C library for parsing command line parameters. Popt was
144 heavily influenced by the getopt() and getopt_long() functions, but it
145 improves on them by allowing more powerful argument expansion. Popt
146 can parse arbitrary argv[] style arrays and automatically set
147 variables based on command line arguments. Popt allows command line
148 arguments to be aliased via configuration files and includes utility
149 functions for parsing arbitrary strings into argv[] arrays using
152 Install popt if you're a C programmer and you'd like to use its
161 # XXX work around a (possible) compiler problem on ia64
167 CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{__prefix} --sysconfdir=/etc --localstatedir=/var --infodir='${prefix}%{__share}/info' --mandir='${prefix}%{__share}/man'
169 CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{__prefix}
174 %if %{with_perl_subpackage}
176 CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL
177 export SUBDIR="%{_builddir}/%{buildsubdir}"
178 make INC="-I. -I$SUBDIR/lib -I$SUBDIR/rpmio -I$SUBDIR/popt" %{?_smp_mflags}
183 rm -rf $RPM_BUILD_ROOT
185 make DESTDIR="$RPM_BUILD_ROOT" install
189 # Save list of packages through cron
190 mkdir -p ${RPM_BUILD_ROOT}/etc/cron.daily
191 install -m 755 scripts/rpm.daily ${RPM_BUILD_ROOT}/etc/cron.daily/rpm
193 mkdir -p ${RPM_BUILD_ROOT}/etc/logrotate.d
194 install -m 755 scripts/rpm.log ${RPM_BUILD_ROOT}/etc/logrotate.d/rpm
196 mkdir -p $RPM_BUILD_ROOT/etc/rpm
197 cat << E_O_F > $RPM_BUILD_ROOT/etc/rpm/macros.db1
200 cat << E_O_F > $RPM_BUILD_ROOT/etc/rpm/macros.cdb
201 %{?enable_cdb:#%%__dbi_cdb %{enable_cdb}}
204 mkdir -p $RPM_BUILD_ROOT/var/lib/rpm
206 Basenames Conflictname Dirnames Group Installtid Name Providename \
207 Provideversion Removetid Requirename Requireversion Triggername \
208 Packages __db.001 __db.002 __db.003 __db.004 __db.005 __db.006 __db.007 \
211 touch $RPM_BUILD_ROOT/var/lib/rpm/$dbi
217 gzip -9n apidocs/man/man*/* || :
220 %if %{with_perl_subpackage}
222 eval `perl '-V:installsitearch'`
223 eval `perl '-V:installarchlib'`
224 mkdir -p $RPM_BUILD_ROOT/$installarchlib
225 make PREFIX=$RPM_BUILD_ROOT/usr install
226 rm -f $RPM_BUILD_ROOT/$installarchlib/perllocal.pod
227 rm -f $RPM_BUILD_ROOT/$installsitearch/auto/RPM/.packlist
232 %if %{strip_binaries}
235 %{__strip} .%{__prefix}/bin/rpm2cpio
240 rm -rf $RPM_BUILD_ROOT
244 if [ -f /var/lib/rpm/Packages -a -f /var/lib/rpm/packages.rpm ]; then
247 /var/lib/rpm/packages.rpm db1 format installed package headers
248 /var/lib/rpm/Packages db3 format installed package headers
249 Please remove (or at least rename) one of those files, and re-install.
253 /usr/sbin/groupadd -g 37 @RPMGROUP@ > /dev/null 2>&1
254 /usr/sbin/useradd -r -d /var/lib/rpm -u 37 -g 37 @RPMUSER@ > /dev/null 2>&1
261 if [ -f /var/lib/rpm/packages.rpm ]; then
262 /bin/chown @RPMUSER@.@RPMGROUP@ /var/lib/rpm/*.rpm
263 elif [ -f /var/lib/rpm/Packages ]; then
264 # undo db1 configuration
265 rm -f /etc/rpm/macros.db1
266 /bin/chown @RPMUSER@.@RPMGROUP@ /var/lib/rpm/[A-Z]*
268 # initialize db3 database
269 rm -f /etc/rpm/macros.db1
279 /usr/sbin/userdel rpm
280 /usr/sbin/groupdel rpm
284 %post devel -p /sbin/ldconfig
285 %postun devel -p /sbin/ldconfig
287 %post -n popt -p /sbin/ldconfig
288 %postun -n popt -p /sbin/ldconfig
291 %if %{with_python_subpackage}
292 %post python -p /sbin/ldconfig
293 %postun python -p /sbin/ldconfig
296 %define rpmattr %attr(0755, @RPMUSER@, @RPMGROUP@)
299 %defattr(-,root,root)
300 %doc RPM-PGP-KEY RPM-GPG-KEY CHANGES GROUPS doc/manual/[a-z]*
301 %attr(0755, @RPMUSER@, @RPMGROUP@) /bin/rpm
304 %config(noreplace,missingok) /etc/cron.daily/rpm
305 %config(noreplace,missingok) /etc/logrotate.d/rpm
307 %config(noreplace,missingok) /etc/rpm/macros.*
308 %attr(0755, @RPMUSER@, @RPMGROUP@) %dir /var/lib/rpm
310 %define rpmdbattr %attr(0644, @RPMUSER@, @RPMGROUP@) %verify(not md5 size mtime) %ghost %config(missingok,noreplace)
311 %rpmdbattr /var/lib/rpm/Basenames
312 %rpmdbattr /var/lib/rpm/Conflictname
313 %rpmdbattr /var/lib/rpm/__db.0*
314 %rpmdbattr /var/lib/rpm/Dirnames
315 %rpmdbattr /var/lib/rpm/Group
316 %rpmdbattr /var/lib/rpm/Installtid
317 %rpmdbattr /var/lib/rpm/Name
318 %rpmdbattr /var/lib/rpm/Packages
319 %rpmdbattr /var/lib/rpm/Providename
320 %rpmdbattr /var/lib/rpm/Provideversion
321 %rpmdbattr /var/lib/rpm/Removetid
322 %rpmdbattr /var/lib/rpm/Requirename
323 %rpmdbattr /var/lib/rpm/Requireversion
324 %rpmdbattr /var/lib/rpm/Triggername
328 %rpmattr %{__prefix}/bin/rpm2cpio
329 %rpmattr %{__prefix}/bin/gendiff
330 %rpmattr %{__prefix}/bin/rpmdb
331 #%rpmattr %{__prefix}/bin/rpm[eiu]
332 %rpmattr %{__prefix}/bin/rpmsign
333 %rpmattr %{__prefix}/bin/rpmquery
334 %rpmattr %{__prefix}/bin/rpmverify
336 %{__prefix}/lib/librpm-@VERSION@.so
337 %{__prefix}/lib/librpmdb-@VERSION@.so
338 %{__prefix}/lib/librpmio-@VERSION@.so
339 %{__prefix}/lib/librpmbuild-@VERSION@.so
341 %rpmattr %{__prefix}/lib/rpm/config.guess
342 %rpmattr %{__prefix}/lib/rpm/config.sub
343 %rpmattr %{__prefix}/lib/rpm/convertrpmrc.sh
344 %attr(0644, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/macros
345 %rpmattr %{__prefix}/lib/rpm/mkinstalldirs
346 %rpmattr %{__prefix}/lib/rpm/rpm.*
347 %rpmattr %{__prefix}/lib/rpm/rpm[deiukqv]
348 %attr(0644, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/rpmpopt*
349 %attr(0644, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/rpmrc
351 %ifarch i386 i486 i586 i686 athlon
352 %attr(-, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/i[3456]86*
353 %attr(-, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/athlon*
355 %ifarch alpha alphaev5 alphaev56 alphapca56 alphaev6 alphaev67
356 %attr(-, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/alpha*
358 %ifarch sparc sparcv9 sparc64
359 %attr(-, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/sparc*
362 %attr(-, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/ia64*
364 %ifarch powerpc ppc ppciseries ppcpseries ppcmac
365 %attr(-, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/ppc*
368 %attr(-, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/s390*
370 %ifarch armv3l armv4l
371 %attr(-, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/armv[34][lb]*
373 %ifarch mips mipsel mipseb
374 %attr(-, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/mips*
376 %attr(-, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/noarch*
378 %lang(cs) %{__prefix}/*/locale/cs/LC_MESSAGES/rpm.mo
379 %lang(da) %{__prefix}/*/locale/da/LC_MESSAGES/rpm.mo
380 %lang(de) %{__prefix}/*/locale/de/LC_MESSAGES/rpm.mo
381 %lang(fi) %{__prefix}/*/locale/fi/LC_MESSAGES/rpm.mo
382 %lang(fr) %{__prefix}/*/locale/fr/LC_MESSAGES/rpm.mo
383 %lang(is) %{__prefix}/*/locale/is/LC_MESSAGES/rpm.mo
384 %lang(ja) %{__prefix}/*/locale/ja/LC_MESSAGES/rpm.mo
385 %lang(no) %{__prefix}/*/locale/no/LC_MESSAGES/rpm.mo
386 %lang(pl) %{__prefix}/*/locale/pl/LC_MESSAGES/rpm.mo
387 %lang(pt) %{__prefix}/*/locale/pt/LC_MESSAGES/rpm.mo
388 %lang(pt_BR) %{__prefix}/*/locale/pt_BR/LC_MESSAGES/rpm.mo
389 %lang(ro) %{__prefix}/*/locale/ro/LC_MESSAGES/rpm.mo
390 %lang(ru) %{__prefix}/*/locale/ru/LC_MESSAGES/rpm.mo
391 %lang(sk) %{__prefix}/*/locale/sk/LC_MESSAGES/rpm.mo
392 %lang(sl) %{__prefix}/*/locale/sl/LC_MESSAGES/rpm.mo
393 %lang(sr) %{__prefix}/*/locale/sr/LC_MESSAGES/rpm.mo
394 %lang(sv) %{__prefix}/*/locale/sv/LC_MESSAGES/rpm.mo
395 %lang(tr) %{__prefix}/*/locale/tr/LC_MESSAGES/rpm.mo
397 %{__prefix}%{__share}/man/man1/gendiff.1*
398 %{__prefix}%{__share}/man/man8/rpm.8*
399 %{__prefix}%{__share}/man/man8/rpm2cpio.8*
400 %lang(pl) %{__prefix}%{__share}/man/pl/man[18]/*.[18]*
401 %lang(ru) %{__prefix}%{__share}/man/ru/man[18]/*.[18]*
402 %lang(sk) %{__prefix}%{__share}/man/sk/man[18]/*.[18]*
405 %defattr(-,root,root)
406 %dir %{__prefix}/src/@RPMCANONVENDOR@
407 %dir %{__prefix}/src/@RPMCANONVENDOR@/BUILD
408 %dir %{__prefix}/src/@RPMCANONVENDOR@/SPECS
409 %dir %{__prefix}/src/@RPMCANONVENDOR@/SOURCES
410 %dir %{__prefix}/src/@RPMCANONVENDOR@/SRPMS
411 %dir %{__prefix}/src/@RPMCANONVENDOR@/RPMS
412 %{__prefix}/src/@RPMCANONVENDOR@/RPMS/*
413 %rpmattr %{__prefix}/bin/rpmbuild
414 %rpmattr %{__prefix}/lib/rpm/brp-*
415 %rpmattr %{__prefix}/lib/rpm/check-prereqs
416 %rpmattr %{__prefix}/lib/rpm/config.site
417 %rpmattr %{__prefix}/lib/rpm/cpanflute
418 %rpmattr %{__prefix}/lib/rpm/cross-build
419 %rpmattr %{__prefix}/lib/rpm/find-lang.sh
420 %rpmattr %{__prefix}/lib/rpm/find-prov.pl
421 %rpmattr %{__prefix}/lib/rpm/find-provides
422 %rpmattr %{__prefix}/lib/rpm/find-provides.perl
423 %rpmattr %{__prefix}/lib/rpm/find-req.pl
424 %rpmattr %{__prefix}/lib/rpm/find-requires
425 %rpmattr %{__prefix}/lib/rpm/find-requires.perl
426 %rpmattr %{__prefix}/lib/rpm/get_magic.pl
427 %rpmattr %{__prefix}/lib/rpm/getpo.sh
428 %rpmattr %{__prefix}/lib/rpm/http.req
429 %rpmattr %{__prefix}/lib/rpm/javadeps
430 %rpmattr %{__prefix}/lib/rpm/magic.prov
431 %rpmattr %{__prefix}/lib/rpm/magic.req
432 %rpmattr %{__prefix}/lib/rpm/perl.prov
433 %rpmattr %{__prefix}/lib/rpm/perl.req
434 %rpmattr %{__prefix}/lib/rpm/rpm[bt]
435 %rpmattr %{__prefix}/lib/rpm/rpmdiff
436 %rpmattr %{__prefix}/lib/rpm/rpmdiff.cgi
437 %rpmattr %{__prefix}/lib/rpm/u_pkg.sh
438 %rpmattr %{__prefix}/lib/rpm/vpkg-provides.sh
439 %rpmattr %{__prefix}/lib/rpm/vpkg-provides2.sh
441 %{__prefix}%{__share}/man/man8/rpmbuild.8*
443 %if %{with_python_subpackage}
445 %defattr(-,root,root)
446 %{__prefix}/lib/python1.5/site-packages/rpmmodule.so
447 %{__prefix}/lib/python1.5/site-packages/poptmodule.so
450 %if %{with_perl_subpackage}
452 %defattr(-,root,root)
453 %rpmattr %{__prefix}/bin/rpmprune
454 %{perl_sitearch}/auto/*
456 %{perl_sitearch}/RPM.pm
457 %{__prefix}%{__share}/man/man1/rpmprune.1*
458 %{__prefix}%{__share}/man/man3/RPM*
462 %defattr(-,root,root)
464 %doc @WITH_APIDOCS_TARGET@
466 %{__prefix}/include/rpm
467 %{__prefix}/lib/librpm.a
468 %{__prefix}/lib/librpm.la
469 %{__prefix}/lib/librpm.so
470 %{__prefix}/lib/librpmdb.a
471 %{__prefix}/lib/librpmdb.la
472 %{__prefix}/lib/librpmdb.so
473 %{__prefix}/lib/librpmio.a
474 %{__prefix}/lib/librpmio.la
475 %{__prefix}/lib/librpmio.so
476 %{__prefix}/lib/librpmbuild.a
477 %{__prefix}/lib/librpmbuild.la
478 %{__prefix}/lib/librpmbuild.so
481 %defattr(-,root,root)
482 %{__prefix}/lib/libpopt.so.*
483 %{__prefix}%{__share}/man/man3/popt.3*
484 %lang(cs) %{__prefix}/*/locale/cs/LC_MESSAGES/popt.mo
485 %lang(da) %{__prefix}/*/locale/da/LC_MESSAGES/popt.mo
486 %lang(gl) %{__prefix}/*/locale/gl/LC_MESSAGES/popt.mo
487 %lang(hu) %{__prefix}/*/locale/hu/LC_MESSAGES/popt.mo
488 %lang(is) %{__prefix}/*/locale/is/LC_MESSAGES/popt.mo
489 %lang(no) %{__prefix}/*/locale/no/LC_MESSAGES/popt.mo
490 %lang(pt) %{__prefix}/*/locale/pt/LC_MESSAGES/popt.mo
491 %lang(ro) %{__prefix}/*/locale/ro/LC_MESSAGES/popt.mo
492 %lang(ru) %{__prefix}/*/locale/ru/LC_MESSAGES/popt.mo
493 %lang(sk) %{__prefix}/*/locale/sk/LC_MESSAGES/popt.mo
494 %lang(sl) %{__prefix}/*/locale/sl/LC_MESSAGES/popt.mo
495 %lang(sv) %{__prefix}/*/locale/sv/LC_MESSAGES/popt.mo
496 %lang(tr) %{__prefix}/*/locale/tr/LC_MESSAGES/popt.mo
497 %lang(uk) %{__prefix}/*/locale/uk/LC_MESSAGES/popt.mo
498 %lang(wa) %{__prefix}/*/locale/wa/LC_MESSAGES/popt.mo
499 %lang(zh_CN) %{__prefix}/*/locale/zh_CN.GB2312/LC_MESSAGES/popt.mo
501 # XXX These may end up in popt-devel but it hardly seems worth the effort now.
502 %{__prefix}/lib/libpopt.a
503 %{__prefix}/lib/libpopt.la
504 %{__prefix}/lib/libpopt.so
505 %{__prefix}/include/popt.h
508 * Mon Feb 19 2001 Jeff Johnson <jbj@redhat.com>
509 - start rpm-4.0.3 with --repackage.