]> code.ossystems Code Review - openembedded-core.git/commitdiff
rpm: Ensure compression parallelism isn't coded into rpms
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 29 Sep 2021 12:31:26 +0000 (13:31 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 1 Oct 2021 13:52:24 +0000 (14:52 +0100)
We don't want the compression thread numbers to be encoded into the rpm
since this results in the rpm not being deterministic. Add a patch
from Alex Kanavin which addresses this issue (was queued for rpm 4.17
but we need to fix this with 4.16 too).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch [new file with mode: 0644]
meta/recipes-devtools/rpm/rpm_4.16.1.3.bb

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
new file mode 100644 (file)
index 0000000..79b1682
--- /dev/null
@@ -0,0 +1,28 @@
+From 2d351c666f09cc1b9e368422653fb42ac8b86249 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
+
+The flags look like '19T56' where 19 is the compression level
+(deterministic), and 56 is the amount of threads (varies from one
+host to the next and breaks reproducibility for .rpm).
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ build/pack.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/pack.c b/build/pack.c
+index 932cb213e..b45d0726f 100644
+--- a/build/pack.c
++++ b/build/pack.c
+@@ -328,7 +328,7 @@ static char *getIOFlags(Package pkg)
+           headerPutString(pkg->header, RPMTAG_PAYLOADCOMPRESSOR, compr);
+       buf = xstrdup(rpmio_flags);
+       buf[s - rpmio_flags] = '\0';
+-      headerPutString(pkg->header, RPMTAG_PAYLOADFLAGS, buf+1);
++      headerPutString(pkg->header, RPMTAG_PAYLOADFLAGS, "");
+       free(buf);
+     }
+ exit:
index 189da924366d929356245a3b2d8ed2ad6f14bc88..60181f26c70b379069705af350f7f0b3a48f20f8 100644 (file)
@@ -40,6 +40,7 @@ SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.16.x \
            file://0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch \
            file://0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch \
            file://0001-tools-Add-error.h-for-non-glibc-case.patch \
+           file://0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch \
            "
 
 PE = "1"