Hi cdelia,
> How does guix resolves de dependency tree in those cases? Say I need a > previous package X version, that depends on an earlier package Y > version that the one that is defined on the "main" guix. No “resolving” happens. Guix is a collection of Scheme variables whose values are package objects. These package objects refer to the values of other Scheme variables in Guix. So a package that depends on “python” actually references the value of the “python” variable. This means that replacing a package in the dependency graph requires more effort. Adding the package definition itself won’t be enough. You would need to use the input rewriting API to rewrite the full dependency graph of the packages that you are interested in, replacing every instance of “python” with “my/python” recursively. Obviously, this would result in packages for which we cannot provide binaries. >> Alternatively, you can use a guix git checkout on a specific commit >> that >> still has python-2.7.10, but it's probably not what you want. > > So, to avoid recursive definition of packages: Could I checkout an > earlier guix revision, install the package and then checkout the > latest guix version? > Would that work or it will bring other kind of dragons? You can do this in a manifest and using an “inferior” Guix. See my other message and/or the manual. I suggest using manifests for this instead of doing this manually. -- Ricardo