[PATCH] gnu: grub: Support graphical gfxterm on all systems.

  • Done
  • quality assurance status badge
Details
2 participants
  • Mathieu Othacehe
  • Stefan
Owner
unassigned
Submitted by
Stefan
Severity
normal
S
S
Stefan wrote on 7 Jun 2020 14:14
(address . bug-guix@gnu.org)(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
62F29C87-CB4C-404B-AC39-562FBFB2350E@vodafonemail.de
* gnu/bootloaders/grub.scm (eye-candy): Use gfxterm depending only on
(bootloader-configuration (terminal-outputs …)), which defaults to '(gfxterm).
This makes the system argument obsolete.
---
gnu/bootloader/grub.scm | 46 ++++++++++++-----------------------------
1 file changed, 13 insertions(+), 33 deletions(-)

Toggle diff (86 lines)
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 2d9a39afc3..544847b9cd 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -135,41 +135,25 @@ file with the resolution provided in CONFIG."
(_ #f)))))
(define* (eye-candy config store-device store-mount-point
- #:key store-directory-prefix system port)
+ #:key store-directory-prefix port)
"Return a gexp that writes to PORT (a port-valued gexp) the 'grub.cfg' part
concerned with graphics mode, background images, colors, and all that.
STORE-DEVICE designates the device holding the store, and STORE-MOUNT-POINT is
its mount point; these are used to determine where the background image and
-fonts must be searched for. SYSTEM must be the target system string---e.g.,
-\"x86_64-linux\". STORE-DIRECTORY-PREFIX is a directory prefix to prepend to
-any store file name."
- (define setup-gfxterm-body
- (let ((gfxmode
- (or (and-let* ((theme (bootloader-configuration-theme config))
- (gfxmode (grub-theme-gfxmode theme)))
- (string-join gfxmode ";"))
- "auto")))
-
- ;; Intel and EFI systems need to be switched into graphics mode, whereas
- ;; most other modern architectures have no other mode and therefore
- ;; don't need to be switched.
-
- ;; XXX: Do we really need to restrict to x86 systems? We could imitate
- ;; what the GRUB default configuration does and decide based on whether
- ;; a user provided 'gfxterm' in the terminal-outputs field of their
- ;; bootloader-configuration record.
- (if (string-match "^(x86_64|i[3-6]86)-" system)
- (format #f "
- set gfxmode=~a
- insmod all_video
- insmod gfxterm~%" gfxmode)
- "")))
-
+fonts must be searched for. STORE-DIRECTORY-PREFIX is a directory prefix to
+prepend to any store file name."
(define (setup-gfxterm config font-file)
(if (memq 'gfxterm (bootloader-configuration-terminal-outputs config))
- #~(format #f "if loadfont ~a; then
- setup_gfxterm
-fi~%" #+font-file)
+ #~(format #f "
+if loadfont ~a; then
+ set gfxmode=~a
+ insmod all_video
+ insmod gfxterm
+fi~%"
+ #$font-file
+ #$(string-join
+ (grub-theme-gfxmode (bootloader-theme config))
+ ";"))
""))
(define (theme-colors type)
@@ -190,8 +174,6 @@ fi~%" #+font-file)
(and image
#~(format #$port "
-function setup_gfxterm {~a}
-
# Set 'root' to the partition that contains /gnu/store.
~a
@@ -206,7 +188,6 @@ else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi~%"
- #$setup-gfxterm-body
#$(grub-root-search store-device font-file)
#$(setup-gfxterm config font-file)
#$(grub-setup-io config)
@@ -358,7 +339,6 @@ when booting a root file system on a Btrfs subvolume."
(menu-entry-device (first all-entries))
(menu-entry-device-mount-point (first all-entries))
#:store-directory-prefix store-directory-prefix
- #:system system
#:port #~port))
(define keyboard-layout-config
--
2.26.0
M
M
Mathieu Othacehe wrote on 9 Jun 2020 11:12
(name . Stefan)(address . stefan-guix@vodafonemail.de)(address . 41746@debbugs.gnu.org)
874krkppqq.fsf@gnu.org
Hey Stefan,

Toggle quote (4 lines)
> * gnu/bootloaders/grub.scm (eye-candy): Use gfxterm depending only on
> (bootloader-configuration (terminal-outputs …)), which defaults to '(gfxterm).
> This makes the system argument obsolete.

This looks good, however due to recent changes in this file (multiboot
support), it doesn't apply well. Could you please rebase it and send and
updated version?

Thanks,

Mathieu
S
S
Stefan wrote on 9 Jun 2020 14:16
(name . Mathieu Othacehe)(address . othacehe@gnu.org)(address . 41746@debbugs.gnu.org)
3769C832-C378-4C83-A9C2-A2DE19D97F13@vodafonemail.de
* gnu/bootloaders/grub.scm (eye-candy): Use gfxterm depending only on
(bootloader-configuration (terminal-outputs …)), which defaults to '(gfxterm).
This makes the system argument obsolete.
---
gnu/bootloader/grub.scm | 46 ++++++++++++-----------------------------
1 file changed, 13 insertions(+), 33 deletions(-)

Toggle diff (86 lines)
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index d4dbb57131..e3b8416d6d 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -135,41 +135,25 @@ file with the resolution provided in CONFIG."
(_ #f)))))
(define* (eye-candy config store-device store-mount-point
- #:key store-directory-prefix system port)
+ #:key store-directory-prefix port)
"Return a gexp that writes to PORT (a port-valued gexp) the 'grub.cfg' part
concerned with graphics mode, background images, colors, and all that.
STORE-DEVICE designates the device holding the store, and STORE-MOUNT-POINT is
its mount point; these are used to determine where the background image and
-fonts must be searched for. SYSTEM must be the target system string---e.g.,
-\"x86_64-linux\". STORE-DIRECTORY-PREFIX is a directory prefix to prepend to
-any store file name."
- (define setup-gfxterm-body
- (let ((gfxmode
- (or (and-let* ((theme (bootloader-configuration-theme config))
- (gfxmode (grub-theme-gfxmode theme)))
- (string-join gfxmode ";"))
- "auto")))
-
- ;; Intel and EFI systems need to be switched into graphics mode, whereas
- ;; most other modern architectures have no other mode and therefore
- ;; don't need to be switched.
-
- ;; XXX: Do we really need to restrict to x86 systems? We could imitate
- ;; what the GRUB default configuration does and decide based on whether
- ;; a user provided 'gfxterm' in the terminal-outputs field of their
- ;; bootloader-configuration record.
- (if (string-match "^(x86_64|i[3-6]86)-" system)
- (format #f "
- set gfxmode=~a
- insmod all_video
- insmod gfxterm~%" gfxmode)
- "")))
-
+fonts must be searched for. STORE-DIRECTORY-PREFIX is a directory prefix to
+prepend to any store file name."
(define (setup-gfxterm config font-file)
(if (memq 'gfxterm (bootloader-configuration-terminal-outputs config))
- #~(format #f "if loadfont ~a; then
- setup_gfxterm
-fi~%" #+font-file)
+ #~(format #f "
+if loadfont ~a; then
+ set gfxmode=~a
+ insmod all_video
+ insmod gfxterm
+fi~%"
+ #$font-file
+ #$(string-join
+ (grub-theme-gfxmode (bootloader-theme config))
+ ";"))
""))
(define (theme-colors type)
@@ -190,8 +174,6 @@ fi~%" #+font-file)
(and image
#~(format #$port "
-function setup_gfxterm {~a}
-
# Set 'root' to the partition that contains /gnu/store.
~a
@@ -206,7 +188,6 @@ else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi~%"
- #$setup-gfxterm-body
#$(grub-root-search store-device font-file)
#$(setup-gfxterm config font-file)
#$(grub-setup-io config)
@@ -380,7 +361,6 @@ menuentry ~s {
device
mount-point
#:store-directory-prefix store-directory-prefix
- #:system system
#:port #~port)))
(define keyboard-layout-config
--
2.26.0
M
M
Mathieu Othacehe wrote on 9 Jun 2020 14:24
(name . Stefan)(address . stefan-guix@vodafonemail.de)(address . 41746@debbugs.gnu.org)
87mu5co296.fsf@gnu.org
Thanks for rebasing :)

Your copyright is missing, is this ok for you if I use:

"Stefan <stefan-guix@vodafonemail.de>"

or would you prefer something else?

Mathieu
S
S
Stefan wrote on 9 Jun 2020 14:26
(name . Mathieu Othacehe)(address . othacehe@gnu.org)(address . 41746@debbugs.gnu.org)
47E5D4EC-E3BA-4855-ACD7-D408D0E8D10A@vodafonemail.de
Welcome. Yes, that’s fine.

Toggle quote (12 lines)
> Am 09.06.2020 um 14:24 schrieb Mathieu Othacehe <othacehe@gnu.org>:
>
>
> Thanks for rebasing :)
>
> Your copyright is missing, is this ok for you if I use:
>
> "Stefan <stefan-guix@vodafonemail.de>"
>
> or would you prefer something else?
>
> Mathieu
M
M
Mathieu Othacehe wrote on 9 Jun 2020 17:20
(name . Stefan)(address . stefan-guix@vodafonemail.de)(address . 41746-done@debbugs.gnu.org)
87ftb4nu57.fsf@gnu.org
Toggle quote (2 lines)
> Welcome. Yes, that’s fine.

I fixed indentation, added your copyright and pushed!

Thanks,

Mathieu
Closed
?