summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-11-14 11:05:22 +0100
committerLudovic Courtès <ludo@gnu.org>2022-11-14 12:31:33 +0100
commit54003af85cc5b689bd328b30617c93ed2f5fd647 (patch)
treec06a9834163c113ed629d115a44524012a8d7874
parent4cc746820a4043c029e26926f85c5e3c1d1b9eb3 (diff)
downloadguix-54003af85cc5b689bd328b30617c93ed2f5fd647.tar.gz
self: Mark the generation (guix config) as non-declarative.
Fixes <https://issues.guix.gnu.org/58927>.
Reported by Maxime Devos <maximedevos@telenet.be>
and Marius Bakke <marius@gnu.org>.

Starting from 076e825dc5d585943ce820a279fffe4af09757fb, "guix --version"
would print "0" as the version number, due to '%guix-version' being
inlined in (guix ui) when compiling '*core-modules*' in (guix self).

* guix/self.scm (make-config.scm): Pass #:declarative? #f.
-rw-r--r--guix/self.scm6
1 files changed, 6 insertions, 0 deletions
diff --git a/guix/self.scm b/guix/self.scm
index f46a09be52..93019e1c64 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -1090,6 +1090,12 @@ itself."
   (scheme-file "config.scm"
                #~(;; The following expressions get spliced.
                    (#$defmod (guix config)
+
+                     ;; Mark it as non-declarative to prevent cross-module
+                     ;; inlining that could lead to inlining %GUIX-VERSION in
+                     ;; (guix ui).
+                     #:declarative? #f
+
                      #:export (%guix-package-name
                                %guix-version
                                %guix-bug-report-address