Just log duplicates once, to avoid the duplicate logging

This commit is contained in:
Christopher Baines 2025-03-19 13:02:33 +00:00
parent de476a8b40
commit 1f9626d058

View file

@ -659,8 +659,9 @@
store store
proc)) proc))
(define (sort-and-deduplicate-inferior-packages packages (define* (sort-and-deduplicate-inferior-packages packages
pkg-to-replacement-hash-table) pkg-to-replacement-hash-table
#:key log-duplicates?)
(let ((sorted-packages (let ((sorted-packages
(sort packages (sort packages
(lambda (a b) (lambda (a b)
@ -727,6 +728,7 @@
(and (eq? #f a-replacement) (and (eq? #f a-replacement)
(eq? #f b-replacement)))) (eq? #f b-replacement))))
(begin (begin
(when log-duplicates?
(simple-format (current-error-port) (simple-format (current-error-port)
"warning: ignoring duplicate package: ~A@~A (replacement: ~A, location: ~A)\n" "warning: ignoring duplicate package: ~A@~A (replacement: ~A, location: ~A)\n"
a-name a-name
@ -735,13 +737,14 @@
(location-line a-location)) (location-line a-location))
(print-packages-matching-name-and-version (print-packages-matching-name-and-version
a-name a-name
a-version) a-version))
result) result)
(cons a result))))) (cons a result)))))
'() '()
sorted-packages))) sorted-packages)))
(define (inferior-packages-plus-replacements inf) (define* (inferior-packages-plus-replacements inf
#:key log-duplicates?)
(let* ((packages (let* ((packages
;; The use of force in (guix inferior) introduces a continuation ;; The use of force in (guix inferior) introduces a continuation
;; barrier ;; barrier
@ -800,7 +803,8 @@
;; TODO Sort introduces a continuation barrier ;; TODO Sort introduces a continuation barrier
(sort-and-deduplicate-inferior-packages (sort-and-deduplicate-inferior-packages
(append! packages non-exported-replacements) (append! packages non-exported-replacements)
pkg-to-replacement-hash-table))))) pkg-to-replacement-hash-table
#:log-duplicates? log-duplicates?)))))
(deduplicated-packages-length (deduplicated-packages-length
(length deduplicated-packages))) (length deduplicated-packages)))
@ -2099,7 +2103,9 @@ SELECT store_path FROM derivation_source_files WHERE id = $1"
(with-time-logging "getting all inferior package data" (with-time-logging "getting all inferior package data"
(let ((packages (let ((packages
pkg-to-replacement-hash-table pkg-to-replacement-hash-table
(inferior-packages-plus-replacements inferior))) (inferior-packages-plus-replacements
inferior
#:log-duplicates? #t)))
(all-inferior-packages-data (all-inferior-packages-data
inferior inferior
packages packages