#
# TODO:
-# - learn find-perl-provides to use the __perl macro instead
-# of /usr/bin/perl
-# NOTE: there is no find-perl* now, only perl.{prov,req}
+# - fix perl.req and perl.prov to support _noauto macros
# - use system libmagic not internal libfmagic
#
# Conditional build:
Name: rpm
%define ver 4.3
Version: %{ver}
-Release: 0.%{snap}.1
+Release: 0.%{snap}.2.3
License: GPL
Group: Base
#Source0: ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.2.x/%{name}-%{version}.%{snap}.tar.gz
Source1: %{name}.groups
Source2: %{name}.platform
Source3: %{name}-install-tree
-Source4: %{name}-find-rpm-provides
+#Source4: %{name}-find-rpm-provides
Source5: %{name}-find-spec-bcond
Source6: %{name}-find-lang
-Source7: %{name}-find-provides
-Source8: %{name}-find-requires
+#Source7: %{name}-find-provides
+#Source8: %{name}-find-requires
Source9: %{name}-groups-po.awk
Source10: %{name}-compress-doc
Source11: %{name}-check-files
Source12: %{name}-php-provides
Source13: %{name}-php-requires
Source14: %{name}.macros
-Source15: %{name}-find-provides-wrapper
-Source16: %{name}-find-requires-wrapper
+#Source15: %{name}-find-provides-wrapper
+#Source16: %{name}-find-requires-wrapper
Source30: builder
Source31: adapter.awk
Source32: pldnotify.awk
Patch9: %{name}-python-macros.patch
Patch10: %{name}-gettext-in-header.patch
Patch11: %{name}-compress-doc.patch
-Patch12: %{name}-gettext0.11.patch
Patch13: %{name}-build.patch
Patch14: %{name}-system_libs.patch
Patch15: %{name}-bb-and-short-circuit.patch
Patch19: %{name}-python-fix.patch
Patch20: %{name}-ldconfig-always.patch
Patch21: %{name}-perl_req.patch
-Patch22: %{name}-system_libs_more.patch
-Patch23: %{name}-python_2_3.patch
Patch24: %{name}-no-bin-env.patch
-Patch25: %{name}-specflags.patch
Patch26: %{name}-magic-usesystem.patch
Patch27: %{name}-dontneedutils.patch
-Patch28: %{name}-python-beecrypt.patch
-Patch29: %{name}-man-typos.patch
-Patch30: %{name}-man-pl.patch
-Patch31: %{name}-fdClose-typo.patch
-Patch32: %{name}-userpmdepswrappers.patch
Patch33: %{name}-provides-dont-obsolete.patch
Patch34: %{name}-examplesaredoc.patch
Patch35: %{name}-po.patch
Patch36: %{name}-amd64.patch
Patch37: %{name}-notsc.patch
Patch38: %{name}-hack-norpmlibdep.patch
-Patch39: %{name}-db42.patch
Patch40: %{name}-makefile-no_myLDADD_deps.patch
Patch41: %{name}-libdir64.patch
Patch42: %{name}-libdir-links.patch
-Patch43: %{name}-python-libdir.patch
+Patch43: %{name}-find_required_pkgs_on_build.patch
+Patch44: %{name}-noautoreqprovfiles.patch
URL: http://www.rpm.org/
Icon: rpm.gif
BuildRequires: autoconf >= 2.52
BuildRequires: rpm-perlprov
BuildRequires: rpm-pythonprov
BuildRequires: zlib-devel
+BuildRequires: libselinux-devel
%if %{with static}
# Require static library only for static build
BuildRequires: beecrypt-static >= %{beecrypt_ver}
#BuildRequires: libmagic-static
BuildRequires: popt-static >= %{reqpopt_ver}
BuildRequires: zlib-static
-BuildRequires: libselinux-devel
%endif
Requires: popt >= %{reqpopt_ver}
Requires: %{name}-lib = %{version}-%{release}
Conflicts: poldek < 0.18.1-16
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-# not needed now (rpm processes rpmlib(*) deps internally) and didn't work
-# anyway (broken: uses obsolete find-provides script, pgrep(??? typo???))
-##define __find_provides %{SOURCE4}
%define _binary_payload w9.gzdio
%define _noPayloadPrefix 1
Requires: bzip2-devel
Requires: db-devel
Requires: elfutils-devel
+Requires: libselinux-devel
Requires: popt-devel >= %{reqpopt_ver}
Requires: zlib-devel
%patch9 -p1
%patch10 -p1
%patch11 -p1
-# OBSOLETE (C)
-#%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
-# 1x1h MERGE WITH 14, no - OBSOLETE
-#%patch22 -p1
-# 3x1h OBSOLETE (already handled in quite well way)
-#%patch23 -p1
%patch24 -p1
sed -e 's/^/@pld@/' %{SOURCE2} >>platform.in
cp -f platform.in macros.pld.in
install %{SOURCE13} scripts/php.req.in
install %{SOURCE33} scripts/perl.prov
cat %{SOURCE14} >> macros.in
-#%patch25 -p1
%patch26 -p1
%patch27 -p1
-# obsolete?
-#%patch28 -p1
-# OBSOLETE
-#%patch29 -p1
-# OBSOLETE
-#%patch30 -p1
-# OBSOLETE
-#%patch31 -p1
-%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
-# OBSOLETE
-#%patch39 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
-# OBSOLETE
-#%patch43 -p1
+%patch43 -p1
+%patch44 -p1
cd scripts;
mv -f perl.req perl.req.in
mv -f perl.prov perl.prov.in
cd ..
-chmod +x %{SOURCE4}
rm -rf zlib libelf db db3 popt rpmdb/db.h
# generate Group translations to *.po
DESTDIR=$RPM_BUILD_ROOT \
pkgbindir="%{_bindir}"
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/vpkg-provides*
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-{prov,req}.pl
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-{provides,requires}.perl
+
install macros.perl $RPM_BUILD_ROOT%{_rpmlibdir}/macros.perl
install macros.python $RPM_BUILD_ROOT%{_rpmlibdir}/macros.python
install macros.php $RPM_BUILD_ROOT%{_rpmlibdir}/macros.php
install %{SOURCE1} doc/manual/groups
install %{SOURCE3} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
-install %{SOURCE4} $RPM_BUILD_ROOT%{_rpmlibdir}/find-rpm-provides
install %{SOURCE5} $RPM_BUILD_ROOT%{_rpmlibdir}/find-spec-bcond
-# 2 following files - to be removed or changed to find-elf-*
-# (to generate only ELF dependencies using objdump)???
-# WARNING: don't even try to use, currently broken by some 64-bit experiments
-install %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/find-provides
-install %{SOURCE8} $RPM_BUILD_ROOT%{_rpmlibdir}/find-requires
install %{SOURCE10} $RPM_BUILD_ROOT%{_rpmlibdir}/compress-doc
install %{SOURCE11} $RPM_BUILD_ROOT%{_rpmlibdir}/check-files
-install %{SOURCE15} $RPM_BUILD_ROOT%{_rpmlibdir}/find-provides-wrapper
-install %{SOURCE16} $RPM_BUILD_ROOT%{_rpmlibdir}/find-requires-wrapper
install scripts/find-php* $RPM_BUILD_ROOT%{_rpmlibdir}
install scripts/php.{prov,req} $RPM_BUILD_ROOT%{_rpmlibdir}
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles <<EOF
-# global list of files (name regexps) which don't generate Provides
+# global list of files (shell patterns) which don't generate Provides
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov <<EOF
# global list of capabilities (regexps) not to be used in Provides
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles <<EOF
-# global list of files (name regexps) which don't generate Requires
-/usr/src/examples/.*
-/usr/share/doc/.*
+# global list of files (shell patterns) which don't generate Requires
+/usr/src/examples/*
+/usr/share/doc/*
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq <<EOF
# global list of capabilities (regexps) not to be used in Requires
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqdep <<EOF
-# global list of capabilities (SONAME, perl(module), php(module) regexps)
+# global list of capabilities (SONAME, perl(module), php(module) shell patterns)
# which don't generate dependencies on package NAMES
libGL.so.1
libGLU.so.1
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/rpm/noauto*
%attr(755,root,root) %{_rpmlibdir}/compress-doc
%attr(755,root,root) %{_rpmlibdir}/cross-build
-%attr(755,root,root) %{_rpmlibdir}/find-provides
-%attr(755,root,root) %{_rpmlibdir}/find-provides-wrapper
-%attr(755,root,root) %{_rpmlibdir}/find-requires
-%attr(755,root,root) %{_rpmlibdir}/find-requires-wrapper
-%attr(755,root,root) %{_rpmlibdir}/find-rpm-provides
+#%attr(755,root,root) %{_rpmlibdir}/find-provides
+#%attr(755,root,root) %{_rpmlibdir}/find-provides-wrapper
+#%attr(755,root,root) %{_rpmlibdir}/find-requires
+#%attr(755,root,root) %{_rpmlibdir}/find-requires-wrapper
+#%attr(755,root,root) %{_rpmlibdir}/find-rpm-provides
%attr(755,root,root) %{_rpmlibdir}/find-spec-bcond
%attr(755,root,root) %{_rpmlibdir}/find-lang.sh
%attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
%attr(755,root,root) %{_rpmlibdir}/magic.prov
%attr(755,root,root) %{_rpmlibdir}/magic.req
%attr(755,root,root) %{_rpmlibdir}/u_pkg.sh
-%attr(755,root,root) %{_rpmlibdir}/vpkg-provides.sh
-%attr(755,root,root) %{_rpmlibdir}/vpkg-provides2.sh
+#%attr(755,root,root) %{_rpmlibdir}/vpkg-provides.sh
+#%attr(755,root,root) %{_rpmlibdir}/vpkg-provides2.sh
%attr(755,root,root) %{_rpmlibdir}/rpmb
%attr(755,root,root) %{_rpmlibdir}/rpmt
%{_rpmlibdir}/noarch-*
%attr(755,root,root) %{_rpmlibdir}/perl.*
#%attr(755,root,root) %{_rpmlibdir}/perldeps.pl
#%attr(755,root,root) %{_rpmlibdir}/find-perl-*
-%attr(755,root,root) %{_rpmlibdir}/find-*.perl
-%attr(755,root,root) %{_rpmlibdir}/find-prov.pl
-%attr(755,root,root) %{_rpmlibdir}/find-req.pl
+#%attr(755,root,root) %{_rpmlibdir}/find-*.perl
+#%attr(755,root,root) %{_rpmlibdir}/find-prov.pl
+#%attr(755,root,root) %{_rpmlibdir}/find-req.pl
%attr(755,root,root) %{_rpmlibdir}/get_magic.pl
%files pythonprov