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

Reply via email to