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'.
This commit is contained in:
parent
e76bdf8b87
commit
00e219d1c9
|
@ -48,3 +48,4 @@ config.cache
|
||||||
/guix-download
|
/guix-download
|
||||||
/distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz
|
/distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz
|
||||||
/guix-package
|
/guix-package
|
||||||
|
/guix/config.scm
|
||||||
|
|
|
@ -46,7 +46,7 @@ MODULES = \
|
||||||
distro/packages/ld-wrapper.scm \
|
distro/packages/ld-wrapper.scm \
|
||||||
distro/packages/typesetting.scm
|
distro/packages/typesetting.scm
|
||||||
|
|
||||||
GOBJECTS = $(MODULES:%.scm=%.go)
|
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go
|
||||||
|
|
||||||
nobase_dist_guilemodule_DATA = $(MODULES)
|
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 "$@"`
|
$(MKDIR_P) `dirname "$@"`
|
||||||
$(DOWNLOAD_FILE) "$@" "93b537766dfab3ad287143523751e3ec02dd32d3ccaf88ad2d31c63158f342ee"
|
$(DOWNLOAD_FILE) "$@" "93b537766dfab3ad287143523751e3ec02dd32d3ccaf88ad2d31c63158f342ee"
|
||||||
|
|
||||||
nobase_nodist_guilemodule_DATA = $(GOBJECTS)
|
nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm
|
||||||
|
|
||||||
TESTS = \
|
TESTS = \
|
||||||
tests/builders.scm \
|
tests/builders.scm \
|
||||||
|
|
|
@ -79,6 +79,7 @@ AC_SUBST([LIBGCRYPT])
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile
|
AC_CONFIG_FILES([Makefile
|
||||||
po/Makefile.in
|
po/Makefile.in
|
||||||
|
guix/config.scm
|
||||||
guix-build
|
guix-build
|
||||||
guix-download
|
guix-download
|
||||||
guix-package
|
guix-package
|
||||||
|
|
|
@ -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
|
|
@ -17,6 +17,7 @@
|
||||||
;;; along with Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(define-module (guix utils)
|
(define-module (guix utils)
|
||||||
|
#:use-module (guix config)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-9)
|
#:use-module (srfi srfi-9)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
|
@ -392,10 +393,6 @@ starting from the right of S."
|
||||||
;;; Hash.
|
;;; Hash.
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define %libgcrypt
|
|
||||||
;; Name of the libgcrypt shared library.
|
|
||||||
(compile-time-value (or (getenv "LIBGCRYPT") "libgcrypt")))
|
|
||||||
|
|
||||||
(define sha256
|
(define sha256
|
||||||
(cond
|
(cond
|
||||||
((compile-time-value
|
((compile-time-value
|
||||||
|
@ -458,13 +455,12 @@ starting from the right of S."
|
||||||
(define %nixpkgs-directory
|
(define %nixpkgs-directory
|
||||||
(make-parameter
|
(make-parameter
|
||||||
;; Capture the build-time value of $NIXPKGS.
|
;; Capture the build-time value of $NIXPKGS.
|
||||||
(or (compile-time-value (getenv "NIXPKGS"))
|
(or %nixpkgs (getenv "NIXPKGS"))))
|
||||||
(getenv "NIXPKGS"))))
|
|
||||||
|
|
||||||
(define* (nixpkgs-derivation attribute #:optional (system (%current-system)))
|
(define* (nixpkgs-derivation attribute #:optional (system (%current-system)))
|
||||||
"Return the derivation path of ATTRIBUTE in Nixpkgs."
|
"Return the derivation path of ATTRIBUTE in Nixpkgs."
|
||||||
(let* ((p (open-pipe* OPEN_READ (or (getenv "NIX_INSTANTIATE")
|
(let* ((p (open-pipe* OPEN_READ (or (getenv "NIX_INSTANTIATE")
|
||||||
"nix-instantiate")
|
%nix-instantiate)
|
||||||
"-A" attribute (%nixpkgs-directory)
|
"-A" attribute (%nixpkgs-directory)
|
||||||
"--argstr" "system" system))
|
"--argstr" "system" system))
|
||||||
(l (read-line p))
|
(l (read-line p))
|
||||||
|
|
|
@ -41,10 +41,7 @@ export PATH
|
||||||
# auto-compilation.
|
# auto-compilation.
|
||||||
|
|
||||||
NIX_HASH="@NIX_HASH@"
|
NIX_HASH="@NIX_HASH@"
|
||||||
NIX_INSTANTIATE="@NIX_INSTANTIATE@"
|
|
||||||
NIXPKGS="@NIXPKGS@"
|
|
||||||
LIBGCRYPT="@LIBGCRYPT@"
|
|
||||||
|
|
||||||
export NIX_HASH NIX_INSTANTIATE NIXPKGS LIBGCRYPT
|
export NIX_HASH
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
Loading…
Reference in New Issue