mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 13:28:12 -05:00
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:
parent
824fc425dd
commit
b634b5c253
5 changed files with 215 additions and 1 deletions
|
@ -1228,6 +1228,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-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-rdp-parameters.patch \
|
||||
%D%/packages/patches/virglrenderer-CVE-2017-6386.patch \
|
||||
|
|
|
@ -673,10 +673,25 @@ (define-public vboot-utils
|
|||
(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
|
||||
|
|
|
@ -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;
|
142
gnu/packages/patches/vboot-utils-fix-tests-show-contents.patch
Normal file
142
gnu/packages/patches/vboot-utils-fix-tests-show-contents.patch
Normal 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
|
21
gnu/packages/patches/vboot-utils-skip-test-workbuf.patch
Normal file
21
gnu/packages/patches/vboot-utils-skip-test-workbuf.patch
Normal 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");
|
Loading…
Reference in a new issue