On 03/19/2017 02:14 PM, John Darrington wrote: > The problem as I understand it is as follows: > > Two (or more) packages both contain a file: /gnu/store/.../xyz/foo > > So long as those two packages are not both installed into the same profile at > the same time, this is not a problem. However if the user chooses to > install both packages concurrently, then there is a potential conflict and > Guix "resolves" this conflict by arbitrarily choosing the xyz/foo from one > package or the other. > > One could put a "hook" on package A which (through some method) says: "When > this package (A) is installed, then the xyz/foo file from THIS package must > be the one installed into the profile, and not any other one." > > That will work fine so long as only package A has such a hook. But what > happens if package B also contains an identical hook? Both packages' hooks > will then insist that their xyz/foo is the one which must be installed. > > Nothing will have been solved. There will still be a conflict, just shifted > up a level. > > > The issue as I see it is that neither file is the "right" one to install - > or to put it another way - BOTH are the right ones. > > The solutions which I think have been discussed previously are: > > 1. Add an option to the "guix package --install" command to allow the user > to specify which packages' files should take priority. > > 2. Use some kind of heuristic based on date installed and other info to > guess which one is "right". > > 3. ... probably some other suggestions which I've probably forgotten. > > > Also, I think we talked about consolidating the warning messages when these > conflicts occur, so that a less overwhelming number of them are emitted. > > J' > No, normally gschemas.compiled is one file storing information about all GSettings application. It must thus be created from files provided by multiple packages. For example, gnome-calculator ships org.gnome.calculator.gschema.xml and gnome-maps ships org.gnome.Maps.gschema.xml and from both source files a file gschemas.compiled needs to be created when gnome-calculator and gnome-maps are installed to the same profile. This single file then stores settings of both packages.