From 1be77eac08d33a316d0dd179fcfc2a8a6558aaf5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 6 Feb 2013 22:52:50 +0100 Subject: union: Don't warn when colliding leaves point to the same file. * guix/build/union.scm (union-build)[resolve-collision]: Pass LEAVES through `delete-duplicates'; warn iff the result contains more than one item. --- guix/build/union.scm | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/guix/build/union.scm b/guix/build/union.scm index a6a4450180..275746d83e 100644 --- a/guix/build/union.scm +++ b/guix/build/union.scm @@ -137,13 +137,20 @@ the DIRECTORIES." (define (resolve-collision leaves) ;; LEAVES all have the same basename, so choose one of them. - (format (current-error-port) "warning: collision encountered: ~{~a ~}~%" - leaves) + (match (delete-duplicates leaves string=?) + ((one-and-the-same) + ;; LEAVES all actually point to the same file, so nothing to worry + ;; about. + one-and-the-same) + ((and lst (head _ ...)) + ;; A real collision. + (format (current-error-port) "warning: collision encountered: ~{~a ~}~%" + lst) - ;; TODO: Implement smarter strategies. - (format (current-error-port) "warning: arbitrarily choosing ~a~%" - (car leaves)) - (car leaves)) + ;; TODO: Implement smarter strategies. + (format (current-error-port) "warning: arbitrarily choosing ~a~%" + head) + head))) (setvbuf (current-output-port) _IOLBF) (setvbuf (current-error-port) _IOLBF) -- cgit v1.2.3