aboutsummaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2018-06-02 13:44:43 +0200
committerRicardo Wurmus <rekado@elephly.net>2018-06-02 13:44:43 +0200
commite0f897035779f3344dc2553aa10f3a4465d290e3 (patch)
treeab39d10c892b627b8e057110f16d0f8c7ad83727 /guix
parenta13c1bf4ca0b15fa53235c2bd6aa53e4a75c7d0f (diff)
parent92963798a6b81989c52bc199ef224605d9b90063 (diff)
downloadgnu-guix-e0f897035779f3344dc2553aa10f3a4465d290e3.tar
gnu-guix-e0f897035779f3344dc2553aa10f3a4465d290e3.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'guix')
-rw-r--r--guix/import/cran.scm4
-rw-r--r--guix/self.scm44
2 files changed, 30 insertions, 18 deletions
diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index ec2b7e6029..49e5d2d358 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -128,9 +128,9 @@ package definition."
(define %cran-url "http://cran.r-project.org/web/packages/")
(define %bioconductor-url "https://bioconductor.org/packages/")
-;; The latest Bioconductor release is 3.6. Bioconductor packages should be
+;; The latest Bioconductor release is 3.7. Bioconductor packages should be
;; updated together.
-(define %bioconductor-version "3.6")
+(define %bioconductor-version "3.7")
(define %bioconductor-packages-list-url
(string-append "https://bioconductor.org/packages/"
diff --git a/guix/self.scm b/guix/self.scm
index 3503fbda43..a24e9c6147 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -171,7 +171,8 @@ must be present in the search path."
(source (imported-files (string-append name "-source")
(append module-files extra-files))))
(node name modules source dependencies
- (compiled-modules name source modules
+ (compiled-modules name source
+ (map car module-files)
(map node-source dependencies)
(map node-compiled dependencies)
#:extensions extensions
@@ -313,7 +314,12 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
*extra-modules* *core-modules*)
#:extensions dependencies
#:extra-files
- (file-imports source "gnu/system/examples" (const #t))
+ (append (file-imports source "gnu/system/examples"
+ (const #t))
+
+ ;; Build-side code that we don't build. Some of
+ ;; these depend on guile-rsvg, the Shepherd, etc.
+ (file-imports source "gnu/build" (const #t)))
#:guile-for-build
guile-for-build))
@@ -481,6 +487,11 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(define (imported-files name files)
;; This is a non-monadic, simplified version of 'imported-files' from (guix
;; gexp).
+ (define same-target?
+ (match-lambda*
+ (((file1 . _) (file2 . _))
+ (string=? file1 file2))))
+
(define build
(with-imported-modules (source-module-closure
'((guix build utils)))
@@ -497,14 +508,15 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
;; symlinks, as this makes a difference for
;; 'add-to-store'.
(copy-file store-path final-path)))
- '#$files))))
+ '#$(delete-duplicates files same-target?)))))
;; We're just copying files around, no need to substitute or offload it.
(computed-file name build
#:options '(#:local-build? #t
- #:substitutable? #f)))
+ #:substitutable? #f
+ #:env-vars (("COLUMNS" . "200")))))
-(define* (compiled-modules name module-tree modules
+(define* (compiled-modules name module-tree module-files
#:optional
(dependencies '())
(dependencies-compiled '())
@@ -512,6 +524,9 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(extensions '()) ;full-blown Guile packages
parallel?
guile-for-build)
+ "Build all the MODULE-FILES from MODULE-TREE. MODULE-FILES must be a list
+like '(\"guix/foo.scm\" \"gnu/bar.scm\") and MODULE-TREE is the directory
+containing MODULE-FILES and possibly other files as well."
;; This is a non-monadic, enhanced version of 'compiled-file' from (guix
;; gexp).
(define build
@@ -542,16 +557,13 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(* 100. (/ completed total)) total)
(force-output))
- (define (process-directory directory output)
- (let ((files (find-files directory "\\.scm$"))
- (prefix (+ 1 (string-length directory))))
- ;; Hide compilation warnings.
- (parameterize ((current-warning-port (%make-void-port "w")))
- (compile-files directory #$output
- (map (cut string-drop <> prefix) files)
- #:workers (parallel-job-count)
- #:report-load report-load
- #:report-compilation report-compilation))))
+ (define (process-directory directory files output)
+ ;; Hide compilation warnings.
+ (parameterize ((current-warning-port (%make-void-port "w")))
+ (compile-files directory #$output files
+ #:workers (parallel-job-count)
+ #:report-load report-load
+ #:report-compilation report-compilation)))
(setvbuf (current-output-port) _IONBF)
(setvbuf (current-error-port) _IONBF)
@@ -579,7 +591,7 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(mkdir #$output)
(chdir #+module-tree)
- (process-directory "." #$output)
+ (process-directory "." '#+module-files #$output)
(newline))))
(computed-file name build