| Message ID | 212239fdc34e812c1e827917d5db83fecac2a3f3.1769148163.git.liezhi.yang@windriver.com |
|---|---|
| State | Changes Requested |
| Headers | show |
| Series | [v3,1/2] package_rpm.bbclass: Drop external dependency generator to support rpm 6 | expand |
On Fri Jan 23, 2026 at 7:13 AM CET, Robert Yang via lists.openembedded.org wrote: > From: Robert Yang <liezhi.yang@windriver.com> > > * Add a tag to SRC_URI so that there will be errors when only change the > filename during upgrade it, as suggested by Alexander. > > * Rebase the following patch: > - 0001-Add-a-color-setting-for-mips64_n32-binaries.patch > - 0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch > - 0001-Do-not-read-config-files-from-HOME.patch > - 0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch > - 0001-When-cross-installing-execute-package-scriptlets-wit.patch > - 0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch > - 0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch > - 0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch > - 0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch > - 0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch > > * Remove backported patch 0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch > > * Add the following 2 patches: > - 0001-tools-elfdeps.cc-Remove-format-module.patch > There is no format until gcc 13.1, so remove the format module to make it > work on hosts such as Ubuntu 22.04. > > - 0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch > Fixed: > GPG check FAILED > > * Add scdoc-native to DEPENDS to fix do_configure error for both native and > target: > Could not find SCDOC using the following names: scdoc > > Note, both target and native need scdoc-native, it is used for generating the > manual, the man pages in *man/* are scdoc sources > > * Add /etc/rpm to nativesdk-rpm to fix: > ERROR: nativesdk-rpm-1_6.0.1-r0 do_package: QA Issue: nativesdk-rpm: > Files/directories were installed but not shipped in any package: > /etc > /etc/rpm > > * Test info: > PACKAGE_CLASSES = "package_rpm" > $ bitbake core-image-sato world > $ bitbake core-image-sato -cpopulate_sdk > > Signed-off-by: Robert Yang <liezhi.yang@windriver.com> > --- Hi Robert, Thanks for your patch. Some tests are failing after this upgrade, you can see them with "bitbake core-image-full-cmdline:do_testimage": AssertionError: 1 != 0 : dnf --repofrompath=oe-testimage-repo-qemux86_64,http://192.168.7.1:41395/qemux86_64 --repofrompath=oe-testimage-repo-noarch,http://192.168.7.1:41395/noarch --repofrompath=oe-testimage-repo-x86_64_x32,http://192.168.7.1:41395/x86_64_x32 --nogpgcheck install --installroot=/home/root/chroot/test -v -y --rpmverbosity=debug busybox ... %post(busybox-1.37.0-r0.x86_64_x32): execv(/bin/sh) pid 624 error: failed to exec scriptlet interpreter /bin/sh: No such file or directory %post(busybox-1.37.0-r0.x86_64_x32): waitpid(624) rc 624 status 7f00 warning: %post(busybox-1.37.0-r0.x86_64_x32) scriptlet failed, exit status 127 Error in POSTIN scriptlet in rpm package busybox Installing : libc6-2.42+git0+453e6b8dba-r1.x86_64_x32 3/4 https://autobuilder.yoctoproject.org/valkyrie/#/builders/11/builds/3059 https://autobuilder.yoctoproject.org/valkyrie/#/builders/4/builds/3107 https://autobuilder.yoctoproject.org/valkyrie/#/builders/16/builds/3127 https://autobuilder.yoctoproject.org/valkyrie/#/builders/19/builds/3100 Can you have a look at these tests? Thanks, Mathieu
Hi Mathieu, On 1/27/26 20:27, Mathieu Dubois-Briand wrote: > On Fri Jan 23, 2026 at 7:13 AM CET, Robert Yang via lists.openembedded.org wrote: >> From: Robert Yang <liezhi.yang@windriver.com> >> >> * Add a tag to SRC_URI so that there will be errors when only change the >> filename during upgrade it, as suggested by Alexander. >> >> * Rebase the following patch: >> - 0001-Add-a-color-setting-for-mips64_n32-binaries.patch >> - 0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch >> - 0001-Do-not-read-config-files-from-HOME.patch >> - 0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch >> - 0001-When-cross-installing-execute-package-scriptlets-wit.patch >> - 0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch >> - 0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch >> - 0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch >> - 0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch >> - 0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch >> >> * Remove backported patch 0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch >> >> * Add the following 2 patches: >> - 0001-tools-elfdeps.cc-Remove-format-module.patch >> There is no format until gcc 13.1, so remove the format module to make it >> work on hosts such as Ubuntu 22.04. >> >> - 0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch >> Fixed: >> GPG check FAILED >> >> * Add scdoc-native to DEPENDS to fix do_configure error for both native and >> target: >> Could not find SCDOC using the following names: scdoc >> >> Note, both target and native need scdoc-native, it is used for generating the >> manual, the man pages in *man/* are scdoc sources >> >> * Add /etc/rpm to nativesdk-rpm to fix: >> ERROR: nativesdk-rpm-1_6.0.1-r0 do_package: QA Issue: nativesdk-rpm: >> Files/directories were installed but not shipped in any package: >> /etc >> /etc/rpm >> >> * Test info: >> PACKAGE_CLASSES = "package_rpm" >> $ bitbake core-image-sato world >> $ bitbake core-image-sato -cpopulate_sdk >> >> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> >> --- > > Hi Robert, > > Thanks for your patch. > > Some tests are failing after this upgrade, you can see them with > "bitbake core-image-full-cmdline:do_testimage": > > AssertionError: 1 != 0 : dnf --repofrompath=oe-testimage-repo-qemux86_64,http://192.168.7.1:41395/qemux86_64 --repofrompath=oe-testimage-repo-noarch,http://192.168.7.1:41395/noarch --repofrompath=oe-testimage-repo-x86_64_x32,http://192.168.7.1:41395/x86_64_x32 --nogpgcheck install --installroot=/home/root/chroot/test -v -y --rpmverbosity=debug busybox > ... > %post(busybox-1.37.0-r0.x86_64_x32): execv(/bin/sh) pid 624 > error: failed to exec scriptlet interpreter /bin/sh: No such file or directory > %post(busybox-1.37.0-r0.x86_64_x32): waitpid(624) rc 624 status 7f00 > warning: %post(busybox-1.37.0-r0.x86_64_x32) scriptlet failed, exit status 127 > > Error in POSTIN scriptlet in rpm package busybox > Installing : libc6-2.42+git0+453e6b8dba-r1.x86_64_x32 3/4 I found the root cause, it is because busybox and libc6 depends on each other, busybox' elf files depends on libc6, and libc6's postin depends on busybox' /bin/sh, the do_rootfs works well is because dnf-native has set RPM_NO_CHROOT_FOR_SCRIPTS=1, but it would be failed for a fresh rootfs. In rpm 4.20.1, it let the installed files' Requires win, so it installed busybox firstly, but in rpm 6.0.1, it let the postin's Requires win since postin would run immediately after the files are installed, this does make sense, so it installed busybox (which provides /bin/sh required by libc6' postin) firstly, then we got the errors. I couldn't find which commit made this change because a lot of files and functions are refactored during 4.20.1 and 6.0.0 (not .1), I also tried bisect, but failed because a lot of do_patch or do_configure/do_compile failures for each build. For libc6's the postin is: #!/bin/sh if [ x"$D" = "x" ]; then if [ -x /sbin/ldconfig ]; then /sbin/ldconfig ; fi fi This doesn't make sense for lib6 since there is no /bin/sh or ldconfig when libc6 is not ready, so we can just remove libc6's postin to fix the problem. I will send a V4 for it if no objections. // Robert > > https://autobuilder.yoctoproject.org/valkyrie/#/builders/11/builds/3059 > https://autobuilder.yoctoproject.org/valkyrie/#/builders/4/builds/3107 > https://autobuilder.yoctoproject.org/valkyrie/#/builders/16/builds/3127 > https://autobuilder.yoctoproject.org/valkyrie/#/builders/19/builds/3100 > > Can you have a look at these tests? > > Thanks, > Mathieu >
I had blocked by another issue in the past week, the rpm 4.20.1 couldn't find
any requires/provides on pkg-config files (.pc), but for rpm 6.0.1,
qemuarm64 and qemux86 can find them, but qemux-64 can't, so there
are do_rootfs errors for qemuarm64 and qemux86 when install the
dev pkgs, such as:
Problem 1: package python3-ptest-3.14.2-r0.cortexa15t2hf_neon from oe-repo
requires python3-dev, but none of the providers can be instal
led
- conflicting requests
- nothing provides /usr/bin/pkg-config needed by
python3-dev-3.14.2-r0.cortexa15t2hf_neon from oe-repo
Problem 2: package libglib-2.0-ptest-1:2.86.3-r0.cortexa15t2hf_neon from
oe-repo requires glib-2.0-dev, but none of the providers can be
installed
- conflicting requests
- nothing provides /usr/bin/pkg-config needed by
libglib-2.0-dev-1:2.86.3-r0.cortexa15t2hf_neon from oe-repo
(try to add '--skip-broken' to skip uninstallable packages or
'--setopt=optional_metadata_types=filelists' to load additional filelists m
etadata)
I finally found the root cause and fixed that, this is because the macros
(_lib and _libdir) for rpmbuild is built from rpm-native, they may not work
for target recipes, the fix is passing the correct macros to rpmbuild
when do_package_write_rpm:
diff --git a/meta/classes-global/package_rpm.bbclass
b/meta/classes-global/package_rpm.bbclass
index 30696aa45f..526ac57982 100644
--- a/meta/classes-global/package_rpm.bbclass
+++ b/meta/classes-global/package_rpm.bbclass
@@ -622,6 +622,8 @@ python do_package_rpm () {
cmd = rpmbuild
cmd = cmd + " --noclean --nodeps --short-circuit --target " + pkgarch + "
--buildroot " + pkgd
cmd = cmd + " --define '_topdir " + workdir + "' --define '_rpmdir " +
pkgwritedir + "'"
+ cmd = cmd + " --define '_lib ${BASELIB}'"
+ cmd = cmd + " --define '_libdir ${libdir}'"
cmd = cmd + " --define '_builddir " + d.getVar('B') + "'"
cmd = cmd + " --define '_build_name_fmt
%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'"
cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'"
I will send the patches after more testing.
// Robert
On 2/2/26 21:01, Robert Yang wrote:
> Hi Mathieu,
>
> On 1/27/26 20:27, Mathieu Dubois-Briand wrote:
>> On Fri Jan 23, 2026 at 7:13 AM CET, Robert Yang via lists.openembedded.org wrote:
>>> From: Robert Yang <liezhi.yang@windriver.com>
>>>
>>> * Add a tag to SRC_URI so that there will be errors when only change the
>>> filename during upgrade it, as suggested by Alexander.
>>>
>>> * Rebase the following patch:
>>> - 0001-Add-a-color-setting-for-mips64_n32-binaries.patch
>>> - 0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch
>>> - 0001-Do-not-read-config-files-from-HOME.patch
>>> - 0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch
>>> - 0001-When-cross-installing-execute-package-scriptlets-wit.patch
>>> - 0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch
>>> - 0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch
>>> - 0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch
>>> - 0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch
>>> - 0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch
>>>
>>> * Remove backported patch 0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch
>>>
>>> * Add the following 2 patches:
>>> - 0001-tools-elfdeps.cc-Remove-format-module.patch
>>> There is no format until gcc 13.1, so remove the format module to make it
>>> work on hosts such as Ubuntu 22.04.
>>>
>>> - 0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch
>>> Fixed:
>>> GPG check FAILED
>>>
>>> * Add scdoc-native to DEPENDS to fix do_configure error for both native and
>>> target:
>>> Could not find SCDOC using the following names: scdoc
>>>
>>> Note, both target and native need scdoc-native, it is used for generating the
>>> manual, the man pages in *man/* are scdoc sources
>>>
>>> * Add /etc/rpm to nativesdk-rpm to fix:
>>> ERROR: nativesdk-rpm-1_6.0.1-r0 do_package: QA Issue: nativesdk-rpm:
>>> Files/directories were installed but not shipped in any package:
>>> /etc
>>> /etc/rpm
>>>
>>> * Test info:
>>> PACKAGE_CLASSES = "package_rpm"
>>> $ bitbake core-image-sato world
>>> $ bitbake core-image-sato -cpopulate_sdk
>>>
>>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>>> ---
>>
>> Hi Robert,
>>
>> Thanks for your patch.
>>
>> Some tests are failing after this upgrade, you can see them with
>> "bitbake core-image-full-cmdline:do_testimage":
>>
>> AssertionError: 1 != 0 : dnf --repofrompath=oe-testimage-repo-
>> qemux86_64,http://192.168.7.1:41395/qemux86_64 --repofrompath=oe-testimage-
>> repo-noarch,http://192.168.7.1:41395/noarch --repofrompath=oe-testimage-repo-
>> x86_64_x32,http://192.168.7.1:41395/x86_64_x32 --nogpgcheck install --
>> installroot=/home/root/chroot/test -v -y --rpmverbosity=debug busybox
>> ...
>> %post(busybox-1.37.0-r0.x86_64_x32): execv(/bin/sh) pid 624
>> error: failed to exec scriptlet interpreter /bin/sh: No such file or directory
>> %post(busybox-1.37.0-r0.x86_64_x32): waitpid(624) rc 624 status 7f00
>> warning: %post(busybox-1.37.0-r0.x86_64_x32) scriptlet failed, exit status 127
>>
>> Error in POSTIN scriptlet in rpm package busybox
>> Installing : libc6-2.42+git0+453e6b8dba-r1.x86_64_x32 3/4
>
> I found the root cause, it is because busybox and libc6 depends on each other,
> busybox' elf files depends on libc6, and libc6's postin depends on busybox'
> /bin/sh, the do_rootfs works well is because dnf-native has set
> RPM_NO_CHROOT_FOR_SCRIPTS=1, but it would be failed for a fresh rootfs.
>
> In rpm 4.20.1, it let the installed files' Requires win, so it installed busybox
> firstly, but in rpm 6.0.1, it let the postin's Requires win since postin would
> run immediately after the files are installed, this does make sense, so it
> installed busybox (which provides /bin/sh required by libc6' postin) firstly,
> then we got the errors. I couldn't find which commit made this change because
> a lot of files and functions are refactored during 4.20.1 and 6.0.0 (not .1),
> I also tried bisect, but failed because a lot of do_patch or
> do_configure/do_compile failures for each build.
>
> For libc6's the postin is:
>
> #!/bin/sh
> if [ x"$D" = "x" ]; then
> if [ -x /sbin/ldconfig ]; then /sbin/ldconfig ; fi
> fi
>
> This doesn't make sense for lib6 since there is no /bin/sh or ldconfig when
> libc6 is not ready, so we can just remove libc6's postin to fix the problem.
>
> I will send a V4 for it if no objections.
>
> // Robert
>
>>
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/11/builds/3059
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/4/builds/3107
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/16/builds/3127
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/19/builds/3100
>>
>> Can you have a look at these tests?
>>
>> Thanks,
>> Mathieu
>>
>
diff --git a/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch b/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch index 769d7b3409..1bba3c0306 100644 --- a/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch +++ b/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch @@ -5,16 +5,19 @@ Subject: [PATCH] Add a color setting for mips64_n32 binaries Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +Rebased to 6.0.1 +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - build/rpmfc.c | 4 ++++ + build/rpmfc.cc | 4 ++++ rpmrc.in | 2 ++ 2 files changed, 6 insertions(+) -diff --git a/build/rpmfc.c b/build/rpmfc.c -index 86dd36d14..df421a23f 100644 ---- a/build/rpmfc.c -+++ b/build/rpmfc.c -@@ -716,6 +716,7 @@ static int rpmfcHelper(rpmfc fc, int *fnx, int nfn, const char *proto, +diff --git a/build/rpmfc.cc b/build/rpmfc.cc +index 833e56fa8..d50a3407f 100644 +--- a/build/rpmfc.cc ++++ b/build/rpmfc.cc +@@ -690,6 +690,7 @@ static int rpmfcHelper(rpmfc fc, int *fnx, int nfn, const char *proto, static const struct rpmfcTokens_s rpmfcTokens[] = { { "directory", RPMFC_INCLUDE }, @@ -22,7 +25,7 @@ index 86dd36d14..df421a23f 100644 { "ELF 32-bit", RPMFC_ELF32|RPMFC_INCLUDE }, { "ELF 64-bit", RPMFC_ELF64|RPMFC_INCLUDE }, -@@ -1258,6 +1259,9 @@ static uint32_t getElfColor(const char *fn) +@@ -1191,6 +1192,9 @@ static uint32_t getElfColor(const char *fn) color = 0; break; } @@ -33,10 +36,10 @@ index 86dd36d14..df421a23f 100644 if (elf) elf_end(elf); diff --git a/rpmrc.in b/rpmrc.in -index 8646a966b..7349fdfd3 100644 +index 8fd0d7ee1..4cc52ceb3 100644 --- a/rpmrc.in +++ b/rpmrc.in -@@ -142,6 +142,8 @@ archcolor: mipsr6el 1 +@@ -152,6 +152,8 @@ archcolor: mipsr6el 1 archcolor: mips64r6 2 archcolor: mips64r6el 2 diff --git a/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch b/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch deleted file mode 100644 index 412e1c146d..0000000000 --- a/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch +++ /dev/null @@ -1,46 +0,0 @@ -From e14502834fe6a9c6c9a439401ac3d2c8fd979267 Mon Sep 17 00:00:00 2001 -From: Robert Yang <liezhi.yang@windriver.com> -Date: Sun, 8 Jun 2025 00:36:38 -0700 -Subject: [PATCH] CMakeLists.txt: Improve checking for CFLAGS - -The previous log wasn't 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 compiler-supports${flag} will make it more clear: --- Performing Test compiler-supports-fno-strict-overflow --- Performing Test compiler-supports-fno-strict-overflow - Success --- Performing Test compiler-supports-fno-delete-null-pointer-checks --- Performing Test compiler-supports-fno-delete-null-pointer-checks - Success --- Performing Test compiler-supports-fhardened --- Performing Test compiler-supports-fhardened - Failed - -Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/e14502834fe6a9c6c9a439401ac3d2c8fd979267] - -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..f275c396b 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} compiler-supports${flag}) -+ if (compiler-supports${flag}) - add_compile_options(${flag}) - endif() -- unset(found) - endforeach() - - # generated sources diff --git a/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch b/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch index 96a5e14999..ec35b938b0 100644 --- a/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch +++ b/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch @@ -9,16 +9,19 @@ hand produces rpms that way by design. Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +Rebased to 6.0.1 +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - build/pack.c | 4 ---- + build/pack.cc | 4 ---- 1 file changed, 4 deletions(-) -diff --git a/build/pack.c b/build/pack.c -index eb9c7b3f1..fb1f1bed8 100644 ---- a/build/pack.c -+++ b/build/pack.c -@@ -712,10 +712,6 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch - headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16); +diff --git a/build/pack.cc b/build/pack.cc +index 49c9d0a58..b1cda6d75 100644 +--- a/build/pack.cc ++++ b/build/pack.cc +@@ -805,10 +805,6 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch + headerPutBin(pkg->header, RPMTAG_SOURCESIGMD5, spec->sourcePkgId,16); } - if (cheating) { diff --git a/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch b/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch index bfc9a74b6c..3ac6cf796c 100644 --- a/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch +++ b/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch @@ -5,15 +5,18 @@ Subject: [PATCH] Do not read config files from $HOME Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +Rebased to 6.0.1 +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - lib/rpmrc.c | 6 ++---- + lib/rpmrc.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) -diff --git a/lib/rpmrc.c b/lib/rpmrc.c -index 5d778b8b7..dc8d42aeb 100644 ---- a/lib/rpmrc.c -+++ b/lib/rpmrc.c -@@ -485,8 +485,7 @@ static void setDefaults(void) +diff --git a/lib/rpmrc.cc b/lib/rpmrc.cc +index 2b3baeddc..cea6f4bc5 100644 +--- a/lib/rpmrc.cc ++++ b/lib/rpmrc.cc +@@ -390,8 +390,7 @@ static void setDefaults(void) if (!defrcfiles) { defrcfiles = rstrscat(NULL, confdir, "/rpmrc", ":", confdir, "/" RPM_VENDOR "/rpmrc", ":", @@ -23,7 +26,7 @@ index 5d778b8b7..dc8d42aeb 100644 } /* macrofiles may be pre-set from --macros */ -@@ -498,8 +497,7 @@ static void setDefaults(void) +@@ -403,8 +402,7 @@ static void setDefaults(void) confdir, "/" RPM_VENDOR "/macros", ":", SYSCONFDIR "/rpm/macros.*", ":", SYSCONFDIR "/rpm/macros", ":", diff --git a/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch b/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch index d3263896ef..bcc07c1e07 100644 --- a/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch +++ b/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch @@ -8,15 +8,18 @@ We add lots of native stuff into it and scriptlets rely on that. Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +Rebased to 6.0.1 +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - lib/rpmscript.c | 2 +- + lib/rpmscript.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/lib/rpmscript.c b/lib/rpmscript.c -index 060fd8124..4dc6466a8 100644 ---- a/lib/rpmscript.c -+++ b/lib/rpmscript.c -@@ -251,7 +251,7 @@ static void doScriptExec(ARGV_const_t argv, ARGV_const_t prefixes, +diff --git a/lib/rpmscript.cc b/lib/rpmscript.cc +index b75a62085..2d7a4c889 100644 +--- a/lib/rpmscript.cc ++++ b/lib/rpmscript.cc +@@ -260,7 +260,7 @@ static void doScriptExec(ARGV_const_t argv, ARGV_const_t prefixes, if (ipath && ipath[5] != '%') path = ipath; diff --git a/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch b/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch index b71156fe12..b7c68a90bc 100644 --- a/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch +++ b/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch @@ -26,15 +26,16 @@ Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Rebased to 4.20.1 +Rebased to 6.0.1 Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - lib/rpmscript.c | 9 +++++++-- + lib/rpmscript.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) -diff --git a/lib/rpmscript.c b/lib/rpmscript.c -index eb14870b3..1785e8f30 100644 ---- a/lib/rpmscript.c -+++ b/lib/rpmscript.c +diff --git a/lib/rpmscript.cc b/lib/rpmscript.cc +index b75a62085..7d667b7f5 100644 +--- a/lib/rpmscript.cc ++++ b/lib/rpmscript.cc @@ -456,8 +456,7 @@ exit: Fclose(out); /* XXX dup'd STDOUT_FILENO */ diff --git a/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch b/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch index 0c29e5543a..9de291b057 100644 --- a/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch +++ b/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch @@ -1,7 +1,7 @@ From e688eb54fd54d65181e94b854b3568d99cbf3a24 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex@linutronix.de> Date: Tue, 31 Aug 2021 10:37:05 +0200 -Subject: [PATCH] build/pack.c: do not insert payloadflags into .rpm metadata +Subject: [PATCH] build/pack.cc: do not insert payloadflags into .rpm metadata The flags look like '19T56' where 19 is the compression level (deterministic), and 56 is the amount of threads (varies from one @@ -9,15 +9,18 @@ host to the next and breaks reproducibility for .rpm). Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex@linutronix.de> + +Rebased to 6.0.1 +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - build/pack.c | 2 +- + build/pack.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/build/pack.c b/build/pack.c -index fb1f1bed8..45885a6ac 100644 ---- a/build/pack.c -+++ b/build/pack.c -@@ -330,7 +330,7 @@ static char *getIOFlags(Package pkg) +diff --git a/build/pack.cc b/build/pack.cc +index b1cda6d75..1425d27ba 100644 +--- a/build/pack.cc ++++ b/build/pack.cc +@@ -338,7 +338,7 @@ static char *getIOFlags(Package pkg) headerPutString(pkg->header, RPMTAG_PAYLOADCOMPRESSOR, compr); buf = xstrdup(rpmio_flags); buf[s - rpmio_flags] = '\0'; diff --git a/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch b/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch index 7d443ccc6c..b65a7ef81b 100644 --- a/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch +++ b/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch @@ -1,7 +1,7 @@ From ad530868e37f09e9236c085d25a834304750704b Mon Sep 17 00:00:00 2001 From: Changqing Li <changqing.li@windriver.com> Date: Thu, 7 May 2020 17:40:58 +0800 -Subject: [PATCH] lib/transaction.c: fix file conflicts for MIPS64 N32 +Subject: [PATCH] lib/transaction.cc: fix file conflicts for MIPS64 N32 This patch is from: https://github.com/rpm-software-management/rpm/issues/193 @@ -27,15 +27,18 @@ Fixed by performing a 'last-in-wins' resolution when "neither is preferred". Upstream-Status: Submitted <https://github.com/rpm-software-management/rpm/issues/193> Signed-off-by: Changqing Li <changqing.li@windriver.com> + +Rebased to 6.0.1 +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - lib/transaction.c | 13 ++++++++++++- + lib/transaction.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) -diff --git a/lib/transaction.c b/lib/transaction.c -index 5e4414d2a..b1c55bd44 100644 ---- a/lib/transaction.c -+++ b/lib/transaction.c -@@ -400,7 +400,18 @@ static int handleColorConflict(rpmts ts, +diff --git a/lib/transaction.cc b/lib/transaction.cc +index de7cdabb2..697268733 100644 +--- a/lib/transaction.cc ++++ b/lib/transaction.cc +@@ -375,7 +375,18 @@ static int handleColorConflict(rpmts ts, rpmfsSetAction(ofs, ofx, FA_CREATE); rpmfsSetAction(fs, fx, FA_SKIPCOLOR); rConflicts = 0; diff --git a/meta/recipes-devtools/rpm/files/0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch b/meta/recipes-devtools/rpm/files/0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch new file mode 100644 index 0000000000..682c57c1f0 --- /dev/null +++ b/meta/recipes-devtools/rpm/files/0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch @@ -0,0 +1,34 @@ +From 1cb53934b83b794c319813106c9f12d75cce66d2 Mon Sep 17 00:00:00 2001 +From: Robert Yang <liezhi.yang@windriver.com> +Date: Sun, 18 Jan 2026 19:24:42 -0800 +Subject: [PATCH] macros.in: Set _pkgverify_level to digest as RPM 4.20.1 + +Fixed: +$ bitbake core-image-minimal +Package bash-5.3-r0.16.x86_64_v3.rpm is not signed +GPG check FAILED + +Set _pkgverify_level to digest as RPM 4.20.1 can fix the problem. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> +--- + macros.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/macros.in b/macros.in +index 38066f00c..7fe00ad09 100644 +--- a/macros.in ++++ b/macros.in +@@ -680,7 +680,7 @@ Supplements: (%{name} = %{version}-%{release} and langpacks-%{1})\ + # signature require valid signature(s) + # digest require valid digest(s) + # none traditional rpm behavior, nothing required +-%_pkgverify_level all ++%_pkgverify_level digest + + # Disabler flags for package verification (similar to vsflags) + # Set to 0x0 for full compatibility with v4 packages. +-- +2.49.0 + diff --git a/meta/recipes-devtools/rpm/files/0001-tools-elfdeps.cc-Remove-format-module.patch b/meta/recipes-devtools/rpm/files/0001-tools-elfdeps.cc-Remove-format-module.patch new file mode 100644 index 0000000000..1863fcb7b8 --- /dev/null +++ b/meta/recipes-devtools/rpm/files/0001-tools-elfdeps.cc-Remove-format-module.patch @@ -0,0 +1,37 @@ +From 3536ef6bb74144cf9dce10200cd62c2ad9f7cae4 Mon Sep 17 00:00:00 2001 +From: Robert Yang <liezhi.yang@windriver.com> +Date: Thu, 15 Jan 2026 19:36:17 -0800 +Subject: [PATCH] tools/elfdeps.cc: Remove format module + +There is no format until gcc 13.1, so remove the format module to make it work +on hosts such as Ubuntu 22.04. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> +--- + tools/elfdeps.cc | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/tools/elfdeps.cc b/tools/elfdeps.cc +index 17884b24e..33ff8d740 100644 +--- a/tools/elfdeps.cc ++++ b/tools/elfdeps.cc +@@ -1,6 +1,5 @@ + #include "system.h" + +-#include <format> + #include <string> + #include <vector> + +@@ -105,7 +104,7 @@ static void addSoDep(std::vector<std::string> & deps, + if (ver.empty() && marker.empty()) { + addDep(deps, soname); + } else { +- auto dep = std::format("{}({}){}", soname, ver, marker); ++ std::string dep = soname + "(" + ver + ")" + marker; + addDep(deps, dep); + } + } +-- +2.49.0 + diff --git a/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch b/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch index 082fb343c2..758094f9e4 100644 --- a/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch +++ b/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch @@ -9,15 +9,18 @@ from target rootfs instead of its own native sysroot. Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +Rebased to 6.0.1 +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - lib/rpmrc.c | 18 +++++++++++++----- + lib/rpmrc.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) -diff --git a/lib/rpmrc.c b/lib/rpmrc.c -index dc8d42aeb..3f2996850 100644 ---- a/lib/rpmrc.c -+++ b/lib/rpmrc.c -@@ -481,11 +481,14 @@ static void setDefaults(void) +diff --git a/lib/rpmrc.cc b/lib/rpmrc.cc +index cea6f4bc5..e6cf21e1b 100644 +--- a/lib/rpmrc.cc ++++ b/lib/rpmrc.cc +@@ -386,11 +386,14 @@ static void setDefaults(void) userrc = xstrdup(oldrc); } } @@ -33,7 +36,7 @@ index dc8d42aeb..3f2996850 100644 } /* macrofiles may be pre-set from --macros */ -@@ -495,9 +498,9 @@ static void setDefaults(void) +@@ -400,9 +403,9 @@ static void setDefaults(void) confdir, "/platform/%{_target}/macros", ":", confdir, "/fileattrs/*.attr", ":", confdir, "/" RPM_VENDOR "/macros", ":", @@ -46,7 +49,7 @@ index dc8d42aeb..3f2996850 100644 } free(usermacros); -@@ -1142,7 +1145,11 @@ static void read_auxv(void) +@@ -1048,7 +1051,11 @@ static void read_auxv(void) */ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) { @@ -55,11 +58,11 @@ index dc8d42aeb..3f2996850 100644 + if (etcconfdir == NULL) + etcconfdir = ""; + -+ const char * const platform_path = rstrscat(NULL, etcconfdir, SYSCONFDIR "/rpm/platform", NULL); ++ char * const platform_path = rstrscat(NULL, etcconfdir, SYSCONFDIR "/rpm/platform", NULL); static struct utsname un; char * chptr; - canonEntry canon; -@@ -1462,6 +1469,7 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) + int rc; +@@ -1378,6 +1385,7 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) if (arch) *arch = un.machine; if (os) *os = un.sysname; diff --git a/meta/recipes-devtools/rpm/files/0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch b/meta/recipes-devtools/rpm/files/0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch index 00fe19108e..751ef7b096 100644 --- a/meta/recipes-devtools/rpm/files/0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch +++ b/meta/recipes-devtools/rpm/files/0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch @@ -1,7 +1,7 @@ From d8972ff7fa0a30e199144ba135223bf561874e01 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex@linutronix.de> Date: Tue, 16 Jan 2024 09:59:26 +0100 -Subject: [PATCH] rpmio/rpmglob.c: avoid using GLOB_BRACE if undefined by C +Subject: [PATCH] rpmio/rpmglob.cc: avoid using GLOB_BRACE if undefined by C library This addresses musl failures; if there is code out there relying on @@ -11,14 +11,17 @@ This is unlikely to be trivially fixable upstream. Upstream-Status: Inappropriate [reported at https://github.com/rpm-software-management/rpm/issues/2844] Signed-off-by: Alexander Kanavin <alex@linutronix.de> + +Rebased to 6.0.1 +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - rpmio/rpmglob.c | 6 ++++++ + rpmio/rpmglob.cc | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/rpmio/rpmglob.c b/rpmio/rpmglob.c +diff --git a/rpmio/rpmglob.cc b/rpmio/rpmglob.cc index eb439cad8..1eef0b851 100644 ---- a/rpmio/rpmglob.c -+++ b/rpmio/rpmglob.c +--- a/rpmio/rpmglob.cc ++++ b/rpmio/rpmglob.cc @@ -33,6 +33,12 @@ #include "debug.h" diff --git a/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch b/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch index bac2d6331c..28fb5f001b 100644 --- a/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch +++ b/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch @@ -1,7 +1,7 @@ From 452b696ea3e1975ea30cf7a92678aa4b316e6300 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Thu, 10 Jan 2019 18:14:18 +0100 -Subject: [PATCH] rpmscript.c: change logging level around scriptlets to INFO +Subject: [PATCH] rpmscript.cc: change logging level around scriptlets to INFO from DEBUG That way we can debug scriptlet failures without writing lots of @@ -11,15 +11,16 @@ Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Rebased to 4.20.1 +Rebased to 6.0.1 Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - lib/rpmscript.c | 8 ++++---- + lib/rpmscript.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -diff --git a/lib/rpmscript.c b/lib/rpmscript.c -index e9f288ae0..f0c628708 100644 ---- a/lib/rpmscript.c -+++ b/lib/rpmscript.c +diff --git a/lib/rpmscript.cc b/lib/rpmscript.cc +index fe5fc9138..861fd8ca8 100644 +--- a/lib/rpmscript.cc ++++ b/lib/rpmscript.cc @@ -299,7 +299,7 @@ static char * writeScript(const char *cmd, const char *script) if (Ferror(fd)) goto exit; diff --git a/meta/recipes-devtools/rpm/rpm_4.20.1.bb b/meta/recipes-devtools/rpm/rpm_6.0.1.bb similarity index 95% rename from meta/recipes-devtools/rpm/rpm_4.20.1.bb rename to meta/recipes-devtools/rpm/rpm_6.0.1.bb index ba967ec1fa..2a0643d588 100644 --- a/meta/recipes-devtools/rpm/rpm_4.20.1.bb +++ b/meta/recipes-devtools/rpm/rpm_6.0.1.bb @@ -24,7 +24,7 @@ HOMEPAGE = "http://www.rpm.org" LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=066ecde17828e5c8911ec9eae8be78f4" -SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.20.x;protocol=https \ +SRC_URI = "git://github.com/rpm-software-management/rpm;branch=${BPN}-6.0.x;tag=${BP}-release;protocol=https \ file://0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch \ file://0001-Do-not-read-config-files-from-HOME.patch \ file://0001-When-cross-installing-execute-package-scriptlets-wit.patch \ @@ -38,13 +38,14 @@ 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-CMakeLists.txt-Fix-checking-for-CFLAGS.patch \ + file://0001-tools-elfdeps.cc-Remove-format-module.patch \ + file://0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch \ " PE = "1" -SRCREV = "c8dc5ea575a2e9c1488036d12f4b75f6a5a49120" +SRCREV = "58a917a6c5e24e9e8a01976c17d2eee06249b9b6" -DEPENDS = "lua libgcrypt file popt xz bzip2 elfutils python3 sqlite3 zstd" +DEPENDS = "lua libgcrypt file popt xz bzip2 elfutils python3 sqlite3 zstd scdoc-native" DEPENDS:append:class-native = " file-replacement-native bzip2-replacement-native" EXTRA_OECMAKE:append = " -D__CURL:FILEPATH=curl" @@ -151,7 +152,8 @@ do_install:append () { FILES:${PN} += "${libdir}/rpm-plugins/*.so \ " -FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/rpm.sh" +FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/rpm.sh \ + /etc/rpm" FILES:${PN}-dev += "${libdir}/rpm-plugins/*.la \ " @@ -178,6 +180,7 @@ FILES:${PN}-build = "\ ${libdir}/rpm/mkinstalldirs \ ${libdir}/rpm/macros.p* \ ${libdir}/rpm/fileattrs/* \ + ${libdir}/rpm/rpm-setup-autosign \ " FILES:${PN}-sign = "\