Thanks for the heads-up, and sorry for the delay! Federico Beffa 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’.