diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-05-06 17:08:00 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-05-06 18:26:54 +0200 |
commit | d664f1b431d2a64ff58ddc4ccce40e187947b960 (patch) | |
tree | 81dbd7402d8dae149a4899b2734837cfee2eefd3 /guix/profiles.scm | |
parent | 611adb1ee5814907694abc9afa1bad984f0cbea0 (diff) | |
download | gnu-guix-d664f1b431d2a64ff58ddc4ccce40e187947b960.tar gnu-guix-d664f1b431d2a64ff58ddc4ccce40e187947b960.tar.gz |
profiles: Generate an 'etc/profile' file.
Suggested by 宋文武 <iyzsong@gmail.com>
in <http://bugs.gnu.org/20255>.
* guix/build/profiles.scm (abstract-profile,
write-environment-variable-definition): New procedures.
(build-profile): Add #:search-paths parameter. Create
OUTPUT/etc/profile.
* guix/profiles.scm (profile-derivation)[builder]: Add 'search-paths'
variable and pass it to 'build-profile'. Adjust #:modules argument.
* tests/profiles.scm ("etc/profile"): New test.
* doc/guix.texi (Invoking guix package): Mention etc/profile.
Diffstat (limited to 'guix/profiles.scm')
-rw-r--r-- | guix/profiles.scm | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm index afc22e118d..11d9bf0cd9 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -598,17 +598,30 @@ the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc." (define builder #~(begin - (use-modules (guix build profiles)) + (use-modules (guix build profiles) + (guix search-paths)) (setvbuf (current-output-port) _IOLBF) (setvbuf (current-error-port) _IOLBF) + (define search-paths + ;; Search paths of MANIFEST's packages, converted back to their + ;; record form. + (map sexp->search-path-specification + '#$(map search-path-specification->sexp + (append-map manifest-entry-search-paths + (manifest-entries manifest))))) + (build-profile #$output '#$inputs - #:manifest '#$(manifest->gexp manifest)))) + #:manifest '#$(manifest->gexp manifest) + #:search-paths search-paths))) (gexp->derivation "profile" builder - #:modules '((guix build union) - (guix build profiles)) + #:modules '((guix build profiles) + (guix build union) + (guix build utils) + (guix search-paths) + (guix records)) #:local-build? #t))) (define (profile-regexp profile) |