On Sun, Nov 23, 2014 at 12:33 PM, Nicolas Sebrecht <nicolas.s-...@laposte.net> wrote: > Portage should support a way to expose ALL the conditions for a software > to work and update installed libraries to match the requirements. >
This sounds nice in principle, but making it work is not trivial. Suppose my package works with gcc-1.2.3.4 with a list of 14 specific patches and no others, and glibc-1.2.3.4 with another list of 14 patches and no others. Now suppose 300 other packages have similar requirements. First, expressing that without losing your mind is going to be VERY painful. You basically end up having to use content-hashed packages or something like that. You also end up with 300 copies of glibc in RAM and so on. Second, good luck dealing with security patches and bugfixes. You now have 300 copies of glibc to update, and since your list of dependencies stated that you have 14 patches and no others you now need to update the 300 other packages to use the newer version of glibc. The current Gentoo way is far more limiting, but by having a single version of glibc with a single policy around versioning/etc packages don't have to micromanage what they depend on. If NixOS/etc have found a better solution I'm all ears, but it is hard to tell based on the info on their website. It seems hard to me to allow so much diversity in dependencies without basically having every package on your system running in its own container (thus consuming a lot more RAM), and while managing security updates in a sane way. -- Rich