profiles: Implicitly set GUIX_EXTENSIONS_PATH.

* guix/build/profiles.scm (manifest-sexp->inputs+search-paths):
Always return a search path for GUIX_EXTENSIONS_PATH.
* guix/search-paths.scm ($GUIX_EXTENSIONS_PATH): New variable.

This allows Guix to find extensions without any need for users to
set GUIX_EXTENSIONS_PATH manually.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
This commit is contained in:
(unmatched-parenthesis 2022-08-21 16:43:48 +01:00 committed by Efraim Flashner
parent 0321ceef08
commit bbc1735be2
No known key found for this signature in database
GPG Key ID: 41AAE7DCCA3D8351
2 changed files with 15 additions and 3 deletions

View File

@ -179,9 +179,10 @@ search path specifications."
(()
(values (reverse inputs)
(delete-duplicates
(cons $PATH
(map sexp->search-path-specification
(reverse search-paths)))))))))))
(cons* $PATH
$GUIX_EXTENSIONS_PATH
(map sexp->search-path-specification
(reverse search-paths)))))))))))
(define* (build-profile output manifest
#:key (extra-inputs '()) (symlink symlink))

View File

@ -33,6 +33,7 @@
search-path-specification-file-pattern
$PATH
$GUIX_EXTENSIONS_PATH
$SSL_CERT_DIR
$SSL_CERT_FILE
@ -73,6 +74,16 @@
(variable "PATH")
(files '("bin" "sbin"))))
(define-public $GUIX_EXTENSIONS_PATH
;; 'GUIX_EXTENSIONS_PATH' is used by Guix to locate extension commands.
;; Like 'PATH', it's not attached to any package, so that users don't have
;; to install the 'guix' package (which is not supposed to be installed,
;; as it will mess up the 'guix pull' installation) or set the variable
;; manually.
(search-path-specification
(variable "GUIX_EXTENSIONS_PATH")
(files '("share/guix/extensions"))))
;; Two variables for certificates (see (guix)X.509 Certificates),
;; respected by 'openssl', possibly GnuTLS in the future
;; (https://gitlab.com/gnutls/gnutls/-/merge_requests/1541)