#
# TODO:
-# - use system libmagic not internal libfmagic
-# - when really needed: _noauto{req,prov} for non-helper-generated deps
+# - consider using system libmagic not internal libfmagic
+# (but internal has different method of passing output)
#
# Conditional build:
%bcond_with static # build static rpmi (not supported at the moment)
%bcond_without doc # don't generate documentation with doxygen
%bcond_without python # don't build python bindings
+%bcond_without selinux # dont enable selinux support
# force_cc - force using __cc other than "%{_target_cpu}-pld-linux-gcc"
# force_cxx - force using __cxx other than "%{_target_cpu}-pld-linux-g++"
# force_cpp - force using __cpp other than "%{_target_cpu}-pld-linux-gcc -E"
-%include /usr/lib/rpm/macros.python
-%define snap 20040107
+%include /usr/lib/rpm/macros.python
+%define snap 20040107
# versions of required libraries
%define reqdb_ver 4.2.50-1
%define reqpopt_ver 1.9
%define beecrypt_ver 3.0.0-0.20030610.1
-%define rpm_macros_rev 1.143
+%define rpm_macros_rev 1.153
Summary: RPM Package Manager
Summary(de): RPM Packet-Manager
Summary(es): Gestor de paquetes RPM
Name: rpm
%define ver 4.3
Version: %{ver}
-Release: 0.%{snap}.11
+Release: 0.%{snap}.23
License: GPL
Group: Base
#Source0: ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.2.x/%{name}-%{version}.%{snap}.tar.gz
Patch36: %{name}-pld-autodep.patch
Patch37: %{name}-rpmsq.patch
Patch38: %{name}-file-readelf.patch
-Patch39: %{name}-pentium3.patch
+Patch39: %{name}-pentiumX.patch
Patch40: %{name}-epoch0.patch
Patch41: %{name}-file-readelf-fix.patch
+Patch42: %{name}-cpuid.patch
+Patch43: %{name}-perl_req-INC_dirs.patch
+Patch44: %{name}-debuginfo.patch
URL: http://www.rpm.org/
Icon: rpm.gif
BuildRequires: autoconf >= 2.52
BuildRequires: gettext-devel >= 0.11.4-2
BuildRequires: elfutils-devel
#BuildRequires: libmagic-devel
-BuildRequires: libselinux-devel
+%{?with_selinux:BuildRequires: libselinux-devel}
+# needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
+BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: patch >= 2.2
BuildRequires: popt-devel >= %{reqpopt_ver}
BuildRequires: glibc-static >= 2.2.94
BuildRequires: elfutils-static
#BuildRequires: libmagic-static
-BuildRequires: libselinux-static
+%{?with_selinux:BuildRequires: libselinux-static}
BuildRequires: popt-static >= %{reqpopt_ver}
BuildRequires: zlib-static
%endif
Requires: bzip2-devel
Requires: db-devel >= %{reqdb_ver}
Requires: elfutils-devel
-Requires: libselinux-devel
+%{?with_selinux:Requires: libselinux-devel}
Requires: popt-devel >= %{reqpopt_ver}
Requires: zlib-devel
%patch21 -p1
sed -e 's/^/@pld@/' %{SOURCE2} >>platform.in
cp -f platform.in macros.pld.in
-echo '%%define __perl_provides /usr/lib/rpm/perl.prov' > macros.perl
-echo '%%define __perl_requires /usr/lib/rpm/perl.req' >> macros.perl
+echo '%%define __perl_provides %%{__perl} /usr/lib/rpm/perl.prov' > macros.perl
+echo '%%define __perl_requires %%{__perl} /usr/lib/rpm/perl.req' >> macros.perl
echo '# obsoleted file' > macros.python
echo '%%define __php_provides /usr/lib/rpm/php.prov' > macros.php
echo '%%define __php_requires /usr/lib/rpm/php.req' >> macros.php
%patch39 -p1
%patch40 -p1
%patch41 -p1
+%patch42 -p1
+%patch43 -p0
+%patch44 -p1
cd scripts;
mv -f perl.req perl.req.in
# config.guess doesn't handle athlon, so we have to change it by hand.
# rpm checks for CPU type at runtime, but it looks better
-sed -e 's|@host@|%{_target_cpu}-%{_target_vendor}-linux-gnu|' \
- -e 's|@host_cpu@|%{_target_cpu}|' macros.in > macros.tmp
+sed -e 's|@host@|%{_target_cpu}-%{_target_vendor}-linux-gnu|' \
+ -e 's|@host_cpu@|%{_target_cpu}|' macros.in > macros.tmp
mv -f macros.tmp macros.in
# pass CC and CXX too in case of building with some older configure macro
%{?with_doc:--with-apidocs} \
%{?with_python:--with-python=auto} \
%{!?with_python:--without-python} \
+ %{!?with_selinux:--without-selinux} \
--without-db
# file_LDFLAGS, debugedit_LDADD - no need to link "file" and "debugedit" statically
install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm
-echo "# customized rpm options - global for host" > \
- $RPM_BUILD_ROOT%{_sysconfdir}/rpmrc
-
-%ifarch i686
-cat >> $RPM_BUILD_ROOT%{_sysconfdir}/rpmrc << EOF
-
-# There is no 'pentium3' arch in PLD dist tree, so we translate it to i686.
-# Comment out the line below if You want to build pentium3 optimized packages.
-buildarchtranslate: pentium3: i686
-EOF
+%ifarch %{ix86}
+ix86re=$(echo "(%{ix86})"|sed 's/ /|/g')
+perl -p -i -e 's/^(buildarchtranslate: '"$ix86re"': ).*/\1%{_target_cpu}/' \
+ $RPM_BUILD_ROOT%{_rpmlibdir}/rpmrc
%endif
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros <<EOF
#
# remove or replace with file_contexts path if you want to use custom
# SELinux file contexts policy instead of one stored in packages payload
-%_install_file_context_path %{nil}
-%_verify_file_context_path %{nil}
+%%_install_file_context_path %%{nil}
+%%_verify_file_context_path %%{nil}
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles <<EOF
%dir %{_sysconfdir}/rpm
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/rpm/macros
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/rpmrc
-
%{_mandir}/man8/rpm.8*
%lang(fr) %{_mandir}/fr/man8/rpm.8*
%lang(ja) %{_mandir}/ja/man8/rpm.8*