summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-06-21 11:14:17 +0200
committerLudovic Courtès <ludo@gnu.org>2018-06-21 23:54:15 +0200
commit1f1d76a1789dafb55cc9450cc1dbafb718a62215 (patch)
treea16c523fed4ea6d00fc2ddd8575e1fbbc91d8735
parent3cd1aafa833ecbbf71efc0901f9a6cf94310ec1a (diff)
downloadguix-1f1d76a1789dafb55cc9450cc1dbafb718a62215.tar.gz
build-self: Avoid recompilations of 'compute-guix-derivation'.
* build-aux/build-self.scm (build-program)["compute-guix-derivation"]:
Honor the SOURCE command-line argument.  Add a VERSION command-line
argument and honor it.
(build): Pass VERSION to BUILD.
-rw-r--r--build-aux/build-self.scm17
1 files changed, 9 insertions, 8 deletions
diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm
index bd285bcedd..e1b2c7fdc4 100644
--- a/build-aux/build-self.scm
+++ b/build-aux/build-self.scm
@@ -232,11 +232,12 @@ person's version identifier."
 
                         ;; (gnu packages …) modules are going to be looked up
                         ;; under SOURCE.  (guix config) is looked up in FRONT.
-                        (match %load-path
-                          ((#$source _ ...)
-                           #t)                    ;already done
-                          ((front _ ...)
-                           (set! %load-path (list #$source front))))
+                        (match (command-line)
+                          ((_ source _ ...)
+                           (match %load-path
+                             ((front _ ...)
+                              (unless (string=? front source) ;already done?
+                                (set! %load-path (list source front)))))))
 
                         ;; Only load our own modules or those of Guile.
                         (match %load-compiled-path
@@ -264,7 +265,7 @@ person's version identifier."
                           (loop (cdr spin))))
 
                       (match (command-line)
-                        ((_ _ system)
+                        ((_ source system version)
                          (with-store store
                            (call-with-new-thread
                             (lambda ()
@@ -273,7 +274,7 @@ person's version identifier."
                            (display
                             (and=>
                              (run-with-store store
-                               (guix-derivation #$source #$version
+                               (guix-derivation source version
                                                 #$guile-version
                                                 #:pull-version
                                                 #$pull-version)
@@ -304,7 +305,7 @@ files."
                        (setenv "GUILE_WARN_DEPRECATED" "no") ;be quiet and drive
                        (open-pipe* OPEN_READ
                                    (derivation->output-path build)
-                                   source system)))
+                                   source system version)))
              (str    (get-string-all pipe))
              (status (close-pipe pipe)))
         (match str