gnu: vboot-utils: Fix building on armhf-linux.

* 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.
This commit is contained in:
Kei Kebreau 2018-12-30 09:46:29 -05:00
parent 824fc425dd
commit b634b5c253
No known key found for this signature in database
GPG Key ID: E6A5EE3C19467A0D
5 changed files with 215 additions and 1 deletions

View File

@ -1228,6 +1228,9 @@ dist_patch_DATA = \
%D%/packages/patches/upx-fix-CVE-2017-15056.patch \ %D%/packages/patches/upx-fix-CVE-2017-15056.patch \
%D%/packages/patches/valgrind-enable-arm.patch \ %D%/packages/patches/valgrind-enable-arm.patch \
%D%/packages/patches/valgrind-glibc-compat.patch \ %D%/packages/patches/valgrind-glibc-compat.patch \
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \
%D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \
%D%/packages/patches/vboot-utils-skip-test-workbuf.patch \
%D%/packages/patches/vinagre-newer-freerdp.patch \ %D%/packages/patches/vinagre-newer-freerdp.patch \
%D%/packages/patches/vinagre-newer-rdp-parameters.patch \ %D%/packages/patches/vinagre-newer-rdp-parameters.patch \
%D%/packages/patches/virglrenderer-CVE-2017-6386.patch \ %D%/packages/patches/virglrenderer-CVE-2017-6386.patch \

View File

@ -673,10 +673,25 @@ board-independent tools.")))
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (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) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (list "CC=gcc" `(#: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"))) (string-append "DESTDIR=" (assoc-ref %outputs "out")))
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-hard-coded-paths (add-after 'unpack 'patch-hard-coded-paths

View File

@ -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;

View File

@ -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

View File

@ -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");