[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
09/14: guix system: 'describe' shows the running system, not the current
From: |
guix-commits |
Subject: |
09/14: guix system: 'describe' shows the running system, not the current one. |
Date: |
Wed, 2 Feb 2022 12:43:37 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit 9679123ce083c69cdfd1505d95a4066d41280394
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Mon Jan 31 23:29:37 2022 +0100
guix system: 'describe' shows the running system, not the current one.
* guix/profiles.scm (generation-number): Add optional 'base-profile'
parameter and use it.
* guix/scripts/system.scm (process-command): Add "/run/current-system"
as first argument to 'generation-number'.
* doc/guix.texi (Invoking guix system): Clarify that 'guix system
describe' shows the running system.
---
doc/guix.texi | 14 +++++++++++++-
guix/profiles.scm | 13 +++++++++----
guix/scripts/system.scm | 4 ++--
3 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index b10f0d085b..ceec0d0cf5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -35811,9 +35811,21 @@ bootloader boot menu:
@table @code
@item describe
-Describe the current system generation: its file name, the kernel and
+Describe the running system generation: its file name, the kernel and
bootloader used, etc., as well as provenance information when available.
+@quotation Note
+The @emph{running} system generation---referred to by
+@file{/run/current-system}---is not necessarily the @emph{current}
+system generation---referred to by @file{/var/guix/profiles/system}: it
+differs when, for instance, you chose from the bootloader menu to boot
+an older generation.
+
+It can also differ from the @emph{booted} system generation---referred
+to by @file{/run/booted-system}---for instance because you reconfigured
+the system in the meantime.
+@end quotation
+
@item list-generations
List a summary of each generation of the operating system available on
disk, in a human-readable way. This is similar to the
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 1d354ecb78..96be421727 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic
Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
@@ -2037,9 +2037,14 @@ paths."
(make-regexp (string-append "^" (regexp-quote (basename profile))
"-([0-9]+)")))
-(define (generation-number profile)
- "Return PROFILE's number or 0. An absolute file name must be used."
- (or (and=> (false-if-exception (regexp-exec (profile-regexp profile)
+(define* (generation-number profile
+ #:optional (base-profile profile))
+ "Return PROFILE's number or 0. An absolute file name must be used.
+
+Optionally, if BASE-PROFILE is provided, use it instead of PROFILE to
+construct the regexp matching generations. This is useful in special cases
+like: (generation-number \"/run/current-system\" %system-profile)."
+ (or (and=> (false-if-exception (regexp-exec (profile-regexp base-profile)
(basename (readlink profile))))
(compose string->number (cut match:substring <> 1)))
0))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 414e931c8a..430815902d 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès
<ludo@gnu.org>
+;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -1328,7 +1328,7 @@ argument list and OPTS is the option alist."
(x (leave (G_ "wrong number of arguments~%"))))))
(list-generations pattern)))
((describe)
- (match (generation-number %system-profile)
+ (match (generation-number "/run/current-system" %system-profile)
(0
(leave (G_ "no system generation, nothing to describe~%")))
(generation
- 10/14: gnu: oil: Update to 0.9.7., (continued)
- 10/14: gnu: oil: Update to 0.9.7., guix-commits, 2022/02/02
- 08/14: gnu: openttd: Update to 12.1., guix-commits, 2022/02/02
- 11/14: gnu: rr: Update to 5.5.0., guix-commits, 2022/02/02
- 02/14: gnu: perf: Remove input labels., guix-commits, 2022/02/02
- 04/14: import: pypi: Display a hint upon "no source release" errors., guix-commits, 2022/02/02
- 06/14: gnu: luminance-hdr: Remove input labels., guix-commits, 2022/02/02
- 01/14: gnu: perf: Help 'perf report --symfs' find separate debug info files., guix-commits, 2022/02/02
- 03/14: import: pypi: Use 'with-error-handling'., guix-commits, 2022/02/02
- 12/14: gnu: cgdb: Update to 0.8.0., guix-commits, 2022/02/02
- 13/14: deploy: Add '--execute'., guix-commits, 2022/02/02
- 09/14: guix system: 'describe' shows the running system, not the current one.,
guix-commits <=
- 14/14: news: Add entry about 'guix deploy -x'., guix-commits, 2022/02/02