Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 688458

Summary: */s6*, dev-lang/execline: programs in /bin link to libraries in /usr/lib*
Product: Gentoo Linux Reporter: Michał Górny <mgorny>
Component: Current packagesAssignee: William Hubbs <williamh>
Status: RESOLVED INVALID    
Severity: normal CC: aranea, proxy-maint, samuel
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-06-22 07:53:20 UTC
This seems to be a common theme to all those NIH s6 packages: all programs are installed to /bin, all libraries end up in /usr/lib*.  This is plain wrong, as /usr hierarchy is subordinate to /, not the other way around.

To summarize:

- this is plain broken with split /usr (not that we support it),

- this heavily pollutes /bin for no good reason.

Please move the programs to /usr/bin where they belong.
Comment 1 Samuel Holland 2019-06-22 15:08:49 UTC
s6 and s6-rc are an init system/service manager/process supervisor. The binaries (and their dependencies) must be on the rootfs in a split-/usr case, since they are responsible for bringing up the system and mounting /usr. The binaries belong in /bin; putting them in /usr/bin would be broken.

Putting the libraries in /usr/lib was done precisely to avoid polluting /lib. These packages are recommended to be installed with USE=static, and in that case the libraries are not needed at boot time. If they must match, then we will move the libraries to /lib.
Comment 2 William Hubbs gentoo-dev 2019-07-14 18:14:11 UTC
There isn't anything to fix here.
If you are using split /usr, the only way we support this is via an
initramfs. If you use an initramfs, there will be no issue.
Comment 3 Mike Gilbert gentoo-dev 2019-07-14 18:34:51 UTC
(In reply to Samuel Holland from comment #1)
> Putting the libraries in /usr/lib was done precisely to avoid polluting
> /lib. These packages are recommended to be installed with USE=static, and in
> that case the libraries are not needed at boot time. If they must match,
> then we will move the libraries to /lib.

If you're really worried about bloating /lib, put the static libs in /usr/lib, and the shared libs in /lib. Otherwise, the shared libs are not usable without /usr mounted.