From c56bdd9ffa0136b5772a1ea5628249f1269f11fa Mon Sep 17 00:00:00 2001 From: Denys Dmytriyenko Date: Mon, 15 Jul 2024 19:45:39 -0400 Subject: linux: add linux-yocto reproducibility patches Add reproducibility patches from linux-yocto to resolve "buildpaths" QA errors. Signed-off-by: Denys Dmytriyenko Signed-off-by: Ryan Eatmon --- ...d_OID_registry-fix-reproducibility-issues.patch | 46 ++++++++++++++++++ .../0001-pnmtologo-use-relocatable-file-name.patch | 55 +++++++++++++++++++++ ...01-vt-conmakehash-improve-reproducibility.patch | 56 ++++++++++++++++++++++ meta-ti-bsp/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 --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..75477ef8 --- /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 +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 + +Upstream-Status: Inappropriate + +Signed-off-by: Denys Dmytriyenko +--- + 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..bfc081fa --- /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 +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 + +Upstream-Status: Inappropriate + +Signed-off-by: Denys Dmytriyenko +--- + 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 + #include + #include +- ++#include + + 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..211460c1 --- /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 +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 + +Upstream-Status: Inappropriate + +Signed-off-by: Denys Dmytriyenko +--- + 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 \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 \ +" -- cgit v1.2.3-54-g00ecf