On Fri, 26 Jun 2026 14:39:22 +0200 Jann Horn <[email protected]> wrote:
> On Thu, Jun 25, 2026 at 10:50 AM Christian Brauner <[email protected]> wrote: > > The arguments I have heard from various people so far are: > > > > (1) Userspace would be able to clone a random chroot to /woot and run a > > binary from it without having to set up a complicated sandbox > > effectively making dynamically linked binaries more like static > > binaries in a sense. > > > > (2) Quote: > > "If you debootstrap/dnf a chroot to some location in your > > home dir and try to run a binary from it, that it tries to load the > > libraries from your /usr is a pretty unintuitive and not at all > > useful behavior." > > > > (3) Quote: > > "[Various remote execution things run in locked down containers that > > disable userns, which makes the sandbox impossible and hence our > > builds wouldn't work there." > > FWIW I think someone also mentioned to me that it would make things > easier for them if they could build a piece of software in one > environment and then bundle it up with all required libraries and such > and run it in a very different environment, without > container/sandboxing stuff and without static linking. But I guess > that's kinda niche. The problem with 'ship the shared libraries with the application' is that you get all the problems of static linking. If there is a bug in the library code you can't fix it without getting the 3rd party to rebuild their application package. If the bug is in a system shared library updating the system libraries fixes the bug. Now this does require that the writers of shared libraries maintain backwards compatibility and that the 'system' provides the required updates. I remember a long time ago the company I worked for shipped a system where the libc.so the linker found was actually an archive library one of whose members was a shared library. So some functions were dynamically loaded and others static. There was a bug in one of the static functions (IIRC it corrupted the utmp file), once located and fixed the 3rd party had to be persuaded to rebuild and re-release their product. (It has to be said that anyone with half a brain would have realised that because libc was split for compatibility reasons, statically linking this particular function was actually stupid.) David

