%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++"
Summary(ru.UTF-8): Менеджер пакетов от RPM
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
-Version: 5.4.15
-Release: 2
+Version: 5.4.16
+Release: 0.1
License: LGPL v2.1
Group: Base
# http://rpm5.org/files/rpm/rpm-5.4/rpm-5.4.15-0.20140824.src.rpm
+# http://rpm5.org/files/rpm/rpm-5.4/SNAPSHOT/rpm-5.4.16-0.20160420.src.rpm
Source0: %{name}-%{version}.tar.gz
-# Source0-md5: 4067f83ca8b5bf1a21e443c0cff3efa0
-Source100: cpu-os-macros.tar.gz
-# Source100-md5: 928034a5bdceb398881bc14b5f29973b
+# Source0-md5: 807a9a78da44218eb836b9348227f5fb
+# 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
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
Patch35: %{name}-namespace-compare.patch
Patch36: %{name}-popt-coreutils.patch
Patch37: %{name}-postun-nofail.patch
-Patch38: %{name}-silence-RPM_CHAR_TYPE.patch
+
Patch39: %{name}-fix-missing-types-in-headers.patch
Patch40: %{name}-fix--p-interpreter-and-empty-script.patch
Patch41: %{name}-db_buffer_small.patch
Patch63: %{name}-pythoneggs.patch
Patch64: %{name}-fix-compress-doc.patch
Patch65: %{name}-parseSpec-skip-empty-tags.patch
-Patch66: %{name}-payload-use-hashed-inode.patch
+
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
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
# Patches imported from Mandriva
Patch1022: %{name}-5.4.5-skip-dependencies-for-character-devices.patch
# status: probably okay to merge
Patch1024: %{name}-5.4.5-rpmfc-apply-python-coloring-from-magic.patch
-# status: probably okay to merge
-Patch1026: %{name}-5.4.10-dont-try-generate-rpmfc-dependencies-from-doc-files.patch
# status: ready
Patch1027: %{name}-5.4.7-fix-generation-of-ruby-abi-provides.patch
# crash reproducable with 'rpm -qa --triggers'
Patch1032: %{name}-5.4.9-rpmpython-fix-input.patch
# status: ready
Patch1033: %{name}-5.4.7-no-seqid_init-on-rdonly-database.patch
-# status: probably ready for merging
-Patch1034: %{name}-5.4.9-avoid-double-slash-in-path-for-dirname-filetrigger-matching.patch
# status: probably ready to merge, discuss on rpm-devel first
Patch1035: %{name}-5.4.9-fix-verify-segfault.patch
# Due to rpmdav/neon being written in a different fashion than other rpmio clients,
Patch1041: %{name}-5.4.9-disable-l10ndir.patch
# status: ready for merge
Patch1042: %{name}-5.4.9-fix-rpm_qa-pattern.patch
-# warning: introduces memory leak
-Patch1043: %{name}-5.4.12-copy-Value-string.patch
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
+
+Patch1050: python-libx32.patch
URL: http://rpm5.org/
BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_pkgver}
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}
%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
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
Group: Applications/File
Requires: %{name} = %{version}-%{release}
Requires: python
-Requires: python-distribute
+Requires: python-setuptools
Requires: python-modules
%description pythonprov
ź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
%patch11 -p1
%endif
%patch12 -p1
-%patch13 -p1
+#%patch13 -p1 NEEDS UPDATING
%patch14 -p0
%patch15 -p1
%patch16 -p1
%patch35 -p1
%patch36 -p1
%patch37 -p1
-%patch38 -p1
+
%patch39 -p1
%patch40 -p1
%{?with_db61:%patch41 -p1}
%patch63 -p1
%patch64 -p1
%patch65 -p1
-%patch66 -p1
+
%patch67 -p1
%patch70 -p1
%patch71 -p1
-%patch72 -p1
-%patch73 -p1
%patch74 -p1
%patch75 -p1
-%patch77 -p0
+%patch77 -p1
%patch78 -p1
%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
%patch1021 -p1
%patch1022 -p1
%patch1024 -p1
-%patch1026 -p1
%patch1027 -p1
%patch1028 -p1
%patch1029 -p1
%patch1031 -p1
%patch1032 -p1
%patch1033 -p1
-%patch1034 -p1
+
%patch1035 -p1
%patch1037 -p1
%patch1038 -p1
%patch1039 -p1
%patch1040 -p1
-# don't delete, may be usefull if jbj descides to enable this again
+# don't delete, may be useful if jbj decides to enable this again
#%patch1041 -p1
%patch1042 -p1
-%patch1043 -p1
-%patch1044 -p1
+
+#%patch1044 -p1 RECHECK
%patch1045 -p1
-%patch1046 -p1
-%patch1047 -p1
+
+%patch1048 -p1
+
+%patch83 -p1
+%patch92 -p1
+%patch93 -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}
--enable-shared \
--enable-static \
%{!?with_apidocs:--without-apidocs} \
+ --with-usecrypto=beecrypt \
--with-beecrypt=external \
+ --with-tomcrypt=no \
--with-bugreport="http://bugs.pld-linux.org/" \
--with-bzip2=external \
--with-db=external \
+ --with-acl=external \
--with-dbapi=db \
--with-file=external \
--with-keyutils=%{?with_keyutils:external}%{!?with_keyutils:no} \
--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
%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-{prov,req}.pl
%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-{provides,requires}.perl
%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
+%if %{without system_lua}
%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/lib/liblua.a
%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/lib/liblua.la
+%endif
%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/mono-find-provides
%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/mono-find-requires
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
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
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
-%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/rpm/*.{la,a,py}
+%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/rpm/*.{la,py}
%endif
# wrong location, not used anyway
%{_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
-%{_rpmlibdir}/macros.d/kernel
%{_rpmlibdir}/macros.d/libtool
%{_rpmlibdir}/macros.d/mono
%{_rpmlibdir}/macros.d/perl
%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