guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: self: Add "guix-packages-base" derivation.


From: Ludovic Courtès
Subject: 01/01: self: Add "guix-packages-base" derivation.
Date: Sun, 6 May 2018 18:17:44 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit f2e66663c2e00b482cdf5ba83173291d30363e7c
Author: Ludovic Courtès <address@hidden>
Date:   Sun May 6 16:41:50 2018 +0200

    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.
---
 guix/self.scm | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/guix/self.scm b/guix/self.scm
index 6220efb..4378a3d 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -260,13 +260,18 @@ list of file-name/file-like objects suitable as inputs to 
'imported-files'."
                  #:extensions dependencies
                  #:guile-for-build guile-for-build))
 
-  (define *package-modules*
-    (scheme-node "guix-packages"
+  (define *core-package-modules*
+    (scheme-node "guix-packages-base"
                  `((gnu packages)
-                   ,@(scheme-modules* source "gnu/packages"))
+                   (gnu packages base))
                  (list *core-modules* *extra-modules*)
                  #: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"
                                (lambda (file 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)))))
                  #: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*
     (scheme-node "guix-system"
                  `((gnu system)
                    (gnu services)
                    ,@(scheme-modules* source "gnu/system")
                    ,@(scheme-modules* source "gnu/services"))
-                 (list *package-modules* *extra-modules* *core-modules*)
+                 (list *core-package-modules* *package-modules*
+                       *extra-modules* *core-modules*)
                  #:extensions dependencies
                  #:extra-files
                  (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*
     (scheme-node "guix-cli"
                  (scheme-modules* source "/guix/scripts")
-                 (list *core-modules* *extra-modules* *package-modules*
+                 (list *core-modules* *extra-modules*
+                       *core-package-modules* *package-modules*
                        *system-modules*)
                  #:extensions dependencies
                  #: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*
                                      *system-modules*
                                      *package-modules*
+                                     *core-package-modules*
                                      *extra-modules*
                                      *core-modules*))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]