mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
build-system/channel: Add support for additional channels.
Until now, ‘channel-build-system’ would assume a single channel, the ‘guix’ channel. This change lets users specify additional channels using the #:channels parameter. * guix/build-system/channel.scm (build-channels): Add #:channels and honor it. (channel-build-system): In ‘lower’, add #:channels and honor it. * doc/guix.texi (Build Systems): Document it. Change-Id: I36c1d19cbeee02a4d1144de089b78df0390774a0
This commit is contained in:
parent
69b8feabcf
commit
d6a3818761
2 changed files with 9 additions and 3 deletions
|
@ -10466,7 +10466,10 @@ field (@pxref{Channels}); alternatively, its source can be a directory
|
||||||
name, in which case an additional @code{#:commit} argument must be
|
name, in which case an additional @code{#:commit} argument must be
|
||||||
supplied to specify the commit being built (a hexadecimal string).
|
supplied to specify the commit being built (a hexadecimal string).
|
||||||
|
|
||||||
The resulting package is a Guix instance of the given channel, similar
|
Optionally, a @code{#:channels} argument specifying additional channels
|
||||||
|
can be provided.
|
||||||
|
|
||||||
|
The resulting package is a Guix instance of the given channel(s), similar
|
||||||
to how @command{guix time-machine} would build it.
|
to how @command{guix time-machine} would build it.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2019-2022, 2024 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -37,6 +37,7 @@ (define latest-channel-instances*
|
||||||
|
|
||||||
(define* (build-channels name inputs
|
(define* (build-channels name inputs
|
||||||
#:key source system commit
|
#:key source system commit
|
||||||
|
(channels '())
|
||||||
(authenticate? #t)
|
(authenticate? #t)
|
||||||
#:allow-other-keys)
|
#:allow-other-keys)
|
||||||
(mlet* %store-monad ((instances
|
(mlet* %store-monad ((instances
|
||||||
|
@ -44,7 +45,7 @@ (define* (build-channels name inputs
|
||||||
(return (list source)))
|
(return (list source)))
|
||||||
((channel? source)
|
((channel? source)
|
||||||
(latest-channel-instances*
|
(latest-channel-instances*
|
||||||
(list source)
|
(cons source channels)
|
||||||
#:authenticate? authenticate?))
|
#:authenticate? authenticate?))
|
||||||
((string? source)
|
((string? source)
|
||||||
;; If SOURCE is a store file name, as is the
|
;; If SOURCE is a store file name, as is the
|
||||||
|
@ -64,12 +65,14 @@ (define* (build-channels name inputs
|
||||||
(define channel-build-system
|
(define channel-build-system
|
||||||
;; Build system used to "convert" a channel instance to a package.
|
;; Build system used to "convert" a channel instance to a package.
|
||||||
(let ((lower (lambda* (name #:key system source commit (authenticate? #t)
|
(let ((lower (lambda* (name #:key system source commit (authenticate? #t)
|
||||||
|
(channels '())
|
||||||
#:allow-other-keys)
|
#:allow-other-keys)
|
||||||
(bag
|
(bag
|
||||||
(name name)
|
(name name)
|
||||||
(system system)
|
(system system)
|
||||||
(build build-channels)
|
(build build-channels)
|
||||||
(arguments `(#:source ,source
|
(arguments `(#:source ,source
|
||||||
|
#:channels ,channels
|
||||||
#:authenticate? ,authenticate?
|
#:authenticate? ,authenticate?
|
||||||
#:commit ,commit))))))
|
#:commit ,commit))))))
|
||||||
(build-system (name 'channel)
|
(build-system (name 'channel)
|
||||||
|
|
Loading…
Reference in a new issue