~ruther/guix-local

6bf25b7b0554e8b569bc4938c4833491aedc742f — Ludovic Courtès 12 years ago e7b3850
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".
1 files changed, 28 insertions(+), 8 deletions(-)

M build-aux/hydra/gnu-system.scm
M build-aux/hydra/gnu-system.scm => build-aux/hydra/gnu-system.scm +28 -8
@@ 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)))