gnu: rust-gag-0.1: Fix typo.
[jackhill/guix/guix.git] / guix / config.scm.in
index 772ea8c..d582d91 100644 (file)
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Caleb Ristvedt <caleb.ristvedt@cune.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
             %guix-version
             %guix-bug-report-address
             %guix-home-page-url
+
+            %channel-metadata
+
+            %storedir
+            %localstatedir
+            %sysconfdir
+
             %store-directory
             %state-directory
+            %store-database-directory
+            %config-directory
+
             %system
-            %libgcrypt
-            %nixpkgs
-            %nix-instantiate
             %gzip
             %bzip2
             %xz))
 
 ;;; Commentary:
 ;;;
-;;; Compile-time configuration of Guix.
+;;; Compile-time configuration of Guix.  When adding a substitution variable
+;;; here, make sure to equip (guix scripts pull) to substitute it.
 ;;;
 ;;; Code:
 
 (define %guix-home-page-url
   "@PACKAGE_URL@")
 
-(define %store-directory
+(define %channel-metadata
+  ;; When true, this is an sexp containing metadata for the 'guix' channel
+  ;; this file was built from.  This is used by (guix describe).
+  (let ((url    @GUIX_CHANNEL_URL@)
+        (commit @GUIX_CHANNEL_COMMIT@)
+        (intro  @GUIX_CHANNEL_INTRODUCTION@))
+    (and url commit
+         `(repository
+           (version 0)
+           (url ,url)
+           (branch "master")                      ;XXX: doesn't really matter
+           (commit ,commit)
+           (name guix)
+           ,@(if intro
+                 `((introduction
+                    (channel-introduction
+                     (version 0)
+                     (commit ,(car intro))
+                     (signer ,(cdr intro)))))
+                 '())))))
+
+(define %storedir
   "@storedir@")
 
-(define %state-directory
-  ;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
-  "@guix_localstatedir@/nix")
+(define %localstatedir
+  "@guix_localstatedir@")
 
-(define %system
-  "@guix_system@")
+(define %sysconfdir
+  "@guix_sysconfdir@")
+
+(define %store-directory
+  (or (and=> (getenv "NIX_STORE_DIR") canonicalize-path)
+      %storedir))
 
-(define %libgcrypt
-  "@LIBGCRYPT@")
+(define %state-directory
+  ;; This must match `NIX_STATE_DIR' as defined in `nix/local.mk'.
+  (or (getenv "GUIX_STATE_DIRECTORY")
+      (string-append %localstatedir "/guix")))
 
-(define %nixpkgs
-  (if (string=? "@NIXPKGS@" "")
-      #f
-      "@NIXPKGS@"))
+(define %store-database-directory
+  (or (getenv "GUIX_DATABASE_DIRECTORY")
+      (string-append %state-directory "/db")))
 
-(define %nix-instantiate
-  "@NIX_INSTANTIATE@")
+(define %config-directory
+  ;; This must match `GUIX_CONFIGURATION_DIRECTORY' as defined in `nix/local.mk'.
+  (or (getenv "GUIX_CONFIGURATION_DIRECTORY")
+      (string-append %sysconfdir "/guix")))
+
+(define %system
+  "@guix_system@")
 
 (define %gzip
   "@GZIP@")