build: Produce (guix config) instead of using compile-time tricks.
authorLudovic Courtès <ludo@gnu.org>
Sat, 3 Nov 2012 20:07:52 +0000 (21:07 +0100)
committerLudovic Courtès <ludo@gnu.org>
Sat, 3 Nov 2012 20:11:28 +0000 (21:11 +0100)
* 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'.

.gitignore
Makefile.am
configure.ac
guix/config.scm.in [new file with mode: 0644]
guix/utils.scm
pre-inst-env.in

index e6b254a..eb4238f 100644 (file)
@@ -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
index 0621cb8..b06f575 100644 (file)
@@ -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                           \
index 85bd20e..6d3d148 100644 (file)
@@ -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 (file)
index 0000000..462dcd0
--- /dev/null
@@ -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
index 287a6d4..10b0c15 100644 (file)
@@ -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))
index 2fb60e2..d90934c 100644 (file)
@@ -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 "$@"