[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/08: Move search path specifications to (guix search-paths).
From: |
Ludovic Courtès |
Subject: |
03/08: Move search path specifications to (guix search-paths). |
Date: |
Mon, 04 May 2015 21:31:00 +0000 |
civodul pushed a commit to branch master
in repository guix.
commit e89431bf016830a919ec2430889f6c2679aab408
Author: Ludovic Courtès <address@hidden>
Date: Mon May 4 22:11:37 2015 +0200
Move search path specifications to (guix search-paths).
* guix/packages.scm (<search-path-specification>,
search-path-specification->sexp, sexp->search-path-specification):
Move to...
* guix/search-paths.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
* guix/build-system/cmake.scm, guix/build-system/glib-or-gtk.scm,
guix/build-system/gnu.scm, guix/build-system/haskell.scm,
guix/build-system/perl.scm, guix/build-system/python.scm,
guix/build-system/ruby.scm, guix/build-system/waf.scm,
guix/profiles.scm, guix/scripts/package.scm: Use it.
---
Makefile.am | 1 +
guix/build-system/cmake.scm | 1 +
guix/build-system/glib-or-gtk.scm | 1 +
guix/build-system/gnu.scm | 1 +
guix/build-system/haskell.scm | 1 +
guix/build-system/perl.scm | 1 +
guix/build-system/python.scm | 1 +
guix/build-system/ruby.scm | 1 +
guix/build-system/waf.scm | 1 +
guix/packages.scm | 44 +-------------------
guix/profiles.scm | 3 +-
guix/scripts/package.scm | 1 +
guix/search-paths.scm | 77 +++++++++++++++++++++++++++++++++++++
13 files changed, 92 insertions(+), 42 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index aa412bd..ae694eb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -87,6 +87,7 @@ MODULES = \
guix/build/gremlin.scm \
guix/build/emacs-utils.scm \
guix/build/graft.scm \
+ guix/search-paths.scm \
guix/packages.scm \
guix/import/utils.scm \
guix/import/gnu.scm \
diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm
index 1bc1879..25ac262 100644
--- a/guix/build-system/cmake.scm
+++ b/guix/build-system/cmake.scm
@@ -21,6 +21,7 @@
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix derivations)
+ #:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (guix packages)
diff --git a/guix/build-system/glib-or-gtk.scm
b/guix/build-system/glib-or-gtk.scm
index 954c716..a1f0a9b 100644
--- a/guix/build-system/glib-or-gtk.scm
+++ b/guix/build-system/glib-or-gtk.scm
@@ -22,6 +22,7 @@
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix derivations)
+ #:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (guix packages)
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index 2520224..da664e5 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -20,6 +20,7 @@
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix derivations)
+ #:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix packages)
#:use-module (srfi srfi-1)
diff --git a/guix/build-system/haskell.scm b/guix/build-system/haskell.scm
index 0fbf0b8..1cb7346 100644
--- a/guix/build-system/haskell.scm
+++ b/guix/build-system/haskell.scm
@@ -21,6 +21,7 @@
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix derivations)
+ #:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (ice-9 match)
diff --git a/guix/build-system/perl.scm b/guix/build-system/perl.scm
index 7833153..06af1dd 100644
--- a/guix/build-system/perl.scm
+++ b/guix/build-system/perl.scm
@@ -20,6 +20,7 @@
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix derivations)
+ #:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (guix packages)
diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm
index d498cf6..e9fffcc 100644
--- a/guix/build-system/python.scm
+++ b/guix/build-system/python.scm
@@ -23,6 +23,7 @@
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix derivations)
+ #:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (ice-9 match)
diff --git a/guix/build-system/ruby.scm b/guix/build-system/ruby.scm
index 83bc93d..e4fda30 100644
--- a/guix/build-system/ruby.scm
+++ b/guix/build-system/ruby.scm
@@ -22,6 +22,7 @@
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix derivations)
+ #:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (ice-9 match)
diff --git a/guix/build-system/waf.scm b/guix/build-system/waf.scm
index c67f649..044d2a0 100644
--- a/guix/build-system/waf.scm
+++ b/guix/build-system/waf.scm
@@ -21,6 +21,7 @@
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix derivations)
+ #:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module ((guix build-system python)
diff --git a/guix/packages.scm b/guix/packages.scm
index d7fced8..c955b35 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -26,6 +26,7 @@
#:use-module (guix base32)
#:use-module (guix derivations)
#:use-module (guix build-system)
+ #:use-module (guix search-paths)
#:use-module (guix gexp)
#:use-module (ice-9 match)
#:use-module (ice-9 vlist)
@@ -36,7 +37,8 @@
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:re-export (%current-system
- %current-target-system)
+ %current-target-system
+ search-path-specification) ;for convenience
#:export (origin
origin?
origin-uri
@@ -52,12 +54,6 @@
origin-imported-modules
base32
- <search-path-specification>
- search-path-specification
- search-path-specification?
- search-path-specification->sexp
- sexp->search-path-specification
-
package
package?
package-name
@@ -189,40 +185,6 @@ representation."
((_ str)
#'(nix-base32-string->bytevector str)))))
-;; The specification of a search path.
-(define-record-type* <search-path-specification>
- search-path-specification make-search-path-specification
- search-path-specification?
- (variable search-path-specification-variable) ;string
- (files search-path-specification-files) ;list of strings
- (separator search-path-specification-separator ;string
- (default ":"))
- (file-type search-path-specification-file-type ;symbol
- (default 'directory))
- (file-pattern search-path-specification-file-pattern ;#f | string
- (default #f)))
-
-(define (search-path-specification->sexp spec)
- "Return an sexp representing SPEC, a <search-path-specification>. The sexp
-corresponds to the arguments expected by `set-path-environment-variable'."
- ;; Note that this sexp format is used both by build systems and in
- ;; (guix profiles), so think twice before you change it.
- (match spec
- (($ <search-path-specification> variable files separator type pattern)
- `(,variable ,files ,separator ,type ,pattern))))
-
-(define (sexp->search-path-specification sexp)
- "Convert SEXP, which is as returned by 'search-path-specification->sexp', to
-a <search-path-specification> object."
- (match sexp
- ((variable files separator type pattern)
- (search-path-specification
- (variable variable)
- (files files)
- (separator separator)
- (file-type type)
- (file-pattern pattern)))))
-
(define %supported-systems
;; This is the list of system types that are supported. By default, we
;; expect all packages to build successfully here.
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 2e515d5..fd2afc0 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -22,8 +22,9 @@
(define-module (guix profiles)
#:use-module (guix utils)
#:use-module (guix records)
- #:use-module (guix derivations)
#:use-module (guix packages)
+ #:use-module (guix derivations)
+ #:use-module (guix search-paths)
#:use-module (guix gexp)
#:use-module (guix monads)
#:use-module (guix store)
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 003f695..44cacdc 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -25,6 +25,7 @@
#:use-module (guix derivations)
#:use-module (guix packages)
#:use-module (guix profiles)
+ #:use-module (guix search-paths)
#:use-module (guix monads)
#:use-module (guix utils)
#:use-module (guix config)
diff --git a/guix/search-paths.scm b/guix/search-paths.scm
new file mode 100644
index 0000000..147bfca
--- /dev/null
+++ b/guix/search-paths.scm
@@ -0,0 +1,77 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <address@hidden>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(define-module (guix search-paths)
+ #:use-module (guix records)
+ #:use-module (ice-9 match)
+ #:export (<search-path-specification>
+ search-path-specification
+ search-path-specification?
+ search-path-specification-variable
+ search-path-specification-files
+ search-path-specification-separator
+ search-path-specification-file-type
+ search-path-specification-file-pattern
+
+ search-path-specification->sexp
+ sexp->search-path-specification))
+
+;;; Commentary:
+;;;
+;;; This module defines "search path specifications", which allow packages to
+;;; declare environment variables that they use to define search paths. For
+;;; instance, GCC has the 'CPATH' variable, Guile has the 'GUILE_LOAD_PATH'
+;;; variable, etc.
+;;;
+;;; Code:
+
+;; The specification of a search path.
+(define-record-type* <search-path-specification>
+ search-path-specification make-search-path-specification
+ search-path-specification?
+ (variable search-path-specification-variable) ;string
+ (files search-path-specification-files) ;list of strings
+ (separator search-path-specification-separator ;string
+ (default ":"))
+ (file-type search-path-specification-file-type ;symbol
+ (default 'directory))
+ (file-pattern search-path-specification-file-pattern ;#f | string
+ (default #f)))
+
+(define (search-path-specification->sexp spec)
+ "Return an sexp representing SPEC, a <search-path-specification>. The sexp
+corresponds to the arguments expected by `set-path-environment-variable'."
+ ;; Note that this sexp format is used both by build systems and in
+ ;; (guix profiles), so think twice before you change it.
+ (match spec
+ (($ <search-path-specification> variable files separator type pattern)
+ `(,variable ,files ,separator ,type ,pattern))))
+
+(define (sexp->search-path-specification sexp)
+ "Convert SEXP, which is as returned by 'search-path-specification->sexp', to
+a <search-path-specification> object."
+ (match sexp
+ ((variable files separator type pattern)
+ (search-path-specification
+ (variable variable)
+ (files files)
+ (separator separator)
+ (file-type type)
+ (file-pattern pattern)))))
+
+;;; search-paths.scm ends here
- branch master updated (2534fc0 -> 954cea3), Ludovic Courtès, 2015/05/04
- 01/08: substitute: Increase TTL from 24h to 36h., Ludovic Courtès, 2015/05/04
- 02/08: gnu: Add markdown., Ludovic Courtès, 2015/05/04
- 05/08: search-paths: Add 'environment-variable-definition'., Ludovic Courtès, 2015/05/04
- 07/08: profiles: Use a &message error condition instead of 'error'., Ludovic Courtès, 2015/05/04
- 06/08: search-paths: 'evaluate-search-paths' now returns spec/value pairs., Ludovic Courtès, 2015/05/04
- 03/08: Move search path specifications to (guix search-paths).,
Ludovic Courtès <=
- 08/08: records: Make 'make-syntactic-constructor' available at load/eval/expand., Ludovic Courtès, 2015/05/04
- 04/08: search-paths: Add 'evaluate-search-paths', from (guix scripts package)., Ludovic Courtès, 2015/05/04