~ruther/guix-local

1be77eac08d33a316d0dd179fcfc2a8a6558aaf5 — Ludovic Courtès 13 years ago 6211223
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.
1 files changed, 13 insertions(+), 6 deletions(-)

M guix/build/union.scm
M guix/build/union.scm => guix/build/union.scm +13 -6
@@ 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)