X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=rpm.spec;h=2e537c1e93c8dc3457ac668060cd9abbf3b21f59;hp=9f8c2819083cc146efe3ce8c2422314a94e4fe5d;hb=e9576b98b1c166be5e164c20df8d8659bb0431be;hpb=f012e16d7c8e878f15791420ffe2d06a9fd6556a diff --git a/rpm.spec b/rpm.spec index 9f8c281..2e537c1 100644 --- a/rpm.spec +++ b/rpm.spec @@ -16,7 +16,7 @@ %bcond_with neon # build with HTTP/WebDAV support (neon library) %bcond_with sqlite # build with SQLite support %bcond_with system_lua # use system lua -%bcond_with system_pcre # use system pcre +%bcond_without system_pcre # use system pcre %bcond_with keyutils # build with keyutils 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++" @@ -51,14 +51,15 @@ Summary(ru.UTF-8): Менеджер пакетов от RPM Summary(uk.UTF-8): Менеджер пакетів від RPM Name: rpm Version: 5.4.15 -Release: 1 +Release: 39 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 @@ -76,7 +77,7 @@ Source14: %{name}-java-requires # http://svn.pld-linux.org/banner.sh/ Source15: banner.sh Source16: ftp://ftp.pld-linux.org/dists/th/PLD-3.0-Th-GPG-key.asc -# Source16-md5: 08b29584dd349aac9caa7610131a0a88 +# Source16-md5: 23914bb49fafe7153cee87126d966461 Source17: %{name}-mimetypedeps Source18: macros.local Source19: %{name}.noautocompressdoc @@ -90,6 +91,7 @@ Source27: macros.lang Source28: %{name}db_reset.c Source29: dbupgrade.sh Source30: rubygems.rb +Source31: gem_helper.rb Patch0: %{name}-branch.patch Patch1: %{name}-man_pl.patch Patch2: %{name}-popt-aliases.patch @@ -159,7 +161,6 @@ Patch67: %{name}-repackage-dont-force-max-compression.patch Patch70: python-%{name}sense-missingok.patch Patch71: %{name}-changelog-encoding.patch Patch72: %{name}-preserve-tag-type.patch -Patch73: gem_helper-spec-arg.patch Patch74: %{name}-fix-internal-lua-build.patch Patch75: %{name}-double_check_file_deps.patch Patch77: %{name}-lua-expat.patch @@ -167,6 +168,21 @@ Patch78: %{name}-double_check_unpackaged_subdirs.patch Patch79: %{name}-rpmspec.patch 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 +Patch85: rpm-CVE-2013-6435.patch +Patch86: rpm-CVE-2014-8118.patch +Patch87: %{name}-file-output-for-ELF.patch +Patch88: %{name}-rpmtdnext.patch +Patch89: disable-header-verification.patch +Patch90: %{name}-cppcompat.patch +Patch91: py-disable-fetch.patch +Patch92: fast_python_deps.patch +Patch93: python2_explicit.patch +Patch94: do_not_write_before_macro_buffer.patch +Patch95: rpm-python-spec-header.patch +Patch96: skip-ldconfig-optimization.patch # Patches imported from Mandriva @@ -276,6 +292,17 @@ 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 + +Patch1050: python-libx32.patch URL: http://rpm5.org/ BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_pkgver} @@ -289,7 +316,7 @@ BuildRequires: automake >= 1.4 BuildRequires: beecrypt-devel >= %{beecrypt_ver} BuildRequires: bzip2-devel >= 1.0.2-17 BuildRequires: elfutils-devel >= 0.108 -BuildRequires: gettext-devel >= 0.19.2 +BuildRequires: gettext-tools >= 0.19.2 %{?with_keyutils:BuildRequires: keyutils-devel} BuildRequires: libmagic-devel %if %{with selinux} @@ -362,9 +389,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 @@ -645,7 +679,7 @@ Summary(uk.UTF-8): Скрипти та утиліти, необхідні для Group: Applications/File Requires(pretrans): coreutils Requires(pretrans): findutils -Requires: %{name}-build-macros >= 1.656 +Requires: %{name}-build-macros >= 1.712 Requires: %{name}-utils = %{version}-%{release} Requires: /bin/id Requires: awk @@ -746,7 +780,7 @@ Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napi Group: Applications/File Requires: %{name} = %{version}-%{release} Requires: python -Requires: python-distribute +Requires: python-setuptools Requires: python-modules %description pythonprov @@ -839,7 +873,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 @@ -914,7 +953,6 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze %patch70 -p1 %patch71 -p1 %patch72 -p1 -%patch73 -p1 %patch74 -p1 %patch75 -p1 %patch77 -p0 @@ -922,6 +960,15 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze %patch79 -p1 %patch80 -p1 %patch81 -p0 +%patch82 -p1 +%patch84 -p1 +%patch85 -p1 +%patch86 -p1 +%patch87 -p1 +%patch88 -p1 +%patch89 -p1 +%patch90 -p1 +%patch91 -p1 %patch1000 -p1 %patch1001 -p1 @@ -968,12 +1015,26 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze %patch1045 -p1 %patch1046 -p1 %patch1047 -p1 +%patch1048 -p1 +%patch1049 -p1 + +%patch83 -p1 +%patch92 -p1 +%patch93 -p1 +%patch94 -p1 +%patch95 -p1 +%patch96 -p1 + +%patch1050 -p1 install %{SOURCE2} macros/pld.in install %{SOURCE8} scripts/php.prov.in install %{SOURCE9} scripts/php.req.in install %{SOURCE11} scripts/perl.prov.in cp -p %{SOURCE30} scripts/rubygems.rb +cp -p %{SOURCE31} scripts/gem_helper.rb + +rm scripts/find-php* %{__mv} -f scripts/perl.req{,.in} @@ -1025,7 +1086,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 \ @@ -1072,69 +1133,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 @@ -1199,7 +1283,6 @@ install %{SOURCE4} $RPM_BUILD_ROOT%{_rpmlibdir}/find-spec-bcond install %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/compress-doc install %{SOURCE12} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh install %{SOURCE14} $RPM_BUILD_ROOT%{_rpmlibdir}/java-find-requires -install scripts/find-php* $RPM_BUILD_ROOT%{_rpmlibdir} install scripts/php.{prov,req} $RPM_BUILD_ROOT%{_rpmlibdir} cp -p %{SOURCE25} $RPM_BUILD_ROOT%{_rpmlibdir}/php.req.php install %{SOURCE17} $RPM_BUILD_ROOT%{_rpmlibdir}/mimetypedeps.sh @@ -1234,6 +1317,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 @@ -1347,7 +1433,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* @@ -1367,10 +1453,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 @@ -1380,6 +1467,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) @@ -1508,7 +1596,6 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %{_rpmlibdir}/macros.d/cmake %{_rpmlibdir}/macros.d/gstreamer %{_rpmlibdir}/macros.d/java -%{_rpmlibdir}/macros.d/kernel %{_rpmlibdir}/macros.d/libtool %{_rpmlibdir}/macros.d/mono %{_rpmlibdir}/macros.d/perl @@ -1566,8 +1653,9 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %files php-pearprov %defattr(644,root,root,755) -%attr(755,root,root) %{_rpmlibdir}/php* -%attr(755,root,root) %{_rpmlibdir}/find-php* +%attr(755,root,root) %{_rpmlibdir}/php.prov +%attr(755,root,root) %{_rpmlibdir}/php.req +%attr(755,root,root) %{_rpmlibdir}/php.req.php %if %{with python} %files -n python-rpm