self: Add "guix-packages-base" derivation.
This introduces an intermediate derivation, thereby reducing the amount of rebuild that needs to happen when "leaf" package modules are modified. * guix/self.scm (compiled-guix)[*core-package-modules*]: New variable. [*package-modules*, *system-modules*, *cli-modules*]: Depend on it. Add it to the directory union.
This commit is contained in:
parent
effd8df8f2
commit
f2e66663c2
|
@ -260,13 +260,18 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
|
||||||
#:extensions dependencies
|
#:extensions dependencies
|
||||||
#:guile-for-build guile-for-build))
|
#:guile-for-build guile-for-build))
|
||||||
|
|
||||||
(define *package-modules*
|
(define *core-package-modules*
|
||||||
(scheme-node "guix-packages"
|
(scheme-node "guix-packages-base"
|
||||||
`((gnu packages)
|
`((gnu packages)
|
||||||
,@(scheme-modules* source "gnu/packages"))
|
(gnu packages base))
|
||||||
(list *core-modules* *extra-modules*)
|
(list *core-modules* *extra-modules*)
|
||||||
#:extensions dependencies
|
#:extensions dependencies
|
||||||
#:extra-files ;all the non-Scheme files
|
|
||||||
|
;; Add all the non-Scheme files here. We must do it here so
|
||||||
|
;; that 'search-patches' & co. can find them. Ideally we'd
|
||||||
|
;; keep them next to the .scm files that use them but it's
|
||||||
|
;; difficult to do (XXX).
|
||||||
|
#:extra-files
|
||||||
(file-imports source "gnu/packages"
|
(file-imports source "gnu/packages"
|
||||||
(lambda (file stat)
|
(lambda (file stat)
|
||||||
(and (eq? 'regular (stat:type stat))
|
(and (eq? 'regular (stat:type stat))
|
||||||
|
@ -276,13 +281,21 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
|
||||||
(not (string-suffix? "~" file)))))
|
(not (string-suffix? "~" file)))))
|
||||||
#:guile-for-build guile-for-build))
|
#:guile-for-build guile-for-build))
|
||||||
|
|
||||||
|
(define *package-modules*
|
||||||
|
(scheme-node "guix-packages"
|
||||||
|
(scheme-modules* source "gnu/packages")
|
||||||
|
(list *core-modules* *extra-modules* *core-package-modules*)
|
||||||
|
#:extensions dependencies
|
||||||
|
#:guile-for-build guile-for-build))
|
||||||
|
|
||||||
(define *system-modules*
|
(define *system-modules*
|
||||||
(scheme-node "guix-system"
|
(scheme-node "guix-system"
|
||||||
`((gnu system)
|
`((gnu system)
|
||||||
(gnu services)
|
(gnu services)
|
||||||
,@(scheme-modules* source "gnu/system")
|
,@(scheme-modules* source "gnu/system")
|
||||||
,@(scheme-modules* source "gnu/services"))
|
,@(scheme-modules* source "gnu/services"))
|
||||||
(list *package-modules* *extra-modules* *core-modules*)
|
(list *core-package-modules* *package-modules*
|
||||||
|
*extra-modules* *core-modules*)
|
||||||
#:extensions dependencies
|
#:extensions dependencies
|
||||||
#:extra-files
|
#:extra-files
|
||||||
(file-imports source "gnu/system/examples" (const #t))
|
(file-imports source "gnu/system/examples" (const #t))
|
||||||
|
@ -292,7 +305,8 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
|
||||||
(define *cli-modules*
|
(define *cli-modules*
|
||||||
(scheme-node "guix-cli"
|
(scheme-node "guix-cli"
|
||||||
(scheme-modules* source "/guix/scripts")
|
(scheme-modules* source "/guix/scripts")
|
||||||
(list *core-modules* *extra-modules* *package-modules*
|
(list *core-modules* *extra-modules*
|
||||||
|
*core-package-modules* *package-modules*
|
||||||
*system-modules*)
|
*system-modules*)
|
||||||
#:extensions dependencies
|
#:extensions dependencies
|
||||||
#:guile-for-build guile-for-build))
|
#:guile-for-build guile-for-build))
|
||||||
|
@ -330,6 +344,7 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
|
||||||
*cli-modules*
|
*cli-modules*
|
||||||
*system-modules*
|
*system-modules*
|
||||||
*package-modules*
|
*package-modules*
|
||||||
|
*core-package-modules*
|
||||||
*extra-modules*
|
*extra-modules*
|
||||||
*core-modules*))
|
*core-modules*))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue