1
0
mirror of https://git.yoctoproject.org/meta-ti synced 2026-06-05 02:11:00 +00:00

linux: add linux-yocto reproducibility patches

Add reproducibility patches from linux-yocto to resolve "buildpaths"
QA errors.

Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
This commit is contained in:
Denys Dmytriyenko
2024-07-15 19:45:39 -04:00
committed by Ryan Eatmon
parent 5d658dc390
commit c56bdd9ffa
4 changed files with 163 additions and 0 deletions
@@ -0,0 +1,46 @@
From 2fca0fd719812ea2ff67630b01355aa80481623e Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Sun, 10 Jul 2022 22:56:53 -0400
Subject: [PATCH] lib/build_OID_registry: fix reproducibility issues
The script build_OID_registry captures the full path of itself
in the generated data. This causes reproduciblity issues as the
path is captured and packaged.
We use the basename of the script instead, and that allows us
to be reprodicible, with slightly less information captured in
the output data (but the generating script can still easily
be found).
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Upstream-Status: Inappropriate
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
lib/build_OID_registry | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/build_OID_registry b/lib/build_OID_registry
index d7fc32ea8ac2..f6de0a7f7457 100755
--- a/lib/build_OID_registry
+++ b/lib/build_OID_registry
@@ -8,6 +8,7 @@
#
use strict;
+use File::Basename;
my @names = ();
my @oids = ();
@@ -35,7 +36,7 @@ close IN_FILE || die;
#
open C_FILE, ">$ARGV[1]" or die;
print C_FILE "/*\n";
-print C_FILE " * Automatically generated by ", $0, ". Do not edit\n";
+print C_FILE " * Automatically generated by ", basename $0, ". Do not edit\n";
print C_FILE " */\n";
#
--
2.25.1
@@ -0,0 +1,55 @@
From a40d2daf2795d89e3ef8af0413b25190558831ec Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Thu, 14 Jul 2022 14:43:46 -0400
Subject: [PATCH] pnmtologo: use relocatable file name
The logo generation utility is capturing the source of the logo
in the generated .c file. The source file is absolute (as passed
by make), so the full path is captured.
This makes the source fail reproducibility tests.
We use basename() to just get the source file name, and use
that in the generated .c file.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Upstream-Status: Inappropriate
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
drivers/video/logo/pnmtologo.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/video/logo/pnmtologo.c b/drivers/video/logo/pnmtologo.c
index ada5ef6e51b7..7527be845443 100644
--- a/drivers/video/logo/pnmtologo.c
+++ b/drivers/video/logo/pnmtologo.c
@@ -13,7 +13,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
-
+#include <libgen.h>
static const char *programname;
static const char *filename;
@@ -223,6 +223,7 @@ static inline int is_equal(struct color c1, struct color c2)
static void write_header(void)
{
+ char *filename_basename = basename(filename);
/* open logo file */
if (outputname) {
out = fopen(outputname, "w");
@@ -235,7 +236,7 @@ static void write_header(void)
fputs("/*\n", out);
fputs(" * DO NOT EDIT THIS FILE!\n", out);
fputs(" *\n", out);
- fprintf(out, " * It was automatically generated from %s\n", filename);
+ fprintf(out, " * It was automatically generated from %s\n", filename_basename);
fputs(" *\n", out);
fprintf(out, " * Linux logo %s\n", logoname);
fputs(" */\n\n", out);
--
2.25.1
@@ -0,0 +1,56 @@
From 0f586f4ee8adacac79b64d1f3d47799a5eb7fbea Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Sun, 10 Jul 2022 21:37:07 -0400
Subject: [PATCH] vt/conmakehash: improve reproducibility
The file generated by conmakehash capture the application
path used to generate the file. While that can be informative,
it varies based on where the kernel was built, as the full
path is captured.
We tweak the application to use a second input as the "capture
name", and then modify the Makefile to pass the basename of
the source, making it reproducible.
This could be improved by using some sort of path mapping,
or the application manipualing argv[1] itself, but for now
this solves the reprodicibility issue.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Upstream-Status: Inappropriate
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
drivers/tty/vt/Makefile | 2 +-
drivers/tty/vt/conmakehash.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/vt/Makefile b/drivers/tty/vt/Makefile
index fe30ce512819..cb51c21b58f9 100644
--- a/drivers/tty/vt/Makefile
+++ b/drivers/tty/vt/Makefile
@@ -15,7 +15,7 @@ clean-files := consolemap_deftbl.c defkeymap.c
hostprogs += conmakehash
quiet_cmd_conmk = CONMK $@
- cmd_conmk = $(obj)/conmakehash $< > $@
+ cmd_conmk = $(obj)/conmakehash $< $(shell basename $<) > $@
$(obj)/consolemap_deftbl.c: $(src)/$(FONTMAPFILE) $(obj)/conmakehash
$(call cmd,conmk)
diff --git a/drivers/tty/vt/conmakehash.c b/drivers/tty/vt/conmakehash.c
index cddd789fe46e..d62510b280e9 100644
--- a/drivers/tty/vt/conmakehash.c
+++ b/drivers/tty/vt/conmakehash.c
@@ -253,7 +253,7 @@ int main(int argc, char *argv[])
#include <linux/types.h>\n\
\n\
u8 dfont_unicount[%d] = \n\
-{\n\t", argv[1], fontlen);
+{\n\t", argv[2], fontlen);
for ( i = 0 ; i < fontlen ; i++ )
{
--
2.25.1
@@ -12,3 +12,9 @@ EXTRA_DTC_ARGS += "${@get_extra_dtc_args(d)}"
# the kernel.
KERNEL_DTBDEST = "${KERNEL_IMAGEDEST}/dtb"
KERNEL_DTBVENDORED = "1"
SRC_URI += " \
file://0001-lib-build_OID_registry-fix-reproducibility-issues.patch \
file://0001-vt-conmakehash-improve-reproducibility.patch \
file://0001-pnmtologo-use-relocatable-file-name.patch \
"