self: Shrink the module search path of the 'guix' command.
authorLudovic Courtès <ludo@gnu.org>
Mon, 27 Aug 2018 20:17:12 +0000 (22:17 +0200)
committerLudovic Courtès <ludo@gnu.org>
Mon, 27 Aug 2018 21:22:17 +0000 (23:22 +0200)
Previously we'd have lots of useless entries on the search paths, such
as libtasn1, libidn2, zlib, gmp, etc. because they are propagated by
gnutls.

* guix/self.scm (guix-command)[source-directories, object-directories]:
New variables.  Use them in the body of "guix-command".  Filter their
items with 'file-exists?'.

guix/self.scm

index 5ad644b..90649db 100644 (file)
@@ -367,22 +367,26 @@ DOMAIN, a gettext domain."
                        guile (guile-version (effective-version)))
   "Return the 'guix' command such that it adds MODULES and DEPENDENCIES in its
 load path."
+  (define source-directories
+    (map (lambda (package)
+           (file-append package "/share/guile/site/"
+                        guile-version))
+         dependencies))
+
+  (define object-directories
+    (map (lambda (package)
+           (file-append package "/lib/guile/"
+                        guile-version "/site-ccache"))
+         dependencies))
+
   (program-file "guix-command"
                 #~(begin
                     (set! %load-path
-                      (append '#$(map (lambda (package)
-                                        (file-append package
-                                                     "/share/guile/site/"
-                                                     guile-version))
-                                      dependencies)
+                      (append (filter file-exists? '#$source-directories)
                               %load-path))
 
                     (set! %load-compiled-path
-                      (append '#$(map (lambda (package)
-                                        (file-append package "/lib/guile/"
-                                                     guile-version
-                                                     "/site-ccache"))
-                                      dependencies)
+                      (append (filter file-exists? '#$object-directories)
                               %load-compiled-path))
 
                     (set! %load-path (cons #$modules %load-path))