From a553892215157090ff892dc5cbbe85a25e837260 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludovic.courtes@inria.fr>
Date: Fri, 24 Jul 2020 11:27:51 +0200
Subject: [PATCH] pack: '-R' applies to propagated inputs too.

Fixes <https://bugs.gnu.org/42510>.

* guix/scripts/pack.scm (wrapped-manifest-entry): Recurse on
'dependencies' field.
* tests/guix-pack-relocatable.sh: Add test.
---
 guix/scripts/pack.scm          | 5 ++++-
 tests/guix-pack-relocatable.sh | 5 +++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 13ade375153..5fb6aaae0c5 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -875,7 +875,10 @@ (define (wrapped-manifest-entry entry . args)
     (item (apply wrapped-package
                  (manifest-entry-item entry)
                  (manifest-entry-output entry)
-                 args))))
+                 args))
+    (dependencies (map (lambda (entry)
+                         (apply wrapped-manifest-entry entry args))
+                       (manifest-entry-dependencies entry)))))
 
 
 ;;;
diff --git a/tests/guix-pack-relocatable.sh b/tests/guix-pack-relocatable.sh
index 358cac5b262..52d72125940 100644
--- a/tests/guix-pack-relocatable.sh
+++ b/tests/guix-pack-relocatable.sh
@@ -111,3 +111,8 @@ esac
 tarball="`guix pack -R -S /share=share groff:doc`"
 (cd "$test_directory"; tar xvf "$tarball")
 test -d "$test_directory/share/doc/groff/html"
+
+# Ensure '-R' applies to propagated inputs.  Failing to do that, it would fail
+# with a profile collision error in this case because 'python-scipy'
+# propagates 'python-numpy'.  See <https://bugs.gnu.org/42510>.
+guix pack -RR python-numpy python-scipy --no-grafts -n
-- 
GitLab