aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/guile.scm11
-rw-r--r--guix/build/utils.scm14
2 files changed, 11 insertions, 14 deletions
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index c4eca3e350..c78ab57915 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -142,17 +142,6 @@ extensible. It supports many SRFIs.")
`(#:phases (alist-cons-before
'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys)
- ;; By default we end up with GUILE_LOAD_PATH="" and
- ;; GUILE_LOAD_COMPILED_PATH="". But that is equivalent to
- ;; ".", and breaks the build system when cross-compiling.
- ;; Thus, make sure they are unset.
- ;; TODO: Eventually fix `set-path-environment-variable'
- ;; for that case.
- ,@(if (%current-target-system)
- '((unsetenv "GUILE_LOAD_PATH")
- (unsetenv "GUILE_LOAD_COMPILED_PATH"))
- '())
-
;; Tell (ice-9 popen) the file name of Bash.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "module/ice-9/popen.scm"
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index a4a82a5f8c..c0b150e016 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -248,9 +248,17 @@ SEPARATOR-separated path accordingly. Example:
"
(let* ((path (search-path-as-list sub-directories input-dirs))
(value (list->search-path-as-string path separator)))
- (setenv env-var value)
- (format #t "environment variable `~a' set to `~a'~%"
- env-var value)))
+ (if (string-null? value)
+ (begin
+ ;; Never set ENV-VAR to an empty string because often, the empty
+ ;; string is equivalent to ".". This is the case for
+ ;; GUILE_LOAD_PATH in Guile 2.0, for instance.
+ (unsetenv env-var)
+ (format #t "environment variable `~a' unset~%" env-var))
+ (begin
+ (setenv env-var value)
+ (format #t "environment variable `~a' set to `~a'~%"
+ env-var value)))))
(define (which program)
"Return the complete file name for PROGRAM as found in $PATH, or #f if