guix-commits
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]