guix package: Add '--export-channels'.

* guix/channels.scm (sexp->channel): Export.
* guix/describe.scm: Use (guix channels).
(manifest-entry-provenance): New procedure.
* guix/scripts/package.scm (channel=?, export-channels): New
procedures.
(show-help, %options): Add '--export-channels'.
(process-query): Honor it.
* build-aux/build-self.scm (build-program)[select?]: Exclude (guix
channels) to account for the (guix describe) change above.
* doc/guix.texi (Invoking guix package): Document it.
This commit is contained in:
Ludovic Courtès 2021-01-10 22:13:04 +01:00
parent 60d72f5364
commit aedbc5ff32
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
5 changed files with 121 additions and 2 deletions

View file

@ -245,8 +245,11 @@ interface (FFI) of Guile.")
"Return a program that computes the derivation to build Guix from SOURCE."
(define select?
;; Select every module but (guix config) and non-Guix modules.
;; Also exclude (guix channels): it is autoloaded by (guix describe), but
;; only for peripheral functionality.
(match-lambda
(('guix 'config) #f)
(('guix 'channels) #f)
(('guix _ ...) #t)
(('gnu _ ...) #t)
(_ #f)))