From 24b1f498de2be74196ac72500aba423a90dc075a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Sat, 3 Oct 2020 10:49:17 +0200 Subject: [PATCH] - up to 4.16.0 - python 2 no longer supported --- create-build-tree-after-parse.patch | 30 ------------------ rpm-scripts-closefds.patch | 15 +++++++-- rpm.spec | 48 ++++++++++++++--------------- x32.patch | 30 +++++++++++++----- 4 files changed, 58 insertions(+), 65 deletions(-) delete mode 100644 create-build-tree-after-parse.patch diff --git a/create-build-tree-after-parse.patch b/create-build-tree-after-parse.patch deleted file mode 100644 index f81468a..0000000 --- a/create-build-tree-after-parse.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- rpm-4.15.1/rpmbuild.c~ 2019-06-26 16:17:31.000000000 +0200 -+++ rpm-4.15.1/rpmbuild.c 2020-01-13 23:29:36.442259031 +0100 -@@ -435,13 +435,6 @@ - if (ba->buildRootOverride) - buildRootURL = rpmGenPath(NULL, ba->buildRootOverride, NULL); - -- /* Create build tree if necessary */ -- const char * buildtree = "%{_topdir}:%{_specdir}:%{_sourcedir}:%{_builddir}:%{_rpmdir}:%{_srcrpmdir}:%{_buildrootdir}"; -- const char * rootdir = rpmtsRootDir(ts); -- if (rpmMkdirs(!rstreq(rootdir, "/") ? rootdir : NULL , buildtree)) { -- goto exit; -- } -- - if (buildMode == 't') { - char *srcdir = NULL, *dir; - -@@ -508,6 +501,13 @@ - goto exit; - } - -+ /* Create build tree if necessary */ -+ const char * buildtree = "%{_topdir}:%{_specdir}:%{_sourcedir}:%{_builddir}:%{_rpmdir}:%{_srcrpmdir}:%{_buildrootdir}"; -+ const char * rootdir = rpmtsRootDir(ts); -+ if (rpmMkdirs(!rstreq(rootdir, "/") ? rootdir : NULL , buildtree)) { -+ goto exit; -+ } -+ - if ((rc = rpmSpecBuild(ts, spec, ba))) { - goto exit; - } diff --git a/rpm-scripts-closefds.patch b/rpm-scripts-closefds.patch index 84c3d29..6be392e 100644 --- a/rpm-scripts-closefds.patch +++ b/rpm-scripts-closefds.patch @@ -1,6 +1,15 @@ ---- rpm-4.1/lib/rpminstall.c.wiget Mon Sep 16 21:06:08 2002 -+++ rpm-4.1/lib/rpminstall.c Thu Sep 19 00:03:36 2002 -@@ -126,8 +126,15 @@ +--- rpm-4.16.0/lib/rpminstall.c.orig 2020-05-28 12:04:25.040136702 +0200 ++++ rpm-4.16.0/lib/rpminstall.c 2020-10-03 09:46:49.369707250 +0200 +@@ -4,6 +4,8 @@ + + #include "system.h" + ++#include ++ + #include + #include + #include /* rpmReadPackageFile, vercmp etc */ +@@ -114,8 +116,15 @@ Fclose(fd); fd = NULL; } diff --git a/rpm.spec b/rpm.spec index ee2a2aa..973a6c1 100644 --- a/rpm.spec +++ b/rpm.spec @@ -5,7 +5,7 @@ # # Conditional build: %bcond_without apidocs # don't generate documentation with doxygen -%bcond_without python2 # don't build python bindings +%bcond_with python2 # don't build python bindings %bcond_without python3 # don't build python bindings %bcond_without plugins # build plugins %bcond_without recommends_tags # build without Recommends tag (bootstrapping) @@ -13,7 +13,7 @@ %define db_ver 5.3.28.0 %define popt_ver 1.15 %define openssl_ver 1.1.1d -%define sover 9.0.1 +%define sover 9.1.0 Summary: RPM Package Manager Summary(de.UTF-8): RPM Packet-Manager @@ -23,13 +23,13 @@ Summary(pt_BR.UTF-8): Gerenciador de pacotes RPM Summary(ru.UTF-8): Менеджер пакетов от RPM Summary(uk.UTF-8): Менеджер пакетів від RPM Name: rpm -Version: 4.15.1 +Version: 4.16.0 Release: 0.1 Epoch: 1 License: GPL v2 / LGPL v2.1 Group: Base -Source0: http://ftp.rpm.org/releases/rpm-4.15.x/%{name}-%{version}.tar.bz2 -# Source0-md5: ed72147451a5ed93b2a48e2f8f5413c3 +Source0: http://ftp.rpm.org/releases/rpm-4.16.x/%{name}-%{version}.tar.bz2 +# Source0-md5: 434e166a812e35ef181f6dd176326920 Source1: ftp://ftp.pld-linux.org/dists/th/PLD-3.0-Th-GPG-key.asc # Source1-md5: 23914bb49fafe7153cee87126d966461 Source2: macros.local @@ -70,7 +70,6 @@ Patch15: x32.patch Patch16: %{name}-add-compress-doc.patch Patch17: rpm5-db-compat.patch Patch18: python-internal-build.patch -Patch19: create-build-tree-after-parse.patch URL: https://rpm.org/ BuildRequires: db-devel >= %{db_ver} BuildRequires: autoconf >= 2.63 @@ -94,8 +93,8 @@ BuildRequires: ossp-uuid-devel BuildRequires: patch >= 2.2 BuildRequires: popt-devel >= %{popt_ver} %{?with_python2:BuildRequires: python-devel >= 1:2.3} -%{?with_python3:BuildRequires: python3-devel} BuildRequires: python-modules >= 1:2.3 +%{?with_python3:BuildRequires: python3-devel} %if %{with python2} || %{with python3} BuildRequires: rpm-pythonprov %endif @@ -242,8 +241,8 @@ Summary(ru.UTF-8): Хедеры и библиотеки для программ, Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm Group: Development/Libraries Requires: %{name}-lib = %{epoch}:%{version}-%{release} -Requires: db-devel >= %{db_ver} Requires: bzip2-devel +Requires: db-devel >= %{db_ver} Requires: elfutils-devel Requires: libmagic-devel Requires: openssl-devel >= %{openssl_ver} @@ -475,7 +474,8 @@ programs that will manipulate RPM packages and databases. %description -n python3-rpm -l pl.UTF-8 Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w -Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki RPM-a. +Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki +RPM-a. Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w Pythonie 3 programy manipulujące pakietami i bazami danych rpm. @@ -490,7 +490,7 @@ Python 3 para manipular pacotes e bancos de dados RPM. %package plugin-audit Summary: Plugin for logging audit events on package operations -Group: System/Base +Group: Base Requires: %{name}-lib = %{epoch}:%{version}-%{release} %description plugin-audit @@ -498,7 +498,7 @@ Plugin for libaudit support %package plugin-syslog Summary: Plugin for syslog functionality -Group: System/Base +Group: Base Requires: %{name}-lib = %{epoch}:%{version}-%{release} %description plugin-syslog @@ -506,7 +506,7 @@ This plugin exports RPM actions to the system log. %package plugin-systemd-inhibit Summary: Plugin for systemd inhibit functionality -Group: System/Base +Group: Base Requires: %{name}-lib = %{epoch}:%{version}-%{release} %description plugin-systemd-inhibit @@ -584,7 +584,6 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze %patch16 -p1 %patch17 -p1 %patch18 -p1 -%patch19 -p1 install %{SOURCE16} scripts/perl.prov.in @@ -596,7 +595,7 @@ awk -f %{SOURCE6} %{SOURCE5} install %{SOURCE17} tools/rpmdb_checkversion.c install %{SOURCE18} tools/rpmdb_reset.c -%{__sed} -i -e '1s,/usr/bin/python,%{__python},' scripts/pythondistdeps.py +%{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py %build %{__libtoolize} @@ -823,6 +822,7 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %{_mandir}/man8/rpmdb.8* %{_mandir}/man8/rpmkeys.8* %{_mandir}/man8/rpm-misc.8* +%{?with_plugins:%{_mandir}/man8/rpm-plugins.8*} %lang(fr) %{_mandir}/fr/man8/rpm.8* %lang(ja) %{_mandir}/ja/man8/rpm.8* %lang(ko) %{_mandir}/ko/man8/rpm.8* @@ -877,6 +877,8 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %attr(755,root,root) %{_rpmlibdir}/dbupgrade.sh %attr(755,root,root) %{_rpmlibdir}/rpmdb_checkversion %attr(755,root,root) %{_rpmlibdir}/rpmdb_reset +%attr(755,root,root) %{_rpmlibdir}/rpmdb_dump +%attr(755,root,root) %{_rpmlibdir}/rpmdb_load # valgrind suppression file for rpm %{_rpmlibdir}/rpm.supp @@ -919,10 +921,10 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %attr(755,root,root) %{_bindir}/rpmgraph %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh %attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh -%attr(755,root,root) %{_rpmlibdir}/rpmdb_loadcvt %attr(755,root,root) %{_rpmlibdir}/tgpg %attr(755,root,root) %{_rpmlibdir}/debugedit %attr(755,root,root) %{_rpmlibdir}/rpmdeps +%{_mandir}/man8/rpm2archive.8* %{_mandir}/man8/rpm2cpio.8* %{_mandir}/man8/rpmdeps.8* %{_mandir}/man8/rpmgraph.8* @@ -962,18 +964,11 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %attr(755,root,root) %{_rpmlibdir}/check-prereqs %attr(755,root,root) %{_rpmlibdir}/check-rpaths %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker -%attr(755,root,root) %{_rpmlibdir}/debuginfo.prov -%attr(755,root,root) %{_rpmlibdir}/desktop-file.prov %attr(755,root,root) %{_rpmlibdir}/find-provides %attr(755,root,root) %{_rpmlibdir}/find-requires -%attr(755,root,root) %{_rpmlibdir}/metainfo.prov -%attr(755,root,root) %{_rpmlibdir}/ocaml-find-provides.sh -%attr(755,root,root) %{_rpmlibdir}/ocaml-find-requires.sh +%attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh %attr(755,root,root) %{_rpmlibdir}/script.req %attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix -# Fedora has this in -build, but shouldn't this be in -devel? -%attr(755,root,root) %{_rpmlibdir}/config.guess -%attr(755,root,root) %{_rpmlibdir}/config.sub %dir %{_rpmlibdir}/fileattrs %{_rpmlibdir}/fileattrs/debuginfo.attr @@ -1007,7 +1002,7 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %files pythonprov %defattr(644,root,root,755) -%attr(755,root,root) %{_rpmlibdir}/pythondeps.sh +#%attr(755,root,root) %{_rpmlibdir}/pythondeps.sh %attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py %if %{with python2} @@ -1033,10 +1028,12 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %files plugin-audit %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so +%{_mandir}/man8/rpm-plugin-audit.8* %files plugin-syslog %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so +%{_mandir}/man8/rpm-plugin-syslog.8* %files plugin-systemd-inhibit %defattr(644,root,root,755) @@ -1046,14 +1043,17 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %files plugin-ima %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so +%{_mandir}/man8/rpm-plugin-ima.8* %files plugin-prioreset %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so +%{_mandir}/man8/rpm-plugin-prioreset.8* %files plugin-selinux %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so +%{_mandir}/man8/rpm-plugin-selinux.8* %endif %files sign diff --git a/x32.patch b/x32.patch index fa742bd..3edc36d 100644 --- a/x32.patch +++ b/x32.patch @@ -180,14 +180,6 @@ diff -ur rpm-4.15.1.orig/tools/elfdeps.c rpm-4.15.1/tools/elfdeps.c return marker; } ---- rpm-4.15.1/fileattrs/python.attr~ 2019-06-26 23:17:31.000000000 +0900 -+++ rpm-4.15.1/fileattrs/python.attr 2020-01-04 23:33:40.929651751 +0900 -@@ -1,4 +1,4 @@ - %__python_provides %{_rpmconfigdir}/pythondeps.sh --provides - %__python_requires %{_rpmconfigdir}/pythondeps.sh --requires --%__python_path ((/lib(64)?/python[[:digit:]]\\.[[:digit:]]+/.*\\.(py[oc]?|so))|(^%{_bindir}/python[[:digit:]]\\.[[:digit:]]+))$ -+%__python_path ((/lib(64|x32)?/python[[:digit:]]\\.[[:digit:]]+/.*\\.(py[oc]?|so))|(^%{_bindir}/python[[:digit:]]\\.[[:digit:]]+))$ - %__python_magic [Pp]ython.*(executable|byte-compiled) --- rpm-4.15.1/fileattrs/pythondist.attr~ 2019-06-26 23:17:31.000000000 +0900 +++ rpm-4.15.1/fileattrs/pythondist.attr 2020-01-04 23:34:05.680366882 +0900 @@ -1,3 +1,3 @@ @@ -195,3 +187,25 @@ diff -ur rpm-4.15.1.orig/tools/elfdeps.c rpm-4.15.1/tools/elfdeps.c %__pythondist_requires %{_rpmconfigdir}/pythondistdeps.py --requires -%__pythondist_path /lib(64)?/python[[:digit:]]\\.[[:digit:]]+/site-packages/[^/]+\\.(dist-info|egg-info|egg-link)$ +%__pythondist_path /lib(64|x32)?/python[[:digit:]]\\.[[:digit:]]+/site-packages/[^/]+\\.(dist-info|egg-info|egg-link)$ +--- rpm-4.16.0/fileattrs/python.attr.orig 2020-08-31 11:14:07.991087349 +0200 ++++ rpm-4.16.0/fileattrs/python.attr 2020-10-03 10:47:16.560360859 +0200 +@@ -14,14 +14,15 @@ + %__python_requires() %{lua: + -- Match buildroot paths of the form + -- /PATH/OF/BUILDROOT/usr/lib/pythonMAJOR.MINOR/ and +- -- /PATH/OF/BUILDROOT/usr/lib64/pythonMAJOR.MINOR/ ++ -- /PATH/OF/BUILDROOT/usr/lib64/pythonMAJOR.MINOR/ and ++ -- /PATH/OF/BUILDROOT/usr/libx32/pythonMAJOR.MINOR/ + -- generating a line of the form: + -- python(abi) = MAJOR.MINOR + local path = rpm.expand('%1') +- if path:match('/usr/lib%d*/python%d+%.%d+/.*') then +- local requires = path:gsub('.*/usr/lib%d*/python(%d+%.%d+)/.*', 'python(abi) = %1') ++ if path:match('/usr/lib%w*/python%d+%.%d+/.*') then ++ local requires = path:gsub('.*/usr/lib%w*/python(%d+%.%d+)/.*', 'python(abi) = %1') + print(requires) + end + } + +-%__python_path ^((%{_prefix}/lib(64)?/python[[:digit:]]+\\.[[:digit:]]+/.*\\.(py[oc]?|so))|(%{_bindir}/python[[:digit:]]+\\.[[:digit:]]+))$ ++%__python_path ^((%{_prefix}/lib(64|x32)?/python[[:digit:]]+\\.[[:digit:]]+/.*\\.(py[oc]?|so))|(%{_bindir}/python[[:digit:]]+\\.[[:digit:]]+))$ -- 2.43.0