profiles: Store search paths in manifests.
authorLudovic Courtès <ludo@gnu.org>
Sat, 2 May 2015 21:55:24 +0000 (23:55 +0200)
committerLudovic Courtès <ludo@gnu.org>
Sat, 2 May 2015 21:57:11 +0000 (23:57 +0200)
commitdedb17ad010ee9ef67f3f4f3997dd17f226c8090
treef83cc692eaf5e3ae952fa9626b1fcef1755a2d84
parentb9212a5455304661d1e969ced5df63aa9b6b761f
profiles: Store search paths in manifests.

Discussed in <http://bugs.gnu.org/20255>.

* guix/packages.scm (sexp->search-path-specification): New variable.
* guix/profiles.scm (<manifest-entry>)[search-paths]: New field.
  (package->manifest-entry): Initialize it.
  (manifest->gexp): Match it.  Wrap #$deps in (propagated-inputs ...).
  Emit (search-paths ...).  Increment version.
  (find-package): New procedure.
  (sexp->manifest)[infer-search-paths]: New procedure.
  Use it to initialize the 'search-paths' field for versions 0 and 1.
  Add case for version 2.
* guix/scripts/package.scm (search-path-environment-variables)[manifest-entry->package]:
  Remove.
  Use 'manifest-entry-search-paths' instead of 'manifest-entry->package'
  plus 'package-native-search-paths'.
* tests/profiles.scm ("profile-manifest, search-paths"): New test.
guix/packages.scm
guix/profiles.scm
guix/scripts/package.scm
tests/profiles.scm