profiles: Catch and report collisions in the profile.
authorLudovic Courtès <ludo@gnu.org>
Wed, 7 Jun 2017 07:51:55 +0000 (09:51 +0200)
committerLudovic Courtès <ludo@gnu.org>
Wed, 21 Jun 2017 09:05:53 +0000 (11:05 +0200)
commita654dc4bcf7c8e205bdefa1a1d5f23444dd22778
treee020f5cc14b3d30743cbf9e4a7069a8c5e1125ce
parent81e3485c0d012e29d4e551107fc31c0da89b0006
profiles: Catch and report collisions in the profile.

* guix/profiles.scm (&profile-collision-error): New error condition.
(manifest-transitive-entries, manifest-entry-lookup, lower-manifest-entry)
(check-for-collisions): New procedures.
(profile-derivation): Add call to 'check-for-collisions'.
* guix/ui.scm (call-with-error-handling): Handle '&profile-collision-error'.
* tests/profiles.scm ("collision", "collision of propagated inputs")
("no collision"): New tests.
guix/profiles.scm
guix/ui.scm
tests/profiles.scm