diff options
-rw-r--r-- | guix-data-service/model/derivation.scm | 27 | ||||
-rw-r--r-- | guix-data-service/web/revision/controller.scm | 6 | ||||
-rw-r--r-- | guix-data-service/web/revision/html.scm | 13 |
3 files changed, 43 insertions, 3 deletions
diff --git a/guix-data-service/model/derivation.scm b/guix-data-service/model/derivation.scm index c565607..5d900fc 100644 --- a/guix-data-service/model/derivation.scm +++ b/guix-data-service/model/derivation.scm @@ -273,6 +273,8 @@ ORDER BY derivations.file_name commit-hash #:key reproducibility-status + system + target limit-results after-path) (define query @@ -315,9 +317,22 @@ INNER JOIN packages ON package_derivations.package_id = packages.id WHERE guix_revisions.commit = $1 " - (if after-path - " AND derivation_output_details.path > $2" - "") + (let ((criteria + `(,@(if after-path + '(" AND derivation_output_details.path > ") + '()) + ,@(if system + '(" AND package_derivations.system = ") + '()) + ,@(if target + '(" AND package_derivations.target = ") + '())))) + (string-concatenate + (map (lambda (query count) + (simple-format #f "~A$~A" + query count)) + criteria + (iota (length criteria) 2)))) (cond ((string=? reproducibility-status "any") "") @@ -377,6 +392,12 @@ ORDER BY derivation_output_details.path `(,commit-hash ,@(if after-path (list after-path) + '()) + ,@(if system + (list system) + '()) + ,@(if target + (list target) '()))))) (define (insert-derivation-outputs conn diff --git a/guix-data-service/web/revision/controller.scm b/guix-data-service/web/revision/controller.scm index d65de15..faf3380 100644 --- a/guix-data-service/web/revision/controller.scm +++ b/guix-data-service/web/revision/controller.scm @@ -200,6 +200,8 @@ `((after_path ,identity) (reproducibility_status ,identity #:default "any") + (system ,parse-system #:default "x86_64-linux") + (target ,parse-system #:default "x86_64-linux") (limit_results ,parse-result-limit #:no-default-when (all_results) #:default 10) @@ -691,6 +693,7 @@ query-parameters '() '() + '() #:path-base path-base #:header-text header-text #:header-link header-link)))) @@ -704,6 +707,8 @@ commit-hash #:reproducibility-status (assq-ref query-parameters 'reproducibility_status) + #:system (assq-ref query-parameters 'system) + #:target (assq-ref query-parameters 'target) #:limit-results limit-results #:after-path (assq-ref query-parameters 'after_path))) (build-server-urls @@ -729,6 +734,7 @@ query-parameters derivation-outputs build-server-urls + (valid-systems conn) show-next-page? #:path-base path-base #:header-text header-text diff --git a/guix-data-service/web/revision/html.scm b/guix-data-service/web/revision/html.scm index 7b6fd05..f6366a1 100644 --- a/guix-data-service/web/revision/html.scm +++ b/guix-data-service/web/revision/html.scm @@ -987,6 +987,7 @@ figure { query-parameters derivation-outputs build-server-urls + valid-systems show-next-page? #:key (path-base "/revision/") header-text @@ -1028,6 +1029,18 @@ figure { ("Unreproducible" . "unreproducible")) #:help-text "Do the known hashes for this output suggest it's reproducible, or not reproducible.") ,(form-horizontal-control + "System" query-parameters + #:options valid-systems + #:allow-selecting-multiple-options #f + #:help-text "Only include derivations for this system." + #:font-family "monospace") + ,(form-horizontal-control + "Target" query-parameters + #:options valid-systems + #:allow-selecting-multiple-options #f + #:help-text "Only include derivations that are build for this system." + #:font-family "monospace") + ,(form-horizontal-control "After path" query-parameters #:help-text "List packages that are alphabetically after the given name.") |