environment: Non ad-hoc mode also honors transformation options.
authorLudovic Courtès <ludovic.courtes@inria.fr>
Tue, 7 May 2019 12:38:06 +0000 (14:38 +0200)
committerLudovic Courtès <ludo@gnu.org>
Tue, 7 May 2019 13:46:53 +0000 (15:46 +0200)
Fixes <https://bugs.gnu.org/35618>.
Reported by Florent Pruvost <florent.pruvost@inria.fr>.

* guix/scripts/environment.scm (options/resolve-packages): Add call to
TRANSFORM in non "ad-hoc" case.
* tests/guix-environment.sh: Add test.

guix/scripts/environment.scm
tests/guix-environment.sh

index 99c351a..c134162 100644 (file)
@@ -341,7 +341,7 @@ for the corresponding packages."
                      (list (package->manifest-entry* package output))))
                   (('package 'package (? string? spec))
                    (package-environment-inputs
-                    (specification->package+output spec)))
+                    (transform (specification->package+output spec))))
                   (('expression mode str)
                    ;; Add all the outputs of the package STR evaluates to.
                    (packages->outputs (read/eval str) mode))
index 7ea9c20..a670db3 100644 (file)
@@ -133,6 +133,25 @@ case "$transformed_drv" in
 esac
 rmdir "$tmpdir/emacs-36.8"
 
+# Transformation options without '--ad-hoc'.
+drv="`guix environment -n emacs-geiser 2>&1 | grep '\.drv$'`"
+transformed_drv="`guix environment -n emacs-geiser \
+  --with-input=emacs-minimal=vim 2>&1 | grep '\.drv$'`"
+test "$drv" != "$transformed_drv"
+case "$drv" in
+    *-emacs-minimal*.drv*) true;;
+    *)                     false;;
+esac
+case "$transformed_drv" in
+    *-emacs-minimal*.drv*) false;;
+    *)                     true;;
+esac
+case "$transformed_drv" in
+    *-vim*.drv*) true;;
+    *)           false;;
+esac
+
+
 if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null
 then
     # Compute the build environment for the initial GNU Make.