]> code.ossystems Code Review - openembedded-core.git/commitdiff
syslinux: Fix reproducibility issues
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 27 Feb 2021 23:42:03 +0000 (23:42 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 1 Mar 2021 11:12:12 +0000 (11:12 +0000)
Add sorting to wildcard expansion in the makefile to make builds
reproducible.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/selftest/cases/reproducible.py
meta/recipes-devtools/syslinux/syslinux/determinism.patch [new file with mode: 0644]
meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb

index fcd9d83ab8650d80d797b407c6bfb0452c102599..e9c6a222dc722aa420368b1c4ac8e9d9b5b84296 100644 (file)
@@ -45,7 +45,6 @@ exclude_packages = [
        'qemu',
        'ruby-ri-docs',
        'swig',
-       'syslinux-misc',
        'systemd-bootchart'
        ]
 
diff --git a/meta/recipes-devtools/syslinux/syslinux/determinism.patch b/meta/recipes-devtools/syslinux/syslinux/determinism.patch
new file mode 100644 (file)
index 0000000..2fb8c64
--- /dev/null
@@ -0,0 +1,22 @@
+In order to build deterministic binaries, we need to sort the wildcard expansion
+so the libraries are linked in the same order each time. This fixes reproducibility
+issues within syslinux builds.
+
+Upstream-Status: Pending
+RP 2021/3/1
+
+Index: syslinux-6.04-pre2/mk/lib.mk
+===================================================================
+--- syslinux-6.04-pre2.orig/mk/lib.mk
++++ syslinux-6.04-pre2/mk/lib.mk
+@@ -130,8 +130,8 @@ LIBENTRY_OBJS = \
+       exit.o
+ LIBGCC_OBJS = \
+-        $(patsubst $(com32)/lib/%.c,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.c)) \
+-        $(patsubst $(com32)/lib/%.S,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.S))
++        $(sort $(patsubst $(com32)/lib/%.c,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.c))) \
++        $(sort $(patsubst $(com32)/lib/%.S,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.S)))
+ LIBCONSOLE_OBJS = \
+       \
index 8d78f62efa002ec5dba54091c5348f3d11921e17..dadba9eca9a664637fd58fa8ce8680a5229167ed 100644 (file)
@@ -20,11 +20,16 @@ SRC_URI = "https://www.zytor.com/pub/syslinux/Testing/6.04/syslinux-${PV}.tar.xz
            file://0009-linux-syslinux-implement-install_bootblock.patch \
            file://0010-Workaround-multiple-definition-of-symbol-errors.patch \
            file://0001-install-don-t-install-obsolete-file-com32.ld.patch \
+           file://determinism.patch \
            "
 
 SRC_URI[md5sum] = "2b31c78f087f99179feb357da312d7ec"
 SRC_URI[sha256sum] = "4441a5d593f85bb6e8d578cf6653fb4ec30f9e8f4a2315a3d8f2d0a8b3fadf94"
 
+# remove at next version upgrade or when output changes
+PR = "r1"
+HASHEQUIV_HASH_VERSION .= ".1"
+
 RECIPE_NO_UPDATE_REASON = "6.04-pre3 is broken"
 UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/"
 UPSTREAM_CHECK_REGEX = "syslinux-(?P<pver>.+)\.tar"