gnu: flashrom: Update to 1.3.0.

* gnu/packages/patches/flashrom-fix-building-on-aarch64.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
* gnu/packages/flashing-tools.scm (flashrom): Update to 1.3.0.
[build-system]: Switch to meson-build-system.
[inputs]: Add libjaylink.
[native-inputs]: Add cmocka.

Actually, at least from 1.2, the exact \"dmidecode\" is not present in dmi.c.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Hilton Chain 2023-05-29 00:53:57 +08:00 committed by Ludovic Courtès
parent d33275a3a1
commit e6ce706604
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 11 additions and 119 deletions

View file

@ -1137,7 +1137,6 @@ dist_patch_DATA = \
%D%/packages/patches/firebird-riscv64-support-pt1.patch \
%D%/packages/patches/firebird-riscv64-support-pt2.patch \
%D%/packages/patches/flann-cmake-3.11.patch \
%D%/packages/patches/flashrom-fix-building-on-aarch64.patch \
%D%/packages/patches/flatpak-fix-path.patch \
%D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \
%D%/packages/patches/fluxbox-1.3.7-no-dynamic-cursor.patch \

View file

@ -29,20 +29,24 @@
(define-module (gnu packages flashing-tools)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (gnu packages autotools)
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages elf)
#:use-module (gnu packages embedded)
#:use-module (gnu packages flex)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gnupg)
@ -58,7 +62,7 @@ (define-module (gnu packages flashing-tools)
(define-public flashrom
(package
(name "flashrom")
(version "1.2")
(version "1.3.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -66,35 +70,13 @@ (define-public flashrom
version ".tar.bz2"))
(sha256
(base32
"0ax4kqnh7kd3z120ypgp73qy1knz47l6qxsqzrfkd97mh5cdky71"))
(patches
(search-patches "flashrom-fix-building-on-aarch64.patch"))))
(build-system gnu-build-system)
(inputs (list dmidecode pciutils libusb libftdi))
(native-inputs (list pkg-config))
"08wn2j5vxzzvigflrjypgxxzjp32c76bshrlkzki5l6cad226lx0"))))
(build-system meson-build-system)
(inputs (list dmidecode pciutils libusb libftdi libjaylink))
(native-inputs (list cmocka pkg-config))
(arguments
'(#:make-flags
(list "CC=gcc"
(string-append "PREFIX=" %output)
"CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no")
#:tests? #f ; no 'check' target
#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-before 'build 'patch-exec-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "dmi.c"
(("\"dmidecode\"")
(format #f "~S"
(search-input-file inputs "/sbin/dmidecode"))))))
(add-before 'build 'patch-type-error
(lambda _
;; See https://github.com/flashrom/flashrom/pull/133
(substitute* "libflashrom.c"
(("supported_boards\\[i\\].working = binfo\\[i\\].working")
"supported_boards[i].working = (enum flashrom_test_state)binfo[i].working")
(("supported_chipsets\\[i\\].status = chipset\\[i\\].status")
"supported_chipsets[i].status = (enum flashrom_test_state)chipset[i].status")))))))
(list #:configure-flags
#~'("-Dprogrammer=all")))
(home-page "https://flashrom.org/")
(synopsis "Identify, read, write, erase, and verify ROM/flash chips")
(description

View file

@ -1,89 +0,0 @@
commit da6b3b70cb852dd8e9f9e21aef95fa83e7f7ab0d
Author: Pyry Kontio <pyry.kontio@drasa.eu>
Date: Mon Jul 6 12:57:35 2020 +0900
Makefile: Fix building on AArch64 NixOS
The parsing of the output of archtest.c produced an unexpected
value on AArch64 NixOS. For example, the make variable ARCH was set to:
```
bit outside of fd_set selected
arm
```
This made the arch and OS checks fail.
This commit simplifies the parsing, making it more robust.
The C files archtest.c, endiantest.c and os.h used to set the
TARGET_OS, ARCH and ENDIAN variables, respectively, output
the result of the test as the final line, so just extracting
the final line and removing double quoting is enough.
This commit also fixes a bug with debug_shell lacking escaping
single quotes, which prevented using the single quote in the
debug_shell calls. It used to work by accident before this fix;
the line in the call happened to contain a balanced pair of double
quotes and lacked other characters that needed escaping, which
didn't break the debug_shell, but this was accidental and very
brittle.
Signed-off-by: Pyry Kontio <pyry.kontio@drasa.eu>
Change-Id: Iaa4477a71e758cf9ecad2c22f3b77bc6508a3510
Reviewed-on: https://review.coreboot.org/c/flashrom/+/43140
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
diff --git a/Makefile b/Makefile
index f3f7717e..e475cbdb 100644
--- a/Makefile
+++ b/Makefile
@@ -83,7 +83,8 @@ dummy_for_make_3_80:=$(shell printf "Build started on %s\n\n" "$$(date)" >$(BUIL
# Provide an easy way to execute a command, print its output to stdout and capture any error message on stderr
# in the build details file together with the original stdout output.
-debug_shell = $(shell export LC_ALL=C ; { echo 'exec: export LC_ALL=C ; { $(1) ; }' >&2; { $(1) ; } | tee -a $(BUILD_DETAILS_FILE) ; echo >&2 ; } 2>>$(BUILD_DETAILS_FILE))
+debug_shell = $(shell export LC_ALL=C ; { echo 'exec: export LC_ALL=C ; { $(subst ','\'',$(1)) ; }' >&2; \
+ { $(1) ; } | tee -a $(BUILD_DETAILS_FILE) ; echo >&2 ; } 2>>$(BUILD_DETAILS_FILE))
###############################################################################
# General OS-specific settings.
@@ -106,7 +107,8 @@ endif
# IMPORTANT: The following line must be placed before TARGET_OS is ever used
# (of course), but should come after any lines setting CC because the line
# below uses CC itself.
-override TARGET_OS := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E os.h 2>/dev/null | grep -v '^\#' | grep '"' | cut -f 2 -d'"'))
+override TARGET_OS := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E os.h 2>/dev/null \
+ | tail -1 | cut -f 2 -d'"'))
ifeq ($(TARGET_OS), Darwin)
override CPPFLAGS += -I/opt/local/include -I/usr/local/include
@@ -490,8 +492,10 @@ endif
# IMPORTANT: The following line must be placed before ARCH is ever used
# (of course), but should come after any lines setting CC because the line
# below uses CC itself.
-override ARCH := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E archtest.c 2>/dev/null | grep -v '^\#' | grep '"' | cut -f 2 -d'"'))
-override ENDIAN := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E endiantest.c 2>/dev/null | grep -v '^\#'))
+override ARCH := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E archtest.c 2>/dev/null \
+ | tail -1 | cut -f 2 -d'"'))
+override ENDIAN := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E endiantest.c 2>/dev/null \
+ | tail -1))
# Disable the internal programmer on unsupported architectures (everything but x86 and mipsel)
ifneq ($(ARCH)-little, $(filter $(ARCH),x86 mips)-$(ENDIAN))
@@ -1299,12 +1303,12 @@ compiler: featuresavailable
@printf "Target arch is "
@# FreeBSD wc will output extraneous whitespace.
@echo $(ARCH)|wc -w|grep -q '^[[:blank:]]*1[[:blank:]]*$$' || \
- ( echo "unknown. Aborting."; exit 1)
+ ( echo "unknown (\"$(ARCH)\"). Aborting."; exit 1)
@printf "%s\n" '$(ARCH)'
@printf "Target OS is "
@# FreeBSD wc will output extraneous whitespace.
@echo $(TARGET_OS)|wc -w|grep -q '^[[:blank:]]*1[[:blank:]]*$$' || \
- ( echo "unknown. Aborting."; exit 1)
+ ( echo "unknown (\"$(TARGET_OS)\"). Aborting."; exit 1)
@printf "%s\n" '$(TARGET_OS)'
ifeq ($(TARGET_OS), libpayload)
@$(CC) --version 2>&1 | grep -q coreboot || \