summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-12-17 20:06:46 +0100
committerMarius Bakke <marius@gnu.org>2022-12-19 23:08:20 +0100
commit6ea7d25396e51fcd8f2a54f1f7460efbf5f93dbd (patch)
treea8f80d6414188b8ee40dd6b504fa4e882640e007
parentd241517d2cadac3122301b6260c0dfc9f3b383d6 (diff)
gnu: SeaBIOS: Use G-expression.
* gnu/packages/firmware.scm (seabios)[arguments]: Rewrite as gexp.
-rw-r--r--gnu/packages/firmware.scm119
1 files changed, 60 insertions, 59 deletions
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index a4e43e71ec..79e0577077 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -415,66 +415,67 @@ executing in M-mode.")
(build-system gnu-build-system)
(native-inputs (list python-wrapper))
(arguments
- `(#:tests? #f ; no check target
- #:make-flags '("EXTRAVERSION=-guix" ;upstream wants distros to set this
- "V=1") ;build verbosely
- #:modules (,@%gnu-build-system-modules
+ (list
+ #:tests? #f ;no tests
+ #:make-flags
+ #~'("EXTRAVERSION=-guix" ;upstream wants distros to set this
+ "V=1") ;build verbosely
+ #:modules `(,@%gnu-build-system-modules
(ice-9 match))
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda _
- ;; Create the ".version" file that is present in release tarballs.
- ;; Otherwise this will be regarded as an "unclean" build, and the
- ;; build system ends up encoding the build date in the binaries.
- (call-with-output-file ".version"
- (lambda (port)
- (format port ,(package-version this-package))))
- (setenv "CC" "gcc")))
- (add-after 'build 'build-vgabios
- (lambda* (#:key (make-flags ''()) #:allow-other-keys)
- (for-each
- (match-lambda
- ((target . config)
- (let* ((dot-config (string-append (getcwd) "/" target "/.config"))
- (flags (append make-flags
- (list (string-append "KCONFIG_CONFIG="
- dot-config)
- (string-append "OUT=" target "/")))))
- (mkdir target)
- (call-with-output-file dot-config
- (lambda (port)
- (for-each (lambda (entry)
- (if (string-suffix? "=n" entry)
- (format port "# CONFIG_~a is not set~%"
- (string-drop-right entry 2))
- (format port "CONFIG_~a~%" entry)))
- (cons "BUILD_VGABIOS=y" config))))
- (apply invoke "make" "oldnoconfig" flags)
- (apply invoke "make" flags)
- (link (string-append target "/bios.bin")
- (string-append "out/" target ".bin")))))
- ;; These tuples are modelled after Debians packaging:
- ;; https://salsa.debian.org/qemu-team/seabios/-/blob/master/debian/rules
- '(("ati" . ("VGA_ATI=y" "VGA_PCI=y"))
- ("bochs-display" . ("DISPLAY_BOCHS=y" "VGA_PCI=y"))
- ("cirrus" . ("VGA_CIRRUS=y" "VGA_PCI=y"))
- ("stdvga" . ("VGA_BOCHS=y" "VGA_PCI=y"))
- ("virtio" . ("VGA_BOCHS_VIRTIO=y" "VGA_PCI=y"))
- ("vmware" . ("VGA_BOCHS_VMWARE=y" "VGA_PCI=y"))
- ("qxl" . ("VGA_BOCHS_QXL=y" "VGA_PCI=y"))
- ("isavga" . ("VGA_BOCHS=y" "VGA_PCI=n"))
- ("ramfb" . ("VGA_RAMFB=y" "VGA_PCI=n"))))))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (fmw (string-append out "/share/firmware")))
- (for-each (lambda (bios)
- (install-file bios fmw))
- (find-files "out" "\\.bin$"))
- (with-directory-excursion fmw
- ;; QEMU 1.7 and later looks only for the latter.
- (symlink "bios.bin" "bios-256k.bin"))))))))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ ;; Create the ".version" file that is present in release tarballs.
+ ;; Otherwise this will be regarded as an "unclean" build, and the
+ ;; build system ends up encoding the build date in the binaries.
+ (call-with-output-file ".version"
+ (lambda (port)
+ (format port #$(package-version this-package))))
+ (setenv "CC" "gcc")))
+ (add-after 'build 'build-vgabios
+ (lambda* (#:key (make-flags #~'()) #:allow-other-keys)
+ (for-each
+ (match-lambda
+ ((target . config)
+ (let* ((dot-config (string-append (getcwd) "/" target "/.config"))
+ (flags (append make-flags
+ (list (string-append "KCONFIG_CONFIG="
+ dot-config)
+ (string-append "OUT=" target "/")))))
+ (mkdir target)
+ (call-with-output-file dot-config
+ (lambda (port)
+ (for-each (lambda (entry)
+ (if (string-suffix? "=n" entry)
+ (format port "# CONFIG_~a is not set~%"
+ (string-drop-right entry 2))
+ (format port "CONFIG_~a~%" entry)))
+ (cons "BUILD_VGABIOS=y" config))))
+ (apply invoke "make" "oldnoconfig" flags)
+ (apply invoke "make" flags)
+ (link (string-append target "/bios.bin")
+ (string-append "out/" target ".bin")))))
+ ;; These tuples are modelled after Debians packaging:
+ ;; https://salsa.debian.org/qemu-team/seabios/-/blob/master/debian/rules
+ '(("ati" . ("VGA_ATI=y" "VGA_PCI=y"))
+ ("bochs-display" . ("DISPLAY_BOCHS=y" "VGA_PCI=y"))
+ ("cirrus" . ("VGA_CIRRUS=y" "VGA_PCI=y"))
+ ("stdvga" . ("VGA_BOCHS=y" "VGA_PCI=y"))
+ ("virtio" . ("VGA_BOCHS_VIRTIO=y" "VGA_PCI=y"))
+ ("vmware" . ("VGA_BOCHS_VMWARE=y" "VGA_PCI=y"))
+ ("qxl" . ("VGA_BOCHS_QXL=y" "VGA_PCI=y"))
+ ("isavga" . ("VGA_BOCHS=y" "VGA_PCI=n"))
+ ("ramfb" . ("VGA_RAMFB=y" "VGA_PCI=n"))))))
+ (replace 'install
+ (lambda _
+ (let ((fmw (string-append #$output "/share/firmware")))
+ (for-each (lambda (bios)
+ (install-file bios fmw))
+ (find-files "out" "\\.bin$"))
+ (with-directory-excursion fmw
+ ;; QEMU 1.7 and later looks only for the latter.
+ (symlink "bios.bin" "bios-256k.bin"))))))))
(home-page "https://www.seabios.org/SeaBIOS")
(synopsis "x86 BIOS implementation")
(description "SeaBIOS is an implementation of a 16bit x86 BIOS. SeaBIOS