diff options
-rw-r--r-- | hydra.scm | 34 |
1 files changed, 22 insertions, 12 deletions
@@ -25,7 +25,9 @@ (guix packages) ((guix utils) #:select (%current-system)) (distro) + (distro packages base) (distro packages guile) + (srfi srfi-1) (srfi srfi-26) (ice-9 match)) @@ -40,7 +42,8 @@ (description . ,(package-synopsis package)) (long-description . ,(package-description package)) (license . ,(package-license package)) - (maintainers . ("gnu-system-discuss@gnu.org")))) + (home-page . ,(package-home-page package)) + (maintainers . ("bug-guix@gnu.org")))) (define (package-job store job-name package system) "Return a job called JOB-NAME that builds PACKAGE on SYSTEM." @@ -52,14 +55,21 @@ (or (assoc-ref arguments system) (%current-system))) - (map (match-lambda - ((job-name (? package? package)) - (package-job store job-name package system)) - ((job-name (? string? name)) - (package-job store job-name - (car (find-packages-by-name name)) - system))) - `((hello "hello") - (gmp "gmp") - (guile_2_0 ,guile-2.0) - (guile_1_8 ,guile-1.8)))) + ;; Return one job for each package, except bootstrap packages. + (let ((base-packages (delete-duplicates + (append-map (match-lambda + ((_ package _ ...) + (match (package-transitive-inputs + package) + (((_ inputs _ ...) ...) + inputs)))) + %final-inputs)))) + (fold-packages (lambda (package result) + (if (member package base-packages) + result + (let ((name (string->symbol + (package-full-name package)))) + (cons (package-job store name package + system) + result)))) + '()))) |