Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
Version: 5.4.15
-Release: 6
+Release: 11
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
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
# Patches imported from Mandriva
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}
%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
ź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
%patch80 -p1
%patch81 -p0
%patch82 -p1
+%patch84 -p1
+%patch85 -p1
+%patch86 -p1
+%patch87 -p1
+%patch88 -p1
+%patch89 -p1
+%patch90 -p1
%patch1000 -p1
%patch1001 -p1
%patch1045 -p1
%patch1046 -p1
%patch1047 -p1
+%patch1048 -p1
+%patch1049 -p1
%patch83 -p1
--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 \
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
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
%{_rpmlibdir}/macros.d/pld
%{_rpmlibdir}/cpuinfo.yaml
%{_rpmlibdir}/noarch-*
-%ifarch %{ix86}
+%ifarch %{ix86} %{x8664} x32
%{_rpmlibdir}/i?86*
%{_rpmlibdir}/pentium*
%{_rpmlibdir}/athlon*
%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
%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)
%{_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