GNU bug report logs -
#27271
[PATCH 0/4] Catch collisions at profile creation time
Previous Next
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Wed, 7 Jun 2017 09:24:01 UTC
Severity: normal
Tags: patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hello Guix!
These patches allow us to catch problematic collisions when computing
a profile derivation. As we know, the profile builder often spits out
a number of warnings about collisions but that is not very useful because
users cannot distinguish the problematic cases from the harmless cases
(an example of a harmless case is when GDB and Binutils provide an
almost-identical .info file twice).
Concretely, what happens is something like this:
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix package -i guile-cairo -n
The following package would be upgraded:
guile-cairo 1.4.1 → 1.4.1 /gnu/store/k9p7j9ijb9vfkmvcgr4vqy20vkg6nsbg-guile-cairo-1.4.1
guix package: error: profile contains conflicting entries for guile-cairo:out
guix package: error: first entry: guile-cairo <at> 1.4.1:out /gnu/store/k9p7j9ijb9vfkmvcgr4vqy20vkg6nsbg-guile-cairo-1.4.1
guix package: error: second entry: guile-cairo <at> 1.4.1:out /gnu/store/x0jp2q06snx7skrqdmlkn0r5fhyvvn00-guile-cairo-1.4.1
guix package: error: ... propagated from guile-rsvg <at> 2.18.1
$ ./pre-inst-env guix package -i guile-cairo guile-rsvg guile-present -n
The following packages would be upgraded:
guile-cairo 1.4.1 → 1.4.1 /gnu/store/k9p7j9ijb9vfkmvcgr4vqy20vkg6nsbg-guile-cairo-1.4.1
guile-rsvg 2.18.1 → 2.18.1 /gnu/store/xp8wcyvhplsv45gkj9r4n6zmcdancfkn-guile-rsvg-2.18.1
guile-present 0.3.0 → 0.3.0 /gnu/store/qwk8fzijyllaxv4vw114gqzix1qvfmp2-guile-present-0.3.0
guix package: error: profile contains conflicting entries for guile-cairo:out
guix package: error: first entry: guile-cairo <at> 1.4.1:out /gnu/store/k9p7j9ijb9vfkmvcgr4vqy20vkg6nsbg-guile-cairo-1.4.1
guix package: error: second entry: guile-cairo <at> 1.4.1:out /gnu/store/x0jp2q06snx7skrqdmlkn0r5fhyvvn00-guile-cairo-1.4.1
guix package: error: ... propagated from guile-charting <at> 0.2.0
$ ./pre-inst-env guix package -i guile-cairo guile-rsvg guile-charting guile-present -n
The following packages would be upgraded:
guile-cairo 1.4.1 → 1.4.1 /gnu/store/k9p7j9ijb9vfkmvcgr4vqy20vkg6nsbg-guile-cairo-1.4.1
guile-rsvg 2.18.1 → 2.18.1 /gnu/store/xp8wcyvhplsv45gkj9r4n6zmcdancfkn-guile-rsvg-2.18.1
guile-charting 0.2.0 → 0.2.0 /gnu/store/11368xymyhk4zz8zwvbdmp5dzcl0vxvc-guile-charting-0.2.0
guile-present 0.3.0 → 0.3.0 /gnu/store/qwk8fzijyllaxv4vw114gqzix1qvfmp2-guile-present-0.3.0
substitute: updating list of substitutes from 'https://bayfront.guixsd.org'... 100.0%
substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
The following derivations would be built:
/gnu/store/r361w7fa57vm7js8lk4bnsc7lwv2avby-profile.drv
/gnu/store/l5hf8cg5fx6par39659ihkhdgp3kls1n-xdg-mime-database.drv
/gnu/store/k8jmvc8yjk3qg8xbgcfgpgngq7vkygld-info-dir.drv
/gnu/store/ivnqmwwxwric5lhw5gqnpkxq6gbzj23i-fonts-dir.drv
/gnu/store/hdaasxvm64h06xxzwrnx2gch981h88wf-ca-certificate-bundle.drv
/gnu/store/axzp9vj4h59nnbmf6ccaajb9qq97xwb8-gtk-icon-themes.drv
/gnu/store/8dkb7k53x1c0zhb9qdgrgr53j5j3biwf-gtk-im-modules.drv
/gnu/store/v2w6qpf0kk2d70wv01f3ln1v758sgzqm-manual-database.drv
--8<---------------cut here---------------end--------------->8---
As in the example above, conflicts may arise when doing a partial
upgrade of a profile, because this is a situation where you can easily
end up with conflicting versions of a given package. It’s much less
likely when using ‘guix package -m’ or similar.
An open question is whether there are commonly used combinations of
packages that trigger conflicts. I haven’t had any problems with my
profile (with 234 packages) nor with my GuixSD config, but I encourage
you to test it on your profile!
Thoughts?
Ludo’.
Ludovic Courtès (3):
profiles: Represent propagated inputs as manifest entries.
profiles: Manifest entries keep a reference to their parent entry.
profiles: Catch and report collisions in the profile.
guix/profiles.scm | 241 +++++++++++++++++++++++++++++++++++++++++------------
guix/ui.scm | 27 ++++++
tests/profiles.scm | 87 +++++++++++++++++++
3 files changed, 301 insertions(+), 54 deletions(-)
--
2.13.0
This bug report was last modified 8 years and 57 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.