Update to 4.19 rc1

This commit is contained in:
Michal Domonkos 2023-09-04 16:26:19 +02:00
parent 033b63dfde
commit b779389deb
8 changed files with 8 additions and 305 deletions

1
.gitignore vendored
View File

@ -59,3 +59,4 @@
/rpm-4.18.90.tar.bz2
/rpm-4.18.91.tar.bz2
/rpm-4.18.92.tar.bz2
/rpm-4.18.99.tar.bz2

View File

@ -1,53 +0,0 @@
From b1c99cc21dd8dc984734cd2a66e48a5676280dee Mon Sep 17 00:00:00 2001
Message-ID: <b1c99cc21dd8dc984734cd2a66e48a5676280dee.1692617135.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Mon, 21 Aug 2023 13:42:43 +0300
Subject: [PATCH] Behave more consistently when target arch %optflags are not
defined
You're about to fall into a deep dark hole, proceed at your own risk.
When building for a target architecture with no defined %optflags
(such as noarch), one would think that %optflags would be empty. Not so in
rpm, instead we get %optflags for the detected architecture, and there
are packages which rely on this behavior. And in this particular dark
corner, buildarchtranslate is not applied so one can get drastically
different %optflags than you'd get without an explicit --target, on the
same system. Which can break builds.
None of this makes any sense whatsoever, but lets at least try to be
consistent about it. When we fall back to detected architecture
%optflags, at least use the ones after buildarchtranslate to return
consistent data within a host.
This supposedly fixes the case where our newly added x86_64
subarchitecture definitions haven't been overridden in vendor config and
somebody's noarch package uses cmake to install data, and falls over due
to nonsensical optflags from rpm. Or something like that.
Initial report: https://bugzilla.redhat.com/show_bug.cgi?id=2231727
---
lib/rpmrc.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/lib/rpmrc.c b/lib/rpmrc.c
index 8a829709b..f8a7aee8c 100644
--- a/lib/rpmrc.c
+++ b/lib/rpmrc.c
@@ -1685,6 +1685,13 @@ static void rpmRebuildTargetVars(rpmrcCtx ctx,
* XXX Make sure that per-arch optflags is initialized correctly.
*/
{ const char *optflags = rpmGetVarArch(ctx, RPMVAR_OPTFLAGS, ca);
+ /*
+ * If not defined for the target arch, fall back to current arch
+ * definitions, with buildarchtranslate applied.
+ */
+ if (optflags == NULL) {
+ optflags = rpmGetVarArch(ctx, RPMVAR_OPTFLAGS, NULL);
+ }
if (optflags != NULL) {
rpmPopMacro(NULL, "optflags");
rpmPushMacro(NULL, "optflags", NULL, optflags, RMIL_RPMRC);
--
2.41.0

View File

@ -1,59 +0,0 @@
From 24f974cff9e9559f3ab308661572740ea432f2a3 Mon Sep 17 00:00:00 2001
Message-ID: <24f974cff9e9559f3ab308661572740ea432f2a3.1692703067.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Tue, 22 Aug 2023 13:42:27 +0300
Subject: [PATCH] Revert recent %_root_prefix macro addition (RhBug:2233454)
Commit cececfb6851234aca3e8d102de1c192c6bdf3e67 introduced %_root_prefix
macro but this clashes with pre-existing use in scl-utils:
https://bugzilla.redhat.com/show_bug.cgi?id=223345:
Just query the value from pkg-config if available and otherwise use
hardcoded value pointing to /usr instead. We don't need an intermediate
global macro for this.
---
CMakeLists.txt | 6 +++++-
macros.in | 3 +--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e40e889f6..9ff85fa99 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -86,7 +86,11 @@ function(makemacros)
set(infodir "\${prefix}/${CMAKE_INSTALL_INFODIR}")
set(mandir "\${prefix}/${CMAKE_INSTALL_MANDIR}")
set(rundir /run)
- set(root_prefix /usr)
+
+ pkg_get_variable(sysusersdir systemd sysusersdir)
+ if (NOT sysusersdir)
+ set(sysusersdir /usr/lib/sysusers.d)
+ endif()
findutil(__7ZIP "7za;7z")
findutil(__BZIP2 bzip2)
diff --git a/macros.in b/macros.in
index 070aa8348..175e475e7 100644
--- a/macros.in
+++ b/macros.in
@@ -957,7 +957,6 @@ Supplements: (%{name} = %{version}-%{release} and langpacks-%{1})\
# Macro(s) slavishly copied from autoconf's config.status.
#
%_prefix @prefix@
-%_root_prefix @root_prefix@
%_exec_prefix %{_prefix}
%_bindir %{_exec_prefix}/bin
%_sbindir %{_exec_prefix}/sbin
@@ -971,7 +970,7 @@ Supplements: (%{name} = %{version}-%{release} and langpacks-%{1})\
%_includedir %{_prefix}/include
%_infodir %{_datadir}/info
%_mandir %{_datadir}/man
-%_sysusersdir %{_root_prefix}/lib/sysusers.d
+%_sysusersdir @sysusersdir@
#==============================================================================
# ---- config.guess platform macros.
--
2.41.0

View File

@ -1,114 +0,0 @@
From bbb289e303d8c72b9e35410e593b8d92b006bec1 Mon Sep 17 00:00:00 2001
Message-ID: <bbb289e303d8c72b9e35410e593b8d92b006bec1.1692703597.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Mon, 14 Aug 2023 12:29:11 +0300
Subject: [PATCH 1/3] Unroll the utility finding loop in cmake for flexibility
+ readability
We need more flexibility than a simple array can provide, and with
all the name munging, it's not particularly obvious as to what
values are set and how. Supposedly no functional changes here.
---
CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++--------------
1 file changed, 57 insertions(+), 22 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1de88245c..30f413028 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -53,6 +53,22 @@ include(GNUInstallDirs)
add_compile_definitions(_GNU_SOURCE)
add_definitions(-D_FILE_OFFSET_BITS=64)
+function(findutil UTIL TRY)
+ list(GET TRY 0 util)
+ find_program(${UTIL}
+ NAMES ${TRY}
+ PATHS ENV MYPATH
+ PATHS /usr/local/bin /usr/bin /bin
+ PATHS /usr/local/sbin /usr/sbin /sbin
+ NO_DEFAULT_PATH
+ )
+ if (NOT ${UTIL})
+ list(GET TRY 0 util)
+ message(DEBUG "${util} not found, assuming /usr/bin/${util}")
+ set(${UTIL} /usr/bin/${util} PARENT_SCOPE)
+ endif()
+endfunction()
+
function(makemacros)
set(prefix ${CMAKE_INSTALL_PREFIX})
set(exec_prefix "\${prefix}")
@@ -72,28 +88,47 @@ function(makemacros)
set(rundir /run)
set(root_prefix /usr)
- set(extutils
- 7zip bzip2 cat chmod chown cp curl file gpg grep gzip id cc ln
- install lrzip lzip xz make mkdir mv patch rm sed tar unzip
- zstd gem git hg bzr quilt ld objdump strip systemd-sysusers
- awk ar as cpp c++
- )
- foreach (util ${extutils})
- string(TOUPPER ${util} UTIL)
- string(REPLACE "-" "_" UTIL ${UTIL})
- string(REPLACE "+" "X" UTIL ${UTIL})
- find_program(__${UTIL} ${util}
- PATHS ENV MYPATH
- PATHS /usr/local/bin /usr/bin /bin
- PATHS /usr/local/sbin /usr/sbin /sbin
- NO_DEFAULT_PATH
- )
- message(INFO ${util} " got " ${UTIL} ": " ${__${UTIL}})
- if (NOT EXISTS ${__${UTIL}})
- message(DEBUG "${util} not found, assuming /usr/bin")
- set(__${UTIL} /usr/bin/${util})
- endif()
- endforeach()
+ findutil(__7ZIP 7zip)
+ findutil(__BZIP2 bzip2)
+ findutil(__CAT cat)
+ findutil(__CHMOD chmod)
+ findutil(__CHOWN chown)
+ findutil(__CP cp)
+ findutil(__CURL curl)
+ findutil(__FILE file)
+ findutil(__GPG gpg)
+ findutil(__GREP grep)
+ findutil(__GZIP gzip)
+ findutil(__ID id)
+ findutil(__CC cc)
+ findutil(__LN ln)
+ findutil(__INSTALL install)
+ findutil(__LRZIP lrzip)
+ findutil(__LZIP lzip)
+ findutil(__XZ xz)
+ findutil(__MAKE make)
+ findutil(__MKDIR mkdir)
+ findutil(__MV mv)
+ findutil(__PATCH patch)
+ findutil(__RM rm)
+ findutil(__SED sed)
+ findutil(__TAR tar)
+ findutil(__UNZIP unzip)
+ findutil(__ZSTD zstd)
+ findutil(__GEM gem)
+ findutil(__GIT git)
+ findutil(__HG hg)
+ findutil(__BZR bzr)
+ findutil(__QUILT quilt)
+ findutil(__LD ld)
+ findutil(__OBJDUMP objdump)
+ findutil(__STRIP strip)
+ findutil(__SYSTEMD_SYSUSERS systemd-sysusers)
+ findutil(__AWK awk)
+ findutil(__AR ar)
+ findutil(__AS as)
+ findutil(__CPP cpp)
+ findutil(__CXX c++)
list(GET db_backends 0 DB_BACKEND)
--
2.41.0

View File

@ -1,34 +0,0 @@
From f9775b454e1969a8d5c8d8b7435817876ed79482 Mon Sep 17 00:00:00 2001
Message-ID: <f9775b454e1969a8d5c8d8b7435817876ed79482.1692703597.git.pmatilai@redhat.com>
In-Reply-To: <bbb289e303d8c72b9e35410e593b8d92b006bec1.1692703597.git.pmatilai@redhat.com>
References: <bbb289e303d8c72b9e35410e593b8d92b006bec1.1692703597.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Mon, 14 Aug 2023 12:31:06 +0300
Subject: [PATCH 2/3] Look for alternative implementations of 7zip, like
autoconf did
Fixes a regression from the cmake transition where we'd just assume 7zip
as the name of the executable when previously we looked through 7zip,
7za and 7a. Resume the former behavior.
Fixes: #2608
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 30f413028..55c1d2169 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,7 +88,7 @@ function(makemacros)
set(rundir /run)
set(root_prefix /usr)
- findutil(__7ZIP 7zip)
+ findutil(__7ZIP "7zip;7za;7z")
findutil(__BZIP2 bzip2)
findutil(__CAT cat)
findutil(__CHMOD chmod)
--
2.41.0

View File

@ -1,37 +0,0 @@
From 095502dc0933731eb5a8e877e1c383b8c5e7af44 Mon Sep 17 00:00:00 2001
Message-ID: <095502dc0933731eb5a8e877e1c383b8c5e7af44.1692703597.git.pmatilai@redhat.com>
In-Reply-To: <bbb289e303d8c72b9e35410e593b8d92b006bec1.1692703597.git.pmatilai@redhat.com>
References: <bbb289e303d8c72b9e35410e593b8d92b006bec1.1692703597.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Wed, 16 Aug 2023 10:18:20 +0300
Subject: [PATCH 3/3] Stop looking for apparently non-existent 7zip command
Since the initial commit 185596818f763af1249f19161f38134ee93092d2, we've
primarily looked for a command named "7zip" but defaulted to 7za when
not found. Looking closer it seems that there never was any command
called 7zip at all, at least in the OSS landscape. So don't default to
something that doesn't even exist, which also means we'll land on an
actually working value if/when 7z[a] doesn't happen to be present at
build-time (there's no other reason for it to be there).
Related to #2608
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 55c1d2169..e40e889f6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,7 +88,7 @@ function(makemacros)
set(rundir /run)
set(root_prefix /usr)
- findutil(__7ZIP "7zip;7za;7z")
+ findutil(__7ZIP "7za;7z")
findutil(__BZIP2 bzip2)
findutil(__CAT cat)
findutil(__CHMOD chmod)
--
2.41.0

View File

@ -25,9 +25,9 @@
%define rpmhome /usr/lib/rpm
%global rpmver 4.18.92
%global rpmver 4.18.99
#global snapver rc1
%global baserelease 3
%global baserelease 1
%global sover 10
%global srcver %{rpmver}%{?snapver:-%{snapver}}
@ -139,11 +139,6 @@ rpm-4.18.92-disable-sysusers.patch
rpm-4.18.90-weak-user-group.patch
# Patches already upstream:
0001-Behave-more-consistently-when-target-arch-optflags-a.patch
0001-Unroll-the-utility-finding-loop-in-cmake-for-flexibi.patch
0002-Look-for-alternative-implementations-of-7zip-like-au.patch
0003-Stop-looking-for-apparently-non-existent-7zip-comman.patch
0001-Revert-recent-_root_prefix-macro-addition-RhBug-2233.patch
# ...
# These are not yet upstream
@ -606,6 +601,7 @@ fi
%{_bindir}/rpmgraph
%{_libdir}/librp*[a-z].so
%{_libdir}/pkgconfig/rpm.pc
%{_libdir}/cmake/rpm/
%{_includedir}/rpm/
%files cron
@ -617,6 +613,9 @@ fi
%doc %{_defaultdocdir}/rpm/API/
%changelog
* Mon Sep 04 2023 Michal Domonkos <mdomonko@redhat.com> - 4.18.99-1
- Update to 4.19 rc1
* Tue Aug 22 2023 Panu Matilainen <pmatilai@redhat.com> - 4.18.92-3
- Fix regression on uncompressing 7zip compressed sources (#2229984)
- Fix a conflict with pre-existing scl-utils %_root_prefix macro (#2233454)

View File

@ -1 +1 @@
SHA512 (rpm-4.18.92.tar.bz2) = 0ff7fed8e2097bb72e8b4f418f2aaec1f063dca9a216b00f4bbbf7957300b0e120678e0a9a0680bb57d385227a3be19e4464cfc55702b2e9ed4e7c81d89cc77a
SHA512 (rpm-4.18.99.tar.bz2) = f40080de2b7c9cf137e7df8fab0985c48334163039cfa5012317e27445ce5602a5edb61964640043faf23502e1a7f96ea4159b0be794aca0b10259906457a099