diff --git a/guix-data-service/comparison.scm b/guix-data-service/comparison.scm index 1559ac8..20945db 100644 --- a/guix-data-service/comparison.scm +++ b/guix-data-service/comparison.scm @@ -647,13 +647,20 @@ ORDER BY coalesce(base_packages.name, target_packages.name) ASC, base_packages.v ((pair) (cons pair result)))) '() - (map (match-lambda - ((base-name base-version _ _ _ _ _ target-name target-version _ _ _ _ _) - (if (or (and (string? base-name) (string-null? base-name)) - (eq? base-name #f)) - (cons target-name target-version) - (cons base-name base-version)))) - package-data)))) + (sort! + (map (match-lambda + ((base-name base-version _ _ _ _ _ target-name target-version _ _ _ _ _) + (if (or (and (string? base-name) (string-null? base-name)) + (eq? base-name #f)) + (cons target-name target-version) + (cons base-name base-version)))) + package-data) + (lambda (a b) + (let ((a-name (car a)) + (b-name (car b))) + (if (string=? a-name b-name) + (stringderivations conn packages-vhash) (define (vhash->derivation-ids vhash)