[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