GNU bug report logs -
#69343
[PATCH 00/12] Simplify bootloader data structures and procedures
Previous Next
Full log
Message #184 received at 69343 <at> debbugs.gnu.org (full text, mbox):
From: Felix Lechner <felix.lechner <at> lease-up.com>
* gnu/system/boot.scm (decorated-boot-label): New procedure.
* gnu/machine/ssh.scm (machine-boot-parameters): Use
decorated-boot-label.
* guix/scripts/system.scm
(profile-boot-parameters)[system->boot-parameters]: Use
decorated-boot-label.
Change-Id: Id348c3047df2353f76b1bad0eb2a3e0fa17e474c
---
gnu/machine/ssh.scm | 8 ++------
gnu/system/boot.scm | 13 +++++++++++++
guix/scripts/system.scm | 8 +++-----
3 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index 86c21256eb..3a0116ac0d 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -459,15 +459,11 @@ (define (machine-boot-parameters machine)
(let* ((params (call-with-input-string serialized-params
read-boot-parameters))
(root (boot-parameters-root-device params))
- (label (boot-parameters-label params))
+ (text (boot-parameters-label params))
(version (boot-parameters-version params)))
(boot-parameters
(inherit params)
- (label
- (string-append label " (#"
- (number->string generation) ", "
- (epoch->date-string epoch)
- ")"))
+ (label (decorated-boot-label text generation epoch))
(kernel-arguments
(append (bootable-kernel-arguments system-path root version)
(boot-parameters-kernel-arguments params))))))))
diff --git a/gnu/system/boot.scm b/gnu/system/boot.scm
index c1d58a2743..1e0d75212f 100644
--- a/gnu/system/boot.scm
+++ b/gnu/system/boot.scm
@@ -10,6 +10,8 @@
;;; Copyright © 2020 Janneke Nieuwenhuizen <jannek <at> gnu.org>
;;; Copyright © 2020, 2022 Efraim Flashner <efraim <at> flashner.co.il>
;;; Copyright © 2024 Nicolas Graves <ngraves <at> ngraves.fr>
+;;; Copyright © 2024 Felix Lechner <felix.lechner <at> lease-up.com>
+;;; Copyright © 2024 Herman Rimm <herman <at> rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -66,6 +68,7 @@ (define-module (gnu system boot)
bootable-kernel-arguments
epoch->date-string
+ decorated-boot-label
boot-parameters->menu-entry
ensure-not-/dev
@@ -298,6 +301,16 @@ (define (epoch->date-string epoch)
(date->string (time-utc->date time)
"~Y-~m-~d ~H:~M")))
+(define (decorated-boot-label text generation epoch)
+ "Return a string for a nice boot label that includes TEXT, a numbered
+GENERATION, and a timestamp derived from EPOCH seconds."
+ (let ((count (and generation
+ (string-append "#" (number->string generation))))
+ (timestamp (and=> epoch epoch->date-string)))
+ (match (filter identity (list count timestamp))
+ (() text)
+ (extras (string-append text "(" (string-join extras ", ") ")")))))
+
(define (boot-parameters->menu-entry conf)
"Return a <menu-entry> instance given CONF, a <boot-parameters> instance."
(let* ((kernel (boot-parameters-kernel conf))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index b197812e63..84eb99b938 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -337,12 +337,10 @@ (define* (profile-boot-parameters #:optional (profile %system-profile)
(define (system->boot-parameters system number epoch)
(unless-file-not-found
(let* ((params (read-boot-parameters-file system))
- (label (boot-parameters-label params)))
+ (text (boot-parameters-label params)))
(boot-parameters
- (inherit params)
- (label (string-append label " (#"
- (number->string number) ", "
- (epoch->date-string epoch) ")"))))))
+ (inherit params)
+ (label (decorated-boot-label text number epoch))))))
(let* ((systems (map (cut generation-file-name profile <>)
numbers))
(times (map (lambda (system)
--
2.45.2
This bug report was last modified 267 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.