;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016 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
- %guix-register-program
+
%system
- %libgcrypt
- %libz
- %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 %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 %localstatedir
+ "@guix_localstatedir@")
+
+(define %sysconfdir
+ "@guix_sysconfdir@")
+
(define %store-directory
(or (and=> (getenv "NIX_STORE_DIR") canonicalize-path)
- "@storedir@"))
+ %storedir))
(define %state-directory
;; This must match `NIX_STATE_DIR' as defined in `nix/local.mk'.
- (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
+ (or (getenv "GUIX_STATE_DIRECTORY")
+ (string-append %localstatedir "/guix")))
+
+(define %store-database-directory
+ (or (getenv "GUIX_DATABASE_DIRECTORY")
+ (string-append %state-directory "/db")))
(define %config-directory
;; This must match `GUIX_CONFIGURATION_DIRECTORY' as defined in `nix/local.mk'.
- (or (getenv "GUIX_CONFIGURATION_DIRECTORY") "@guix_sysconfdir@/guix"))
-
-(define %guix-register-program
- ;; The 'guix-register' program.
- (or (getenv "GUIX_REGISTER") "@guix_sbindir@/guix-register"))
+ (or (getenv "GUIX_CONFIGURATION_DIRECTORY")
+ (string-append %sysconfdir "/guix")))
(define %system
"@guix_system@")
-(define %libgcrypt
- "@LIBGCRYPT@")
-
-(define %libz
- "@LIBZ@")
-
-(define %nix-instantiate
- "@NIX_INSTANTIATE@")
-
(define %gzip
"@GZIP@")