Thanks for the heads-up, and sorry for the delay!

Federico Beffa <beffa@ieee.org> skribis:

> Looking at my manifest file I see that, e.g., the entry for
> 'python-matplotlib' lists all recursively propagated
> dependencies. Differently from this the 'search-paths' entry only lists
> the entries defined in the package (in this case none), neglecting the
> search paths in the 'propagated-inputs'.

That’s a bug, indeed.

> If I understand correctly, this behavior is defined by this function (from
> guix/profiles.scm):
>
> (define* (package->manifest-entry package #:optional output)
>   "Return a manifest entry for the OUTPUT of package PACKAGE.  When OUTPUT is
> omitted or #f, use the first output of PACKAGE."
>   (let ((deps (map (match-lambda
>                     ((label package)
>                      (gexp-input package))
>                     ((label package output)
>                      (gexp-input package output)))
>                    (package-transitive-propagated-inputs package))))
>     (manifest-entry
>      (name (package-name package))
>      (version (package-version package))
>      (output (or output (car (package-outputs package))))
>      (item package)
>      (dependencies (delete-duplicates deps))
>      (search-paths (package-native-search-paths package)))))
>
> To get all the required search paths recursively we should replace the
> last 'manifest-entry' slot with a call to a function like this:

Right.

Here’s a variant of what you propose.  With that, I get:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix package -i python2-matplotlib -p foo

[...]

The following environment variable definitions may be needed:
   export PATH="foo/bin:foo/sbin"
   export PYTHONPATH="foo/lib/python2.7/site-packages"
   export GI_TYPELIB_PATH="foo/lib/girepository-1.0"
   export XDG_DATA_DIRS="foo/share"
   export GIO_EXTRA_MODULES="foo/lib/gio/modules"
--8<---------------cut here---------------end--------------->8---

… which is what we’re expecting, right?

If that’s fine with you, I’ll commit this patch along with test cases.

Thanks!

Ludo’.