rpm: 4.20.0 -> 4.20.1

* Rebased:
  0001-When-cross-installing-execute-package-scriptlets-wit.patch
  0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch

* Removed the one which already merged:
  0001-Set-RPM_PLUGINDIR-in-top-level-CMakeLists.txt.patch

* Added a patch to fix rpm-native build error:
  gcc: error: unrecognized command-line option -fhardened
  0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch

* License-Update: Minor formatting changes as the commit messages said in
  41143b27b6f7320f280aea6014e8f532eb0239d6

(From OE-Core rev: 5d25e1ba4d8850e2c281fc7f24493239bf2f9866)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Robert Yang 2025-06-08 03:43:10 -07:00 committed by Richard Purdie
parent 140fde4c34
commit bcf6af00f4
5 changed files with 89 additions and 83 deletions

View File

@ -0,0 +1,58 @@
From 19f7ef341f19ac5594c7d0113f9eb8224934464a Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Sun, 8 Jun 2025 00:19:06 -0700
Subject: [PATCH] CMakeLists.txt: Fix checking for CFLAGS
The previous code doesn't work because the check_c_compiler_flag() only ran
once because 'found' is in CACHE, here is log:
-- Performing Test found
-- Performing Test found - Success
That would result in:
* All the flags are added when the first one works
* None of the flags is added when the first one doesn't work
We can use "unset(found CACHE)" to fix that, but the log is still not clear:
-- Performing Test found
-- Performing Test found - Success
-- Performing Test found
-- Performing Test found - Success
-- Performing Test found
-- Performing Test found - Failed
Use a new var SUPPORTS_${flag} will make it more clear:
-- Performing Test SUPPORTS_-fno-strict-overflow
-- Performing Test SUPPORTS_-fno-strict-overflow - Success
-- Performing Test SUPPORTS_-fno-delete-null-pointer-checks
-- Performing Test SUPPORTS_-fno-delete-null-pointer-checks - Success
-- Performing Test SUPPORTS_-fhardened
-- Performing Test SUPPORTS_-fhardened - Failed
Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/3796]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
CMakeLists.txt | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 08e3e5274..a7566ab5a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -416,11 +416,10 @@ endif()
# try to ensure some compiler sanity and hardening options where supported
foreach (flag -fno-strict-overflow -fno-delete-null-pointer-checks -fhardened)
- check_c_compiler_flag(${flag} found)
- if (found)
+ check_c_compiler_flag(${flag} SUPPORTS_${flag})
+ if (SUPPORTS_${flag})
add_compile_options(${flag})
endif()
- unset(found)
endforeach()
# generated sources
--
2.49.0

View File

@ -1,57 +0,0 @@
From 2d6beb620896a59cfd685b51a19057e5c5c4ab41 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Thu, 19 Dec 2024 11:54:54 +0800
Subject: [PATCH] Set RPM_PLUGINDIR in top level CMakeLists.txt
We have in macros.in:
%__plugindir @RPM_PLUGINDIR@
This means, if RPM_PLUGINDIR is not set, %__plugindir will be empty.
This in turn results in error message when running 'dnf'.
e.g.,
dnf --help >/dev/null
error: /usr/lib64/rpm/macros: line 1183: Macro %__plugindir has empty body
error: /usr/lib64/rpm/macros: line 1183: Macro %__plugindir has empty body
So we should move this directory setting into the top level CMakeLists.txt.
Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/3496]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
CMakeLists.txt | 3 +++
plugins/CMakeLists.txt | 3 ---
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 758ba73f4..e694b9650 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -453,6 +453,9 @@ if (ENABLE_PYTHON)
add_subdirectory(python)
endif()
+set(RPM_PLUGINDIR ${CMAKE_INSTALL_FULL_LIBDIR}/rpm-plugins
+ CACHE PATH "rpm plugin directory")
+
if (ENABLE_PLUGINS)
add_subdirectory(plugins)
endif()
diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
index a44056fe3..6e61a7c20 100644
--- a/plugins/CMakeLists.txt
+++ b/plugins/CMakeLists.txt
@@ -42,9 +42,6 @@ if (HAVE_UNSHARE)
add_library(unshare MODULE unshare.c)
endif()
-set(RPM_PLUGINDIR ${CMAKE_INSTALL_FULL_LIBDIR}/rpm-plugins
- CACHE PATH "rpm plugin directory")
-
get_property(plugins DIRECTORY PROPERTY BUILDSYSTEM_TARGETS)
foreach(plugin ${plugins})
target_link_libraries(${plugin} PRIVATE librpmio librpm ${Intl_LIBRARIES})
--
2.25.1

View File

