;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012-2016, 2018-2019, 2021, 2023 Ludovic Courtès ;;; Copyright © 2017 Caleb Ristvedt ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (guix config) #:export (%guix-package-name %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 %git %gzip %bzip2 %xz)) ;;; Commentary: ;;; ;;; Compile-time configuration of Guix. When adding a substitution variable ;;; here, make sure to equip (guix scripts pull) to substitute it. ;;; ;;; Code: (define %guix-package-name "@PACKAGE_NAME@") (define %guix-version "@PACKAGE_VERSION@") (define %guix-bug-report-address "@PACKAGE_BUGREPORT@") (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)) (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 %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") (string-append %sysconfdir "/guix"))) (define %system "@guix_system@") (define %git "@GIT@") (define %gzip "@GZIP@") (define %bzip2 "@BZIP2@") (define %xz "@XZ@") ;;; config.scm ends here