diff mbox series

[master,2/2] linux: add linux-yocto reproducibility patches

Message ID 20240715234539.2284580-2-denis@denix.org
State Accepted
Delegated to: Ryan Eatmon
Headers show
Series [master,1/2] linux: remove old unused patches | expand

Commit Message

Denys Dmytriyenko July 15, 2024, 11:45 p.m. UTC
From: Denys Dmytriyenko <denys@konsulko.com>

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

Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
 ..._registry-fix-reproducibility-issues.patch | 46 +++++++++++++++
 ...-pnmtologo-use-relocatable-file-name.patch | 55 ++++++++++++++++++
 ...-conmakehash-improve-reproducibility.patch | 56 +++++++++++++++++++
 .../recipes-kernel/linux/ti-kernel.inc        |  6 ++
 4 files changed, 163 insertions(+)
 create mode 100644 meta-ti-bsp/recipes-kernel/linux/files/0001-lib-build_OID_registry-fix-reproducibility-issues.patch
 create mode 100644 meta-ti-bsp/recipes-kernel/linux/files/0001-pnmtologo-use-relocatable-file-name.patch
 create mode 100644 meta-ti-bsp/recipes-kernel/linux/files/0001-vt-conmakehash-improve-reproducibility.patch
diff mbox series

Patch

diff --git a/meta-ti-bsp/recipes-kernel/linux/files/0001-lib-build_OID_registry-fix-reproducibility-issues.patch b/meta-ti-bsp/recipes-kernel/linux/files/0001-lib-build_OID_registry-fix-reproducibility-issues.patch
new file mode 100644
index 00000000..98af632f
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/0001-lib-build_OID_registry-fix-reproducibility-issues.patch
@@ -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
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/0001-pnmtologo-use-relocatable-file-name.patch b/meta-ti-bsp/recipes-kernel/linux/files/0001-pnmtologo-use-relocatable-file-name.patch
new file mode 100644
index 00000000..7427b168
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/0001-pnmtologo-use-relocatable-file-name.patch
@@ -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
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/0001-vt-conmakehash-improve-reproducibility.patch b/meta-ti-bsp/recipes-kernel/linux/files/0001-vt-conmakehash-improve-reproducibility.patch
new file mode 100644
index 00000000..59ac4b62
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/0001-vt-conmakehash-improve-reproducibility.patch
@@ -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
diff --git a/meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc b/meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc
index dd5578f5..43d2341a 100644
--- a/meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc
+++ b/meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc
@@ -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 \
+"