@ -24,15 +24,18 @@ Amended 2018-07-03 by Olof Johansson <olofjn@axis.com>:
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Rebased to 4.20.1
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
lib/rpmscript.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
lib/rpmscript.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/rpmscript.c b/lib/rpmscript.c
index 097c9055a..060fd8124 100644
index eb14870b3..1785e8f30 100644
--- a/lib/rpmscript.c
+++ b/lib/rpmscript.c
@@ -447,8 +447,7 @@ exit:
@@ -456,8 +456,7 @@ exit:
Fclose(out); /* XXX dup'd STDOUT_FILENO */
if (fn) {
@ -42,18 +45,17 @@ index 097c9055a..060fd8124 100644
free(fn);
}
free(mline);
@@ -482,7 +481,13 @@ rpmRC rpmScriptRun(rpmScript script, int arg1, int arg2, FD_t scriptFd,
@@ -491,7 +490,13 @@ rpmRC rpmScriptRun(rpmScript script, int arg1, int arg2, FD_t scriptFd,
if (rc != RPMRC_FAIL) {
if (script_type & RPMSCRIPTLET_EXEC) {
- rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, script->nextFileFunc);
+ if (getenv("RPM_NO_CHROOT_FOR_SCRIPTS") != NULL) {
+ rpmChrootOut();
+ rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, script->nextFileFunc);
+ rpmChrootIn();
+ rpmChrootOut();
rc = runExtScript(plugins, prefixes, script, lvl, scriptFd, &args, arg1, arg2);
+ rpmChrootIn();
+ } else {
+ rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, script->nextFileFunc);
+ rc = runExtScript(plugins, prefixes, script, lvl, scriptFd, &args, arg1, arg2);
+ }
} else {
rc = runLuaScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, script->nextFileFunc);
rc = runLuaScript(plugins, prefixes, script, lvl, scriptFd, &args, arg1, arg2);
}

View File

@ -9,15 +9,18 @@ irrelevant noise to rootfs logs.
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Rebased to 4.20.1
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
lib/rpmscript.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/rpmscript.c b/lib/rpmscript.c
index 4dc6466a8..6d3c19d01 100644
index e9f288ae0..f0c628708 100644
--- a/lib/rpmscript.c
+++ b/lib/rpmscript.c
@@ -290,7 +290,7 @@ static char * writeScript(const char *cmd, const char *script)
@@ -299,7 +299,7 @@ static char * writeScript(const char *cmd, const char *script)
if (Ferror(fd))
goto exit;
@ -26,30 +29,30 @@ index 4dc6466a8..6d3c19d01 100644
static const char set_x[] = "set -x\n";
/* Assume failures will be caught by the write below */
Fwrite(set_x, sizeof(set_x[0]), sizeof(set_x)-1, fd);
@@ -322,7 +322,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
@@ -330,7 +330,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
char *mline = NULL;
rpmRC rc = RPMRC_FAIL;
- rpmlog(RPMLOG_DEBUG, "%s: scriptlet start\n", sname);
+ rpmlog(RPMLOG_INFO, "%s: scriptlet start\n", sname);
- rpmlog(RPMLOG_DEBUG, "%s: scriptlet start\n", script->descr);
+ rpmlog(RPMLOG_INFO, "%s: scriptlet start\n", script->descr);
if (script) {
fn = writeScript(*argvp[0], script);
@@ -374,7 +374,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
sname, strerror(errno));
if (script->body) {
fn = writeScript(*argvp[0], script->body);
@@ -382,7 +382,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
script->descr, strerror(errno));
goto exit;
} else if (pid == 0) {/* Child */
- rpmlog(RPMLOG_DEBUG, "%s: execv(%s) pid %d\n",
+ rpmlog(RPMLOG_INFO, "%s: execv(%s) pid %d\n",
sname, *argvp[0], (unsigned)getpid());
script->descr, *argvp[0], (unsigned)getpid());
fclose(in);
@@ -417,7 +417,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
@@ -426,7 +426,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes,
reaped = waitpid(pid, &status, 0);
} while (reaped == -1 && errno == EINTR);
- rpmlog(RPMLOG_DEBUG, "%s: waitpid(%d) rc %d status %x\n",
+ rpmlog(RPMLOG_INFO, "%s: waitpid(%d) rc %d status %x\n",
sname, (unsigned)pid, (unsigned)reaped, status);
script->descr, (unsigned)pid, (unsigned)reaped, status);
if (reaped < 0) {

View File

@ -22,7 +22,7 @@ HOMEPAGE = "http://www.rpm.org"
# libraries are also LGPL - how to express this?
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=c4eec0c20c6034b9407a09945b48a43f"
LIC_FILES_CHKSUM = "file://COPYING;md5=066ecde17828e5c8911ec9eae8be78f4"
SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.20.x;protocol=https \
file://0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch \
@ -38,11 +38,11 @@ SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.20.x;protoc
file://0001-CMakeLists.txt-look-for-lua-with-pkg-config-rather-t.patch \
file://0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch \
file://0001-CMakeLists.txt-set-libdir-to-CMAKE_INSTALL_FULL_LIBD.patch \
file://0001-Set-RPM_PLUGINDIR-in-top-level-CMakeLists.txt.patch \
file://0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch \
"
PE = "1"
SRCREV = "b3323786668cf99bc9aed7e60ccdab0bc25e19da"
SRCREV = "c8dc5ea575a2e9c1488036d12f4b75f6a5a49120"
S = "${WORKDIR}/git"