aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-09-08 12:10:25 +0200
committerLudovic Courtès <ludo@gnu.org>2013-09-08 12:10:25 +0200
commit6bf25b7b0554e8b569bc4938c4833491aedc742f (patch)
tree87881d0f74a8cbb5139e6fc093e9e86edfea70be
parente7b385008ca0f0817c3514357cf53151cea0f511 (diff)
downloadguix-6bf25b7b0554e8b569bc4938c4833491aedc742f.tar
guix-6bf25b7b0554e8b569bc4938c4833491aedc742f.tar.gz
hydra: Support a 'subset' argument.
* build-aux/hydra/gnu-system.scm (%core-packages): New variable. (%packages-to-cross-build): Make an alias for %CORE-PACKAGES. (hydra-jobs): Check for the 'subset' argument, and honor it for values "all" and "core".
-rw-r--r--build-aux/hydra/gnu-system.scm36
1 files changed, 28 insertions, 8 deletions
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index d7bdb2d7e4..8206be22ff 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -79,7 +79,7 @@ SYSTEM."
,(cute package->alist store package system
(cut package-cross-derivation <> <> target <>))))
-(define %packages-to-cross-build
+(define %core-packages
(list gmp mpfr mpc coreutils findutils diffutils patch sed grep
gawk gettext hello guile-2.0
%bootstrap-binaries-tarball
@@ -89,6 +89,9 @@ SYSTEM."
%guile-bootstrap-tarball
%bootstrap-tarballs))
+(define %packages-to-cross-build
+ %core-packages)
+
(define %cross-targets
'("mips64el-linux-gnu"
"mips64el-linux-gnuabi64"))
@@ -106,6 +109,11 @@ SYSTEM."
(_
(list (%current-system)))))
+ (define subset
+ (match (assoc-ref arguments 'subset)
+ ("core" 'core) ; only build core packages
+ (_ 'all))) ; build everything
+
(define job-name
(compose string->symbol package-full-name))
@@ -127,11 +135,23 @@ SYSTEM."
inputs))))
%final-inputs))))
(append-map (lambda (system)
- (fold-packages (lambda (package result)
- (if (member package base-packages)
- result
- (cons (package-job store (job-name package)
- package system)
- result)))
- (cross-jobs system)))
+ (case subset
+ ((all)
+ ;; Build everything.
+ (fold-packages (lambda (package result)
+ (if (member package base-packages)
+ result
+ (cons (package-job store (job-name package)
+ package system)
+ result)))
+ (cross-jobs system)))
+ ((core)
+ ;; Build core packages only.
+ (append (map (lambda (package)
+ (package-job store (job-name package)
+ package system))
+ %core-packages)
+ (cross-jobs system)))
+ (else
+ (error "unknown subset" subset))))
systems)))