diff options
author | Ludovic Courtès <ludo@gnu.org> | 2012-11-03 21:07:52 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2012-11-03 21:11:28 +0100 |
commit | 00e219d1c98e55dd1b6c6af00ae73c23ed52583e (patch) | |
tree | 28565d9ddd0ed72f7d35b0500b61745e3e7412d2 | |
parent | e76bdf8b87920b87a2a2e728c2e40ff24ca39ffe (diff) | |
download | guix-00e219d1c98e55dd1b6c6af00ae73c23ed52583e.tar.gz guix-00e219d1c98e55dd1b6c6af00ae73c23ed52583e.zip |
build: Produce (guix config) instead of using compile-time tricks.
* guix/config.scm.in: New file.
* guix/utils.scm: Use it.
(%libgcrypt): Remove.
(%nixpkgs-directory): Don't capture the compile-time $NIXPKGS; use
%NIXPKGS instead.
(nixpkgs-derivation): Use %NIX-INSTANTIATE.
* pre-inst-env.in (NIX_INSTANTIATE, NIXPKGS, LIBGCRYPT): Remove.
* configure.ac: Emit `guix/config.scm'.
* Makefile.am (GOBJECTS): Add `guix/config.go'.
(nobase_nodist_guilemodule_DATA): Add `guix/config.scm'.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | guix/config.scm.in | 53 | ||||
-rw-r--r-- | guix/utils.scm | 10 | ||||
-rw-r--r-- | pre-inst-env.in | 5 |
6 files changed, 61 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore index e6b254ae44..eb4238f0b0 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,4 @@ config.cache /guix-download /distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz /guix-package +/guix/config.scm diff --git a/Makefile.am b/Makefile.am index 0621cb8c00..b06f575e6c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -46,7 +46,7 @@ MODULES = \ distro/packages/ld-wrapper.scm \ distro/packages/typesetting.scm -GOBJECTS = $(MODULES:%.scm=%.go) +GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go nobase_dist_guilemodule_DATA = $(MODULES) @@ -112,7 +112,7 @@ distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz: guix/utils.go $(MKDIR_P) `dirname "$@"` $(DOWNLOAD_FILE) "$@" "93b537766dfab3ad287143523751e3ec02dd32d3ccaf88ad2d31c63158f342ee" -nobase_nodist_guilemodule_DATA = $(GOBJECTS) +nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm TESTS = \ tests/builders.scm \ diff --git a/configure.ac b/configure.ac index 85bd20e2be..6d3d1482b4 100644 --- a/configure.ac +++ b/configure.ac @@ -79,6 +79,7 @@ AC_SUBST([LIBGCRYPT]) AC_CONFIG_FILES([Makefile po/Makefile.in + guix/config.scm guix-build guix-download guix-package diff --git a/guix/config.scm.in b/guix/config.scm.in new file mode 100644 index 0000000000..462dcd0ed1 --- /dev/null +++ b/guix/config.scm.in @@ -0,0 +1,53 @@ +;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of Guix. +;;; +;;; 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. +;;; +;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (guix config) + #:export (%guix-package-name + %guix-version + %guix-bug-report-address + %libgcrypt + %nixpkgs + %nix-instantiate)) + +;;; Commentary: +;;; +;;; Compile-time configuration of Guix. +;;; +;;; Code: + +(define %guix-package-name + "@PACKAGE_NAME@") + +(define %guix-version + "@PACKAGE_VERSION@") + +(define %guix-bug-report-address + "@PACKAGE_BUGREPORT@") + +(define %libgcrypt + "@LIBGCRYPT@") + +(define %nixpkgs + (if (string=? "@NIXPKGS@" "") + #f + "@NIXPKGS@")) + +(define %nix-instantiate + "@NIX_INSTANTIATE@") + +;;; config.scm ends here diff --git a/guix/utils.scm b/guix/utils.scm index 287a6d4f3a..10b0c15fad 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -17,6 +17,7 @@ ;;; along with Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix utils) + #:use-module (guix config) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) @@ -392,10 +393,6 @@ starting from the right of S." ;;; Hash. ;;; -(define %libgcrypt - ;; Name of the libgcrypt shared library. - (compile-time-value (or (getenv "LIBGCRYPT") "libgcrypt"))) - (define sha256 (cond ((compile-time-value @@ -458,13 +455,12 @@ starting from the right of S." (define %nixpkgs-directory (make-parameter ;; Capture the build-time value of $NIXPKGS. - (or (compile-time-value (getenv "NIXPKGS")) - (getenv "NIXPKGS")))) + (or %nixpkgs (getenv "NIXPKGS")))) (define* (nixpkgs-derivation attribute #:optional (system (%current-system))) "Return the derivation path of ATTRIBUTE in Nixpkgs." (let* ((p (open-pipe* OPEN_READ (or (getenv "NIX_INSTANTIATE") - "nix-instantiate") + %nix-instantiate) "-A" attribute (%nixpkgs-directory) "--argstr" "system" system)) (l (read-line p)) diff --git a/pre-inst-env.in b/pre-inst-env.in index 2fb60e2edd..d90934c184 100644 --- a/pre-inst-env.in +++ b/pre-inst-env.in @@ -41,10 +41,7 @@ export PATH # auto-compilation. NIX_HASH="@NIX_HASH@" -NIX_INSTANTIATE="@NIX_INSTANTIATE@" -NIXPKGS="@NIXPKGS@" -LIBGCRYPT="@LIBGCRYPT@" -export NIX_HASH NIX_INSTANTIATE NIXPKGS LIBGCRYPT +export NIX_HASH exec "$@" |