[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Stuff from /bin, /sbin, /lib depending on /usr/lib libraries

Hi Russ,

On Wed, Aug 29, 2012 at 04:06:22PM -0700, Russ Allbery wrote:
> Michael Biebl <biebl@debian.org> writes:

> > Imho moving pam modules around is just wasted (maintainer) time.
> > A much more sensible approach is to just lift the /-vs-/usr restriction.

> We just had a long discussion about this.  I think it's fairly safe to say
> that while there are a number of people who think the distinction is not
> particularly meaningful, there are others who still use it for various
> reasons, and there's no consensus for doing this right now.

Much of this lack of consensus comes down to a misunderstanding of the
actual parameters.

The Fedora implementation does not require us to drop support for /usr as a
separate filesystem.  It only requires us to ensure /usr is mounted before
init is started.

 - /usr as a separate filesystem mounted from an initramfs: supported
 - /usr on the root filesystem: supported
 - /usr on a separate filesystem without the use of an initramfs: not
   supported... and no discernable user demand for this.

My knee-jerk reaction to the Fedora proposal had been that it was sick and
wrong and would cause unacceptable breakage for users on upgrades if Debian
adopted the same plan.  However, I struggled to formulate a concrete
scenario where losing support for that last configuration would actually
make a difference.

No one in the various threads on debian-devel has presented such a scenario.
They've all been arguing the straw man that "/usr as a separate fs is not
supported", which is not what's on the table.

I brought this topic up for discussion at the last Ubuntu Developer Summit
as well; there again, no one was able to come up with a real use case that
is not handled by the Fedora design.

So Ubuntu is intending to follow suit on this and mount /usr from the
initramfs.  It's just not worth the effort to do otherwise - and up to this
point, Ubuntu actually has done the work to make sure /lib was
self-contained for boot, so we do have some experience there with how much
work is actually required (and btw, some experience with how quick Debian
maintainers are to pick up the related fixes, since many of the changes were
forwarded to Debian and sat for quite a while without being merged).  It's
not just the one-time effort to change the packaging, either; remember that
the *-dev* package has to always go to /usr/lib even if the *runtime*
library goes to /lib, which causes some maintenance overhead in splitting
the files this finely (i.e., debian/rules basically needs some horrible code
to re-make symlinks dynamically).  As I recall, e2fsprogs and util-linux in
particular have required some real ongoing effort to maintain this split
correctly, and I've seen plenty of packages getting this wrong and putting
.so symlinks in /lib (where ld doesn't see them!), or worse, .a files,
defeating the purpose of a small / partition.

This, plus the extensive upstream use (IMHO misuse) of software installed to
/usr as part of udev rules, means that in reality an ever increasing number
of libraries need to be shipped in /lib to properly handle bootstrapping the
mount of /usr using only the contents of /.

In contrast, if we use an initramfs to handle mounting of /usr, we move all
the complexity out of the packaging and instead pull components into the
small initramfs only as needed.  As far as I've been able to determine,
there really is no downside to the user from making this switch.

Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Attachment: signature.asc
Description: Digital signature

Reply to: