[PATCH] gnu: vboot-utils: Fix building on armhf-linux.

  • Done
  • quality assurance status badge
Details
2 participants
  • Danny Milosavljevic
  • Kei Kebreau
Owner
unassigned
Submitted by
Kei Kebreau
Severity
normal

Debbugs page

Kei Kebreau wrote 6 years ago
(address . guix-patches@gnu.org)(name . Kei Kebreau)(address . kkebreau@posteo.net)
20181230150459.19028-1-kkebreau@posteo.net
* gnu/packages/bootloaders.scm (vboot-utils)[source]: Add patches.
[arguments]: Conditionally add "HOST_ARCH=arm" to #:make-flags.
* gnu/packages/patches/vboot-utils-fix-format-load-address.patch,
gnu/packages/patches/vboot-utils-fix-tests-show-contents.patch,
gnu/packages/patches/vboot-utils-skip-test-workbuf.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.
---
gnu/local.mk | 3 +
gnu/packages/bootloaders.scm | 17 ++-
.../vboot-utils-fix-format-load-address.patch | 33 ++++
.../vboot-utils-fix-tests-show-contents.patch | 142 ++++++++++++++++++
.../vboot-utils-skip-test-workbuf.patch | 21 +++
5 files changed, 215 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/vboot-utils-fix-format-load-address.patch
create mode 100644 gnu/packages/patches/vboot-utils-fix-tests-show-contents.patch
create mode 100644 gnu/packages/patches/vboot-utils-skip-test-workbuf.patch

Toggle diff (261 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 925d955a6..fc0f9bb9f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1227,6 +1227,9 @@ dist_patch_DATA = \
%D%/packages/patches/upx-fix-CVE-2017-15056.patch \
%D%/packages/patches/valgrind-enable-arm.patch \
%D%/packages/patches/valgrind-glibc-compat.patch \
+ %D%/packages/patches/vboot-utils-skip-test-workbuf.patch \
+ %D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \
+ %D%/packages/patches/vboot-utils-fix-format-load-address.patch \
%D%/packages/patches/vinagre-revert-1.patch \
%D%/packages/patches/vinagre-revert-2.patch \
%D%/packages/patches/virglrenderer-CVE-2017-6386.patch \
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 2a595fafa..69b4a904b 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -673,10 +673,25 @@ board-independent tools.")))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0h0m3l69vp9dr6xrs1p6y7ilkq3jq8jraw2z20kqfv7lvc9l1lxj"))))
+ "0h0m3l69vp9dr6xrs1p6y7ilkq3jq8jraw2z20kqfv7lvc9l1lxj"))
+ (patches
+ (search-patches "vboot-utils-skip-test-workbuf.patch"
+ "vboot-utils-fix-tests-show-contents.patch"
+ "vboot-utils-fix-format-load-address.patch"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "CC=gcc"
+ ;; On ARM, we must pass "HOST_ARCH=arm" so that the
+ ;; ${HOST_ARCH} and ${ARCH} variables in the makefile
+ ;; match. Otherwise, ${HOST_ARCH} will be assigned
+ ;; "armv7l", the value of `uname -m`, and will not
+ ;; match ${ARCH}, which will make the tests require
+ ;; QEMU for testing.
+ ,@(if (string-prefix? "arm"
+ (or (%current-target-system)
+ (%current-system)))
+ '("HOST_ARCH=arm")
+ '())
(string-append "DESTDIR=" (assoc-ref %outputs "out")))
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-hard-coded-paths
diff --git a/gnu/packages/patches/vboot-utils-fix-format-load-address.patch b/gnu/packages/patches/vboot-utils-fix-format-load-address.patch
new file mode 100644
index 000000000..899531e40
--- /dev/null
+++ b/gnu/packages/patches/vboot-utils-fix-format-load-address.patch
@@ -0,0 +1,33 @@
+This patch was copied from Debian.
+
+Description: Fix format load_address for 32 bits architectures
+ The offset and load_address are 64bits integers
+ On 32bits we have to use strtoull (instead of strtoul) to parse number
+ into 64bits unsigned integers. Without this the parsed numbers are
+ truncated to 2^32-1.
+Author: Sophie Brun <sophie@freexian.com>
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881997
+Forwarded: https://bugs.chromium.org/p/chromium/issues/detail?id=786969
+Last-Update: 2017-11-20
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/futility/cmd_bdb.c
++++ b/futility/cmd_bdb.c
+@@ -637,7 +637,7 @@ static int do_bdb(int argc, char *argv[]
+ }
+ break;
+ case OPT_OFFSET:
+- offset = strtoul(optarg, &e, 0);
++ offset = strtoull(optarg, &e, 0);
+ if (!*optarg || (e && *e)) {
+ fprintf(stderr, "Invalid --offset\n");
+ parse_error = 1;
+@@ -658,7 +658,7 @@ static int do_bdb(int argc, char *argv[]
+ }
+ break;
+ case OPT_LOAD_ADDRESS:
+- load_address = strtoul(optarg, &e, 0);
++ load_address = strtoull(optarg, &e, 0);
+ if (!*optarg || (e && *e)) {
+ fprintf(stderr, "Invalid --load_address\n");
+ parse_error = 1;
diff --git a/gnu/packages/patches/vboot-utils-fix-tests-show-contents.patch b/gnu/packages/patches/vboot-utils-fix-tests-show-contents.patch
new file mode 100644
index 000000000..8e0c691a2
--- /dev/null
+++ b/gnu/packages/patches/vboot-utils-fix-tests-show-contents.patch
@@ -0,0 +1,142 @@
+This patch was copied from Debian.
+
+Description: Fix tests/futility/test_show_contents.sh
+ Tests compare generated files containing the file path and upstream files
+ ("expected output") containing path like
+ "/mnt/host/source/src/platform/vboot_reference/tests/". They can't
+ match. Drop these lines mentioning paths in the generated files and in
+ the upstream provided files to avoid failures.
+Author: Sophie Brun <sophie@freexian.com>
+Last-Update: 2017-11-14
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/tests/futility/expect_output/show.tests_devkeys_kernel.keyblock
++++ b/tests/futility/expect_output/show.tests_devkeys_kernel.keyblock
+@@ -1,4 +1,3 @@
+-Key block: /mnt/host/source/src/platform/vboot_reference/tests/devkeys/kernel.keyblock
+ Signature: ignored
+ Size: 0x4b8
+ Flags: 7 !DEV DEV !REC
+--- a/tests/futility/expect_output/show.tests_devkeys_root_key.vbprivk
++++ b/tests/futility/expect_output/show.tests_devkeys_root_key.vbprivk
+@@ -1,4 +1,3 @@
+-Private Key file: /mnt/host/source/src/platform/vboot_reference/tests/devkeys/root_key.vbprivk
+ Vboot API: 1.0
+ Algorithm: 11 RSA8192 SHA512
+ Key sha1sum: b11d74edd286c144e1135b49e7f0bc20cf041f10
+--- a/tests/futility/expect_output/show.tests_devkeys_root_key.vbpubk
++++ b/tests/futility/expect_output/show.tests_devkeys_root_key.vbpubk
+@@ -1,4 +1,3 @@
+-Public Key file: /mnt/host/source/src/platform/vboot_reference/tests/devkeys/root_key.vbpubk
+ Vboot API: 1.0
+ Algorithm: 11 RSA8192 SHA512
+ Key Version: 1
+--- a/tests/futility/expect_output/show.tests_futility_data_bios_mario_mp.bin
++++ b/tests/futility/expect_output/show.tests_futility_data_bios_mario_mp.bin
+@@ -1,4 +1,3 @@
+-BIOS: /mnt/host/source/src/platform/vboot_reference/tests/futility/data/bios_mario_mp.bin
+ GBB header: GBB Area
+ Version: 1.0
+ Flags: 0x00000000
+--- a/tests/futility/expect_output/show.tests_futility_data_bios_zgb_mp.bin
++++ b/tests/futility/expect_output/show.tests_futility_data_bios_zgb_mp.bin
+@@ -1,4 +1,3 @@
+-BIOS: /mnt/host/source/src/platform/vboot_reference/tests/futility/data/bios_zgb_mp.bin
+ GBB header: GBB
+ Version: 1.0
+ Flags: 0x00000000
+--- a/tests/futility/expect_output/show.tests_futility_data_fw_gbb.bin
++++ b/tests/futility/expect_output/show.tests_futility_data_fw_gbb.bin
+@@ -1,4 +1,3 @@
+-GBB header: /mnt/host/source/src/platform/vboot_reference/tests/futility/data/fw_gbb.bin
+ Version: 1.1
+ Flags: 0x00000039
+ Regions: offset size
+--- a/tests/futility/expect_output/show.tests_futility_data_fw_vblock.bin
++++ b/tests/futility/expect_output/show.tests_futility_data_fw_vblock.bin
+@@ -1,4 +1,3 @@
+-Key block: /mnt/host/source/src/platform/vboot_reference/tests/futility/data/fw_vblock.bin
+ Signature: ignored
+ Size: 0x8b8
+ Flags: 7 !DEV DEV !REC
+--- a/tests/futility/expect_output/show.tests_futility_data_kern_preamble.bin
++++ b/tests/futility/expect_output/show.tests_futility_data_kern_preamble.bin
+@@ -1,4 +1,3 @@
+-Kernel partition: /mnt/host/source/src/platform/vboot_reference/tests/futility/data/kern_preamble.bin
+ Key block:
+ Signature: ignored
+ Size: 0x5b8
+--- a/tests/futility/expect_output/show.tests_futility_data_sample.vbprik2
++++ b/tests/futility/expect_output/show.tests_futility_data_sample.vbprik2
+@@ -1,4 +1,3 @@
+-Private key file: /mnt/host/source/src/platform/vboot_reference/tests/futility/data/sample.vbprik2
+ Vboot API: 2.1
+ Desc: "sample vb21 keypair"
+ Signature Algorithm: 5 RSA8192
+--- a/tests/futility/expect_output/show.tests_futility_data_sample.vbpubk2
++++ b/tests/futility/expect_output/show.tests_futility_data_sample.vbpubk2
+@@ -1,4 +1,3 @@
+-Public Key file: /mnt/host/source/src/platform/vboot_reference/tests/futility/data/sample.vbpubk2
+ Vboot API: 2.1
+ Desc: "sample vb21 keypair"
+ Signature Algorithm: 5 RSA8192
+--- a/tests/futility/expect_output/show.tests_testkeys_key_rsa2048.pem
++++ b/tests/futility/expect_output/show.tests_testkeys_key_rsa2048.pem
+@@ -1,3 +1,2 @@
+-Private Key file: /mnt/host/source/src/platform/vboot_reference/tests/testkeys/key_rsa2048.pem
+ Key length: 2048
+ Key sha1sum: bfb2fa9188a87bf766dd7c313ea6802553b646b6
+--- a/tests/futility/expect_output/show.tests_testkeys_key_rsa8192.pub.pem
++++ b/tests/futility/expect_output/show.tests_testkeys_key_rsa8192.pub.pem
+@@ -1,3 +1,2 @@
+-Public Key file: /mnt/host/source/src/platform/vboot_reference/tests/testkeys/key_rsa8192.pub.pem
+ Key length: 8192
+ Key sha1sum: f1afa44a1aed0d0e9ff630579df920a725e9de5e
+--- a/tests/futility/test_show_contents.sh
++++ b/tests/futility/test_show_contents.sh
+@@ -29,7 +29,7 @@ for file in $SHOW_FILES; do
+ outfile="show.${file//\//_}"
+ gotfile="${OUTDIR}/${outfile}"
+ wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
+- ${FUTILITY} show "${SRCDIR}/${file}" | tee "${gotfile}"
++ ${FUTILITY} show "${SRCDIR}/${file}" | grep -v "tests/" | tee "${gotfile}"
+
+ # Uncomment this to update the expected output
+ #cp ${gotfile} ${wantfile}
+@@ -48,7 +48,7 @@ for file in $VBUTIL_KEY_FILES; do
+ outfile="vbutil_key.${file//\//_}"
+ gotfile="${OUTDIR}/${outfile}"
+ wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
+- ${FUTILITY} vbutil_key --unpack "${SRCDIR}/${file}" | tee "${gotfile}"
++ ${FUTILITY} vbutil_key --unpack "${SRCDIR}/${file}" | grep -v "tests/" | tee "${gotfile}"
+
+ # Uncomment this to update the expected output
+ #cp ${gotfile} ${wantfile}
+@@ -64,7 +64,7 @@ gotfile="${OUTDIR}/${outfile}"
+ wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
+ ${FUTILITY} vbutil_keyblock --unpack "${SRCDIR}/${file}" \
+ --signpubkey "${SRCDIR}/tests/devkeys/kernel_subkey.vbpubk" \
+- | tee "${gotfile}"
++ | grep -v "tests/" | tee "${gotfile}"
+
+ # Uncomment this to update the expected output
+ #cp ${gotfile} ${wantfile}
+--- a/tests/futility/expect_output/vbutil_key.tests_devkeys_root_key.vbprivk
++++ b/tests/futility/expect_output/vbutil_key.tests_devkeys_root_key.vbprivk
+@@ -1,2 +1 @@
+-Private Key file: /mnt/host/source/src/platform/vboot_reference/tests/devkeys/root_key.vbprivk
+ Algorithm: 11 RSA8192 SHA512
+--- a/tests/futility/expect_output/vbutil_keyblock.tests_devkeys_kernel.keyblock
++++ b/tests/futility/expect_output/vbutil_keyblock.tests_devkeys_kernel.keyblock
+@@ -1,4 +1,3 @@
+-Key block file: /mnt/host/source/src/platform/vboot_reference/tests/devkeys/kernel.keyblock
+ Signature valid
+ Flags: 7 !DEV DEV !REC
+ Data key algorithm: 4 RSA2048 SHA256
+--- a/tests/futility/expect_output/vbutil_key.tests_devkeys_root_key.vbpubk
++++ b/tests/futility/expect_output/vbutil_key.tests_devkeys_root_key.vbpubk
+@@ -1,4 +1,3 @@
+-Public Key file: /mnt/host/source/src/platform/vboot_reference/tests/devkeys/root_key.vbpubk
+ Algorithm: 11 RSA8192 SHA512
+ Key Version: 1
+ Key sha1sum: b11d74edd286c144e1135b49e7f0bc20cf041f10
diff --git a/gnu/packages/patches/vboot-utils-skip-test-workbuf.patch b/gnu/packages/patches/vboot-utils-skip-test-workbuf.patch
new file mode 100644
index 000000000..9618c76f8
--- /dev/null
+++ b/gnu/packages/patches/vboot-utils-skip-test-workbuf.patch
@@ -0,0 +1,21 @@
+This patch was copied from Debian.
+
+Description: skip the workbuf test if VB2_WORKBUF_ALIGN different from 16
+Author: Sophie Brun <sophie@freexian.com>
+Last-Update: 2015-12-03
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/tests/vb2_common_tests.c
++++ b/tests/vb2_common_tests.c
+@@ -70,6 +70,11 @@ static void test_workbuf(void)
+ /* NOTE: There are several magic numbers below which assume that
+ * VB2_WORKBUF_ALIGN == 16 */
+
++ /* Skip the tests if VB2_WORKBUF_ALIGN != 16 */
++ if (VB2_WORKBUF_ALIGN != 16) {
++ return;
++ }
++
+ /* Init */
+ vb2_workbuf_init(&wb, p0, 64);
+ TEST_EQ(vb2_offset_of(p0, wb.buf), 0, "Workbuf init aligned");
--
2.19.2
Danny Milosavljevic wrote 6 years ago
(name . Kei Kebreau)(address . kkebreau@posteo.net)(address . 33923@debbugs.gnu.org)
20190103120746.2471a735@scratchpost.org
Hmm, OK, but why not use the newest release? Apparently, there's
release-R72-11316.B already.

Although cmd_bdb seems to be still broken in the newer release.
And so are the tests.
And so is the workbuf test check.

So your patch definitely LGTM as is!

Additionally, the patches are not in upstream master, so it might make
sense to send those to the them, so that we don't have to maintain the
extra patches forever.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlwt7QIACgkQ5xo1VCww
uqUyMAf+LtTEhTx86UaJ24myRKdL+Ez2f18+Kt0X44TfdawcmrdDmchQZRKBcoxQ
v/q/vQ4NENBXJkvPyIN/hAHlBBDRshMhZ0g/aYcAua6vsbZ+3d1yw41b2fgWMwHG
y/fF/LQRT7Na2UPcHL5NgQSaHTBDA/u1J8KirwU1/w+jblG5dz7zcBnN5cB/xarm
x3fm2dRTeetKpX1/6pBfNIhNQ/7kkQOUEL1jxKYhqhAnCfSfRrZTcwpA5ODYuNoO
2QSa4gGsJqEWg2D17YDJ+/keVvhv+4HPk2DnWPy8sCHoQfiUwr4DWvoQ5xunVONn
2cyEWAwxwDH6g08uPW4Y689tW/trcw==
=Mtw4
-----END PGP SIGNATURE-----


Kei Kebreau wrote 6 years ago
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)(address . 33923-done@debbugs.gnu.org)
87muohjwwy.fsf@posteo.net
Danny Milosavljevic <dannym@scratchpost.org> writes:

Toggle quote (13 lines)
> Hmm, OK, but why not use the newest release? Apparently, there's
> release-R72-11316.B already.
>
> Although cmd_bdb seems to be still broken in the newer release.
> And so are the tests.
> And so is the workbuf test check.
>
> So your patch definitely LGTM as is!
>
> Additionally, the patches are not in upstream master, so it might make
> sense to send those to the them, so that we don't have to maintain the
> extra patches forever.

I've pushed the changes to master, and I'll see about sending the
patches upstream if Debian hasn't done that already. Thanks for reviewing!
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 33923@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 33923
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help