diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-02-27 23:42:03 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-03-01 11:12:16 +0000 |
commit | ab9e43134b839218c9b057c743719dfbaced4296 (patch) | |
tree | 204a11ca6678ef20bf9cb06afa1afee3f5f88c4c | |
parent | 00dcf14b36437c9eebff729a59ce07208046218a (diff) | |
download | poky-ab9e43134b839218c9b057c743719dfbaced4296.tar.gz |
syslinux: Fix reproducibility issues
Add sorting to wildcard expansion in the makefile to make builds
reproducible.
(From OE-Core rev: 5541ba76ccc0c416f315bc0dc14a20a33059bd5f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oeqa/selftest/cases/reproducible.py | 1 | ||||
-rw-r--r-- | meta/recipes-devtools/syslinux/syslinux/determinism.patch | 22 | ||||
-rw-r--r-- | meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb | 5 |
3 files changed, 27 insertions, 1 deletions
diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py index fcd9d83ab8..e9c6a222dc 100644 --- a/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/meta/lib/oeqa/selftest/cases/reproducible.py | |||
@@ -45,7 +45,6 @@ exclude_packages = [ | |||
45 | 'qemu', | 45 | 'qemu', |
46 | 'ruby-ri-docs', | 46 | 'ruby-ri-docs', |
47 | 'swig', | 47 | 'swig', |
48 | 'syslinux-misc', | ||
49 | 'systemd-bootchart' | 48 | 'systemd-bootchart' |
50 | ] | 49 | ] |
51 | 50 | ||
diff --git a/meta/recipes-devtools/syslinux/syslinux/determinism.patch b/meta/recipes-devtools/syslinux/syslinux/determinism.patch new file mode 100644 index 0000000000..2fb8c64df3 --- /dev/null +++ b/meta/recipes-devtools/syslinux/syslinux/determinism.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | In order to build deterministic binaries, we need to sort the wildcard expansion | ||
2 | so the libraries are linked in the same order each time. This fixes reproducibility | ||
3 | issues within syslinux builds. | ||
4 | |||
5 | Upstream-Status: Pending | ||
6 | RP 2021/3/1 | ||
7 | |||
8 | Index: syslinux-6.04-pre2/mk/lib.mk | ||
9 | =================================================================== | ||
10 | --- syslinux-6.04-pre2.orig/mk/lib.mk | ||
11 | +++ syslinux-6.04-pre2/mk/lib.mk | ||
12 | @@ -130,8 +130,8 @@ LIBENTRY_OBJS = \ | ||
13 | exit.o | ||
14 | |||
15 | LIBGCC_OBJS = \ | ||
16 | - $(patsubst $(com32)/lib/%.c,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.c)) \ | ||
17 | - $(patsubst $(com32)/lib/%.S,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.S)) | ||
18 | + $(sort $(patsubst $(com32)/lib/%.c,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.c))) \ | ||
19 | + $(sort $(patsubst $(com32)/lib/%.S,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.S))) | ||
20 | |||
21 | LIBCONSOLE_OBJS = \ | ||
22 | \ | ||
diff --git a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb index 8d78f62efa..dadba9eca9 100644 --- a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb +++ b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb | |||
@@ -20,11 +20,16 @@ SRC_URI = "https://www.zytor.com/pub/syslinux/Testing/6.04/syslinux-${PV}.tar.xz | |||
20 | file://0009-linux-syslinux-implement-install_bootblock.patch \ | 20 | file://0009-linux-syslinux-implement-install_bootblock.patch \ |
21 | file://0010-Workaround-multiple-definition-of-symbol-errors.patch \ | 21 | file://0010-Workaround-multiple-definition-of-symbol-errors.patch \ |
22 | file://0001-install-don-t-install-obsolete-file-com32.ld.patch \ | 22 | file://0001-install-don-t-install-obsolete-file-com32.ld.patch \ |
23 | file://determinism.patch \ | ||
23 | " | 24 | " |
24 | 25 | ||
25 | SRC_URI[md5sum] = "2b31c78f087f99179feb357da312d7ec" | 26 | SRC_URI[md5sum] = "2b31c78f087f99179feb357da312d7ec" |
26 | SRC_URI[sha256sum] = "4441a5d593f85bb6e8d578cf6653fb4ec30f9e8f4a2315a3d8f2d0a8b3fadf94" | 27 | SRC_URI[sha256sum] = "4441a5d593f85bb6e8d578cf6653fb4ec30f9e8f4a2315a3d8f2d0a8b3fadf94" |
27 | 28 | ||
29 | # remove at next version upgrade or when output changes | ||
30 | PR = "r1" | ||
31 | HASHEQUIV_HASH_VERSION .= ".1" | ||
32 | |||
28 | RECIPE_NO_UPDATE_REASON = "6.04-pre3 is broken" | 33 | RECIPE_NO_UPDATE_REASON = "6.04-pre3 is broken" |
29 | UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/" | 34 | UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/" |
30 | UPSTREAM_CHECK_REGEX = "syslinux-(?P<pver>.+)\.tar" | 35 | UPSTREAM_CHECK_REGEX = "syslinux-(?P<pver>.+)\.tar" |