guix-commits
[Top][All Lists]
Advanced

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

01/01: Merge branch 'master' into core-updates


From: Ludovic Courtès
Subject: 01/01: Merge branch 'master' into core-updates
Date: Fri, 1 Jun 2018 17:58:56 -0400 (EDT)

civodul pushed a commit to branch core-updates
in repository guix.

commit a13c1bf4ca0b15fa53235c2bd6aa53e4a75c7d0f
Merge: babeea3 1a3e316
Author: Ludovic Courtès <address@hidden>
Date:   Fri Jun 1 23:41:40 2018 +0200

    Merge branch 'master' into core-updates

 .dir-locals.el                                     |   3 +
 Makefile.am                                        |  19 ++
 configure.ac                                       |   5 +
 doc/guix.texi                                      |  94 ++++++-
 gnu/bootloader/grub.scm                            |  19 +-
 gnu/build/file-systems.scm                         |   4 +-
 gnu/build/marionette.scm                           |  27 ++
 gnu/build/svg.scm                                  |  11 +-
 gnu/local.mk                                       |   1 +
 gnu/packages/build-tools.scm                       |   2 +
 gnu/packages/display-managers.scm                  |   4 +-
 gnu/packages/emacs.scm                             | 205 ++++++++++-----
 gnu/packages/gnuzilla.scm                          |  12 +-
 gnu/packages/haskell.scm                           | 160 ++++++++++++
 gnu/packages/messaging.scm                         |   4 +-
 .../patches/sddm-fix-build-with-qt-5.11-1024.patch |  28 ++
 gnu/packages/python.scm                            |  23 ++
 gnu/packages/qt.scm                                |  10 +
 gnu/packages/rust.scm                              |  62 +++--
 gnu/packages/version-control.scm                   | 129 +++++++++
 gnu/packages/web.scm                               |  81 ++++++
 gnu/services/web.scm                               |  72 ++++-
 gnu/system.scm                                     |   4 +-
 gnu/system/vm.scm                                  |  95 ++++---
 gnu/tests/dict.scm                                 |  19 +-
 gnu/tests/ssh.scm                                  | 290 ++++++++++-----------
 gnu/tests/web.scm                                  |  82 +++++-
 guix/config.scm.in                                 |   6 +
 guix/docker.scm                                    |   6 +-
 guix/gexp.scm                                      | 196 +++++++++++---
 guix/man-db.scm                                    |   6 +-
 guix/profiles.scm                                  |  68 +++--
 guix/records.scm                                   |  31 ++-
 guix/scripts/pack.scm                              |  41 ++-
 guix/scripts/system.scm                            |   8 +-
 guix/self.scm                                      |  25 +-
 guix/store/database.scm                            | 234 +++++++++++++++++
 guix/store/deduplication.scm                       | 148 +++++++++++
 m4/guix.m4                                         |  18 ++
 tests/gexp.scm                                     |  86 ++++++
 tests/pack.scm                                     |  12 +-
 tests/store-database.scm                           |  54 ++++
 tests/store-deduplication.scm                      |  64 +++++
 43 files changed, 1993 insertions(+), 475 deletions(-)

diff --cc guix/gexp.scm
index c6d70e4,338c339..153b29b
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@@ -1075,8 -1120,14 +1120,16 @@@ last one is created from the given <sch
    "Return a derivation that builds a tree containing the `.go' files
  corresponding to MODULES.  All the MODULES are built in a context where
  they can refer to each other."
 +  (define total (length modules))
 +
+   (define build-utils-hack?
+     ;; To avoid a full rebuild, we limit the fix below to the case where
+     ;; MODULE-PATH is different from %LOAD-PATH.  This happens when building
+     ;; modules for 'compute-guix-derivation' upon 'guix pull'.  TODO: Make
+     ;; this unconditional on the next rebuild cycle.
+     (and (member '(guix build utils) modules)
+          (not (equal? module-path %load-path))))
+ 
    (mlet %store-monad ((modules (imported-modules modules
                                                   #:system system
                                                   #:guile guile
@@@ -1098,34 -1147,70 +1151,74 @@@
           (define (regular? file)
             (not (member file '("." ".."))))
  
 -         (define (process-directory directory output)
 +         (define (process-entry entry output processed)
 +           (if (file-is-directory? entry)
 +               (let ((output (string-append output "/" (basename entry))))
 +                 (mkdir-p output)
 +                 (process-directory entry output processed))
 +               (let* ((base   (basename entry ".scm"))
 +                      (output (string-append output "/" base ".go")))
 +                 (format #t "address@hidden/address@hidden Compiling 
'~a'...~%"
 +                         (+ 1 processed) (ungexp total) entry)
 +                 (compile-file entry
 +                               #:output-file output
 +                               #:opts %auto-compilation-options)
 +                 (+ 1 processed))))
 +
 +         (define (process-directory directory output processed)
             (let ((entries (map (cut string-append directory "/" <>)
                                 (scandir directory regular?))))
 -             (for-each (lambda (entry)
 -                         (if (file-is-directory? entry)
 -                             (let ((output (string-append output "/"
 -                                                          (basename entry))))
 -                               (mkdir-p output)
 -                               (process-directory entry output))
 -                             (let* ((base   (string-drop-right
 -                                             (basename entry)
 -                                             4)) ;.scm
 -                                    (output (string-append output "/" base
 -                                                           ".go")))
 -                               (compile-file entry
 -                                             #:output-file output
 -                                             #:opts
 -                                             %auto-compilation-options))))
 -                       entries)))
 +             (fold (cut process-entry <> output <>)
 +                   processed
 +                   entries)))
 +
 +         (setvbuf (current-output-port)
 +                  (cond-expand (guile-2.2 'line) (else _IOLBF)))
  
+          (ungexp-splicing
+           (if build-utils-hack?
+               (gexp ((define mkdir-p
+                        ;; Capture 'mkdir-p'.
+                        (@ (guix build utils) mkdir-p))))
+               '()))
+ 
+          ;; Add EXTENSIONS to the search path.
+          ;; TODO: Remove the outer 'ungexp-splicing' on the next rebuild 
cycle.
+          (ungexp-splicing
+           (if (null? extensions)
+               '()
+               (gexp ((set! %load-path
+                        (append (map (lambda (extension)
+                                       (string-append extension
+                                                      "/share/guile/site/"
+                                                      (effective-version)))
+                                     '((ungexp-native-splicing extensions)))
+                                %load-path))
+                      (set! %load-compiled-path
+                        (append (map (lambda (extension)
+                                       (string-append extension "/lib/guile/"
+                                                      (effective-version)
+                                                      "/site-ccache"))
+                                     '((ungexp-native-splicing extensions)))
+                                %load-compiled-path))))))
+ 
           (set! %load-path (cons (ungexp modules) %load-path))
+ 
+          (ungexp-splicing
+           (if build-utils-hack?
+               ;; Above we loaded our own (guix build utils) but now we may
+               ;; need to load a compile a different one.  Thus, force a
+               ;; reload.
+               (gexp ((let ((utils (ungexp
+                                    (file-append modules
+                                                 "/guix/build/utils.scm"))))
+                        (when (file-exists? utils)
+                          (load utils)))))
+               '()))
+ 
           (mkdir (ungexp output))
           (chdir (ungexp modules))
 -         (process-directory "." (ungexp output)))))
 +         (process-directory "." (ungexp output) 0))))
  
      ;; TODO: Pass MODULES as an environment variable.
      (gexp->derivation name build



reply via email to

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