union: Do not warn about harmless collisions.
Until now we'd get pointless messages like: warning: collision encountered: /gnu/store/…-gtk-icon-themes/share/icons/hicolor/icon-theme.cache /gnu/store/…-inkscape-0.92.3/share/icons/hicolor/icon-theme.cache warning: choosing /gnu/store/…-gtk-icon-themes/share/icons/hicolor/icon-theme.cache * guix/build/union.scm (%harmless-collisions): New variable. (warn-about-collision): Honor it.
This commit is contained in:
parent
7376ba4cd4
commit
827c56515e
@ -81,14 +81,23 @@ identical, #f otherwise."
|
||||
(or (eof-object? n1)
|
||||
(loop))))))))))))))
|
||||
|
||||
(define %harmless-collisions
|
||||
;; This is a list of files that are known to collide, but for which emitting
|
||||
;; a warning doesn't make sense. For example, "icon-theme.cache" is
|
||||
;; regenerated by a profile hook which shadows the file provided by
|
||||
;; individual packages, and "gschemas.compiled" is made available to
|
||||
;; applications via 'glib-or-gtk-build-system'.
|
||||
'("icon-theme.cache" "gschemas.compiled"))
|
||||
|
||||
(define (warn-about-collision files)
|
||||
"Handle the collision among FILES by emitting a warning and choosing the
|
||||
first one of THEM."
|
||||
(format (current-error-port)
|
||||
"~%warning: collision encountered:~%~{ ~a~%~}"
|
||||
files)
|
||||
(let ((file (first files)))
|
||||
(format (current-error-port) "warning: choosing ~a~%" file)
|
||||
(unless (member (basename file) %harmless-collisions)
|
||||
(format (current-error-port)
|
||||
"~%warning: collision encountered:~%~{ ~a~%~}"
|
||||
files)
|
||||
(format (current-error-port) "warning: choosing ~a~%" file))
|
||||
file))
|
||||
|
||||
(define* (union-build output inputs
|
||||
|
Loading…
Reference in New Issue
Block a user