Deduplicate inferior packages
As sometimes there can be duplicates, for example with deprecated packages.
This commit is contained in:
parent
b1ab70a226
commit
944492bd79
1 changed files with 33 additions and 1 deletions
|
|
@ -118,10 +118,42 @@
|
||||||
(append (map list supported-system-pairs)
|
(append (map list supported-system-pairs)
|
||||||
supported-system-cross-build-pairs)))
|
supported-system-cross-build-pairs)))
|
||||||
|
|
||||||
|
(define (deduplicate-inferior-packages packages)
|
||||||
|
(pair-fold
|
||||||
|
(lambda (pair result)
|
||||||
|
(if (null? (cdr pair))
|
||||||
|
(cons (first pair) result)
|
||||||
|
(let* ((a (first pair))
|
||||||
|
(b (second pair))
|
||||||
|
(a-name (inferior-package-name a))
|
||||||
|
(b-name (inferior-package-name b))
|
||||||
|
(a-version (inferior-package-version a))
|
||||||
|
(b-version (inferior-package-version b)))
|
||||||
|
(if (and (string=? a-name b-name)
|
||||||
|
(string=? a-version b-version))
|
||||||
|
(begin
|
||||||
|
(simple-format (current-error-port)
|
||||||
|
"warning: ignoring duplicate package: ~A (~A)\n"
|
||||||
|
a-name
|
||||||
|
a-version)
|
||||||
|
result)
|
||||||
|
(cons a result)))))
|
||||||
|
'()
|
||||||
|
(sort packages
|
||||||
|
(lambda (a b)
|
||||||
|
(let ((a-name (inferior-package-name a))
|
||||||
|
(b-name (inferior-package-name b)))
|
||||||
|
(if (string=? a-name b-name)
|
||||||
|
(string<? (inferior-package-version a)
|
||||||
|
(inferior-package-version b))
|
||||||
|
(string<? a-name
|
||||||
|
b-name)))))))
|
||||||
|
|
||||||
(define (inferior-guix->package-derivation-ids store conn inf)
|
(define (inferior-guix->package-derivation-ids store conn inf)
|
||||||
(let* ((packages (log-time "fetching inferior packages"
|
(let* ((packages (log-time "fetching inferior packages"
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(inferior-packages inf))))
|
(deduplicate-inferior-packages
|
||||||
|
(inferior-packages inf)))))
|
||||||
(packages-metadata-ids
|
(packages-metadata-ids
|
||||||
(log-time "fetching inferior package metadata"
|
(log-time "fetching inferior package metadata"
|
||||||
(lambda ()
|
(lambda ()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue