X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=rpm.spec;h=0f292e18b55e35ae8465860be2c4116c3d024cc5;hp=bebd8eedb845038f016260994d0e86ff3ed86c5d;hb=eb5300f2d1c5002e57b51de5924b9a21e615b8b3;hpb=3e70c06ed986197fa88aebd4714d39bcdb8bd72b diff --git a/rpm.spec b/rpm.spec index bebd8ee..0f292e1 100644 --- a/rpm.spec +++ b/rpm.spec @@ -51,14 +51,15 @@ Summary(ru.UTF-8): Менеджер пакетов от RPM Summary(uk.UTF-8): Менеджер пакетів від RPM Name: rpm Version: 5.4.15 -Release: 6 +Release: 7 License: LGPL v2.1 Group: Base # http://rpm5.org/files/rpm/rpm-5.4/rpm-5.4.15-0.20140824.src.rpm Source0: %{name}-%{version}.tar.gz # Source0-md5: 4067f83ca8b5bf1a21e443c0cff3efa0 -Source100: cpu-os-macros.tar.gz -# Source100-md5: 928034a5bdceb398881bc14b5f29973b +# See README.cpu-os-macros how to update cpu-os-macros.a +Source100: cpu-os-macros.a +Source101: README.cpu-os-macros Source1: %{name}.groups Source2: macros.pld.in Source3: %{name}-install-tree @@ -169,6 +170,7 @@ Patch80: %{name}-revert-gpg-argv-parsing.patch Patch81: %{name}-perl-magic.patch Patch82: %{name}-5.4.15-use-DSA-sig.patch Patch83: %{name}-ignore-missing-macro-files.patch +Patch84: x32.patch # Patches imported from Mandriva @@ -278,6 +280,15 @@ Patch1044: %{name}-5.4.12-fix-rpmlua-print.patch Patch1045: %{name}-5.4.12-fix-rpmpython-module-import-init.patch Patch1046: %{name}-5.4.12-truncate-output-buffer-after-use.patch Patch1047: %{name}-5.4.13-perl-bindings-do-not-use-xmalloc.patch +# proyvind: +# there's a rpmdbchk tool I wrote a while back, which might help you. although +# the incidents it's able to deal with is rather limited ATM... it might help +# you out, if not and you'll be able to solve yer problem, you could take a +# stab at adding support for fixing your specific problem to the util ;) +# https://abf.io/openmandriva/rpm/raw/master/rpm-5.4.14-rpmdbchk.patch +Patch1048: %{name}-5.4.14-rpmdbchk.patch +# https://abf.io/openmandriva/rpm/raw/master/rpm-5.4.14-no-assert-abort-with-broken-headers.patch +Patch1049: %{name}-5.4.14-no-assert-abort-with-broken-headers.patch URL: http://rpm5.org/ BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_pkgver} @@ -364,9 +375,16 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define x8664 amd64 ia32e x86_64 # stabilize new build environment +%ifnarch x32 %define __newcc %{?force_cc}%{!?force_cc:%{_target_cpu}-pld-linux-gcc} %define __newcxx %{?force_cxx}%{!?force_cxx:%{_target_cpu}-pld-linux-g++} %define __newcpp %{?force_cpp}%{!?force_cpp:%{_target_cpu}-pld-linux-gcc -E} +%else +# x32 is a very special case +%define __newcc %{?force_cc}%{!?force_cc:x86_64-pld-linux-gnux32-gcc} +%define __newcxx %{?force_cxx}%{!?force_cxx:x86_64-pld-linux-gnux32-g++} +%define __newcpp %{?force_cpp}%{!?force_cpp:x86_64-pld-linux-gnux32-gcc -E} +%endif %define _rpmlibdir /usr/lib/rpm %define _noautocompressdoc RPM-GPG-KEY @@ -841,7 +859,12 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze źrodeł RPM-a przez doxygen. %prep -%setup -q -n %{name}-%{version}%{?subver} -a100 +%setup -q -n %{name}-%{version}%{?subver} +install -d platform +cd platform +ar x %{SOURCE100} +cd - + #patch0 -p1 %patch1 -p1 %patch2 -p1 @@ -924,6 +947,7 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze %patch80 -p1 %patch81 -p0 %patch82 -p1 +%patch84 -p1 %patch1000 -p1 %patch1001 -p1 @@ -970,6 +994,8 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze %patch1045 -p1 %patch1046 -p1 %patch1047 -p1 +%patch1048 -p1 +%patch1049 -p1 %patch83 -p1 @@ -1030,7 +1056,7 @@ sed -i \ --with-lua=%{!?with_system_lua:internal}%{?with_system_lua:external} \ --with-lzma=external \ --with-neon=%{?with_neon:external}%{!?with_neon:no} \ - --with-path-macros='%{_rpmlibdir}/macros:%{_rpmlibdir}/%%{_target}/macros:%{_rpmlibdir}/macros.d/pld:%{_rpmlibdir}/macros.build:%{_sysconfdir}/rpm/macros.*:%{_sysconfdir}/rpm/macros:%{_sysconfdir}/rpm/%%{_target}/macros:%{_sysconfdir}/rpm/macros.d/*.macros:~/etc/.rpmmacros:~/.rpmmacros' \ + --with-path-macros='%{_rpmlibdir}/macros:%{_rpmlibdir}/macros.d/pld:%{_rpmlibdir}/%%{_target}/macros:%{_rpmlibdir}/macros.build:%{_sysconfdir}/rpm/macros.*:%{_sysconfdir}/rpm/macros:%{_sysconfdir}/rpm/%%{_target}/macros:%{_sysconfdir}/rpm/macros.d/*.macros:~/etc/.rpmmacros:~/.rpmmacros' \ --without-path-versioned \ --with-pcre=%{!?with_system_pcre:internal}%{?with_system_pcre:external} \ --with-popt=external \ @@ -1077,69 +1103,92 @@ install %{SOURCE16} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key pkgconfigdir=%{_pkgconfigdir} \ DESTDIR=$RPM_BUILD_ROOT -# install ARCH macros -install -d $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux -install cpu-os-macros/noarch-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux/macros - -%ifarch %{ix86} -install -d $RPM_BUILD_ROOT%{_rpmlibdir}/{i386,i486,i586,i686,athlon,pentium3,pentium4}-linux -install cpu-os-macros/athlon-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/athlon-linux/macros -install cpu-os-macros/i386-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/i386-linux/macros -install cpu-os-macros/i486-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/i486-linux/macros -install cpu-os-macros/i586-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/i586-linux/macros -install cpu-os-macros/i686-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/i686-linux/macros -install cpu-os-macros/pentium3-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/pentium3-linux/macros -install cpu-os-macros/pentium4-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/pentium4-linux/macros +# install platform macros +for f in platform/*macros; do + bn=${f#*/} + fn=${bn%.macros}/macros + install -m644 $f -D %{buildroot}%{_rpmlibdir}/$fn +done + +# cleanup +%ifnarch %{ix86} %{x8664} x32 +rm $RPM_BUILD_ROOT%{_rpmlibdir}/athlon-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/i386-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/i486-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/i586-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/i686-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/pentium3-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/pentium4-linux/macros %endif -%ifarch %{x8664} -install -d $RPM_BUILD_ROOT%{_rpmlibdir}/{x86_64,ia32e,amd64}-linux -install cpu-os-macros/x86_64-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/x86_64-linux/macros -install cpu-os-macros/ia32e-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/ia32e-linux/macros -install cpu-os-macros/amd64-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/amd64-linux/macros +%ifnarch %{x8664} x32 +rm $RPM_BUILD_ROOT%{_rpmlibdir}/amd64-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/ia32e-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/x32-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/x86_64-linux/macros %endif -%ifarch %{ppc} -install -d $RPM_BUILD_ROOT%{_rpmlibdir}/ppc-linux -install cpu-os-macros/ppc-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/ppc-linux/macros +%ifnarch %{ppc} +rm $RPM_BUILD_ROOT%{_rpmlibdir}/ppc-linux/macros %endif +rm $RPM_BUILD_ROOT%{_rpmlibdir}/alpha*-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/arm*-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/ia64-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/k6-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/mips*-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/ppc*series-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/ppc64*-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/s390*-linux/macros +rm $RPM_BUILD_ROOT%{_rpmlibdir}/sparc*-linux/macros + cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform # first platform file entry can't contain regexps +%ifarch x32 +%{_target_cpu}-%{_target_vendor}-linux-gnux32 +%else %{_target_cpu}-%{_target_vendor}-linux +%endif %ifarch x86_64 x86_64-[^-]*-[Ll]inux(-gnu)? amd64-[^-]*-[Ll]inux(-gnu)? +x32-[^-]*-[Ll]inux(-gnu(x32)?)? %endif %ifarch amd64 amd64-[^-]*-[Ll]inux(-gnu)? x86_64-[^-]*-[Ll]inux(-gnu)? +x32-[^-]*-[Ll]inux(-gnu(x32)?)? %endif %ifarch ia32e ia32e-[^-]*-[Ll]inux(-gnu)? x86_64-[^-]*-[Ll]inux(-gnu)? %endif +%ifarch x32 +x32-[^-]*-[Ll]inux(-gnu(x32)?)? +x86_64-[^-]*-[Ll]inux(-gnu)? +amd64-[^-]*-[Ll]inux(-gnu)? +%endif -%ifarch athlon %{x8664} +%ifarch athlon %{x8664} x32 athlon-[^-]*-[Ll]inux(-gnu)? %endif -%ifarch pentium4 athlon %{x8664} +%ifarch pentium4 athlon %{x8664} x32 pentium4-[^-]*-[Ll]inux(-gnu)? %endif -%ifarch pentium3 pentium4 athlon %{x8664} +%ifarch pentium3 pentium4 athlon %{x8664} x32 pentium3-[^-]*-[Ll]inux(-gnu)? %endif -%ifarch i686 pentium3 pentium4 athlon %{x8664} +%ifarch i686 pentium3 pentium4 athlon %{x8664} x32 i686-[^-]*-[Ll]inux(-gnu)? %endif -%ifarch i586 i686 pentium3 pentium4 athlon %{x8664} +%ifarch i586 i686 pentium3 pentium4 athlon %{x8664} x32 i586-[^-]*-[Ll]inux(-gnu)? %endif -%ifarch i486 i586 i686 pentium3 pentium4 athlon %{x8664} +%ifarch i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32 i486-[^-]*-[Ll]inux(-gnu)? %endif -%ifarch %{ix86} %{x8664} +%ifarch %{ix86} %{x8664} x32 i386-[^-]*-[Ll]inux(-gnu)? %endif @@ -1239,6 +1288,9 @@ for m in gstreamer java mono perl php python; do echo "%%{load:%{_rpmlibdir}/macros.d/$m}" >$RPM_BUILD_ROOT%{_rpmlibdir}/macros.$m done +# moved to rpm-build-macros 1.699 +%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/macros.d/kernel + # for rpm -e|-U --repackage install -d $RPM_BUILD_ROOT/var/{spool/repackage,lock/rpm} touch $RPM_BUILD_ROOT/var/lock/rpm/transaction @@ -1352,7 +1404,7 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %{_rpmlibdir}/macros.d/pld %{_rpmlibdir}/cpuinfo.yaml %{_rpmlibdir}/noarch-* -%ifarch %{ix86} +%ifarch %{ix86} %{x8664} x32 %{_rpmlibdir}/i?86* %{_rpmlibdir}/pentium* %{_rpmlibdir}/athlon* @@ -1372,10 +1424,11 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %ifarch sparc sparc64 %{_rpmlibdir}/sparc* %endif -%ifarch %{x8664} +%ifarch %{x8664} x32 %{_rpmlibdir}/amd64* %{_rpmlibdir}/ia32e* %{_rpmlibdir}/x86_64* +%{_rpmlibdir}/x32* %endif %attr(755,root,root) %{_rpmlibdir}/hrmib-cache @@ -1385,6 +1438,7 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %attr(755,root,root) %{_rpmlibdir}/bin/dbupgrade.sh %attr(755,root,root) %{_rpmlibdir}/bin/rpmdb_checkversion %attr(755,root,root) %{_rpmlibdir}/bin/rpmdb_reset +%attr(755,root,root) %{_rpmlibdir}/bin/rpmdbchk %files base %defattr(644,root,root,755) @@ -1513,8 +1567,6 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %{_rpmlibdir}/macros.d/cmake %{_rpmlibdir}/macros.d/gstreamer %{_rpmlibdir}/macros.d/java -# moved to rpm-build-macros 1.699 -#%{_rpmlibdir}/macros.d/kernel %{_rpmlibdir}/macros.d/libtool %{_rpmlibdir}/macros.d/mono %{_rpmlibdir}/macros.d/perl