[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/05: packages: Add the channel .go files to the search path.
From: |
guix-commits |
Subject: |
03/05: packages: Add the channel .go files to the search path. |
Date: |
Mon, 11 Mar 2019 18:12:34 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit bfc9c339301ffe6dd15d156894dc27e05f6f081f
Author: Ludovic Courtès <address@hidden>
Date: Mon Mar 11 22:14:30 2019 +0100
packages: Add the channel .go files to the search path.
Until now %LOAD-COMPILED-PATH would wrongfully contain:
CHANNEL/share/guile/site/X.Y
for each channel, thereby ignoring all the .go files of channels. This
fixes it so that %LOAD-COMPILED-PATH instead contains:
CHANNEL/lib/guile/X.Y/site-ccache
* guix/describe.scm (current-channel-entries): New procedure.
(package-path-entries): Change to return the %LOAD-COMPILED-PATH entries
as a second value.
* gnu/packages.scm (%package-module-path): Expect two values from
'package-path-entries' and augment %LOAD-COMPILED-PATH accordingly.
---
gnu/packages.scm | 17 ++++++++++-------
guix/describe.scm | 31 ++++++++++++++++++++-----------
2 files changed, 30 insertions(+), 18 deletions(-)
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 7b17e70..9f211ae 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -155,23 +155,26 @@ flags."
;; Search path for package modules. Each item must be either a directory
;; name or a pair whose car is a directory and whose cdr is a sub-directory
;; to narrow the search.
- (let* ((not-colon (char-set-complement (char-set #\:)))
- (environment (string-tokenize (or (getenv "GUIX_PACKAGE_PATH") "")
- not-colon))
- (channels (package-path-entries)))
+ (let*-values (((not-colon)
+ (char-set-complement (char-set #\:)))
+ ((environment)
+ (string-tokenize (or (getenv "GUIX_PACKAGE_PATH") "")
+ not-colon))
+ ((channels-scm channels-go)
+ (package-path-entries)))
;; Automatically add channels and items from $GUIX_PACKAGE_PATH to Guile's
;; search path. For historical reasons, $GUIX_PACKAGE_PATH goes to the
;; front; channels go to the back so that they don't override Guix' own
;; modules.
(set! %load-path
- (append environment %load-path channels))
+ (append environment %load-path channels-scm))
(set! %load-compiled-path
- (append environment %load-compiled-path channels))
+ (append environment %load-compiled-path channels-go))
(make-parameter
(append environment
%default-package-module-path
- channels))))
+ channels-scm))))
(define %patch-path
;; Define it after '%package-module-path' so that '%load-path' contains user
diff --git a/guix/describe.scm b/guix/describe.scm
index c31199c..8851bc4 100644
--- a/guix/describe.scm
+++ b/guix/describe.scm
@@ -65,19 +65,28 @@ lives in, or #f if this is not applicable."
(let ((manifest (profile-manifest profile)))
(manifest-entries manifest))))))
-(define package-path-entries
+(define current-channel-entries
(mlambda ()
- "Return a list of package path entries to be added to the package search
-path. These entries are taken from the 'guix pull' profile the calling
-process lives in, when applicable."
- ;; Filter out Guix itself.
- (filter-map (lambda (entry)
- (and (not (string=? (manifest-entry-name entry)
- "guix"))
- (string-append (manifest-entry-item entry)
+ "Return manifest entries corresponding to extra channels--i.e., not the
+'guix' channel."
+ (remove (lambda (entry)
+ (string=? (manifest-entry-name entry) "guix"))
+ (current-profile-entries))))
+
+(define (package-path-entries)
+ "Return two values: the list of package path entries to be added to the
+package search path, and the list to be added to %LOAD-COMPILED-PATH. These
+entries are taken from the 'guix pull' profile the calling process lives in,
+when applicable."
+ ;; Filter out Guix itself.
+ (unzip2 (map (lambda (entry)
+ (list (string-append (manifest-entry-item entry)
"/share/guile/site/"
- (effective-version))))
- (current-profile-entries))))
+ (effective-version))
+ (string-append (manifest-entry-item entry)
+ "/lib/guile/" (effective-version)
+ "/site-ccache")))
+ (current-profile-entries))))
(define (package-provenance package)
"Return the provenance of PACKAGE as an sexp for use as the 'provenance'