Gentoo Archives: gentoo-dev

From: William Hubbs <williamh@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: rfc: multilib and fhs 3
Date: Sun, 11 Oct 2015 13:52:37
Message-Id: 20151011135226.GA17249@linux1
In Reply to: [gentoo-dev] Re: rfc: multilib and fhs 3 by Duncan <1i5t5.duncan@cox.net>
1 On Sun, Oct 11, 2015 at 09:46:20AM +0000, Duncan wrote:
2 > William Hubbs posted on Sat, 10 Oct 2015 17:48:15 -0500 as excerpted:
3 >
4 > > All,
5 > >
6 > > fhs 3.0 was approved in June this year [1] [2].
7 > >
8 > > The piece of it that I want to bring up is the lib and libxx
9 > > directories, both in / and /usr. The way I read the fhs, /lib and
10 > > /usr/lib should hold the files for the default abi and /libxx and
11 > > /usr/libxx should hold the files for the alternate abis. In earlier fhs,
12 > > there was an exception for amd64 which stated that the default libraries
13 > > should be in /lib64 and /usr/lib64. However, that exception is now gone.
14 > >
15 > > I know there was discussion/work in the past on removing the lib->lib64
16 > > symlinks on amd64, but I don't remember what happened to that
17 > > discussion. So, I would like to bring it up again and get the info.
18 > >
19 > > What would it take for us to remove the lib->lib64 links?
20 > >
21 > > What would it take for us to do this migration on live systems?
22 > >
23 > > William
24 > >
25 > > [1] https://wiki.linuxfoundation.org/en/FHS [2]
26 > > http://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html
27 >
28 > I don't know what the current status is, but years ago, I used to run
29 > portage with FEATURES=multilib-strict. There weren't many violations in
30 > my installed base at the time, and when there were I filed bugs.
31 >
32 > This biggest problems didn't have to do with installing to the wrong
33 > place, but rather, with configuration paths, etc, not being corrected,
34 > resulting in runtime errors if lib and lib64 were not in fact the same
35 > directory, via symlink or whatever. IIRC, openrc itself, or at least
36 > some openrc initscripts, possibly owned by other packages, was quite a
37 > headache in that regard.
38 >
39 > However, I killed multilib-strict some years ago when I went no-multilib,
40 > and after experiencing problems when lib and lib64 weren't in fact the
41 > same dir, I've not touched those symlinks in years, plus I run systemd
42 > now so wouldn't know about openrc's status even if I was aware of the
43 > general status, so I've no idea what the current status is.
44 >
45 > But multilib-strict in fact checks that packages use lib64 for 64-bit elf
46 > libs (tho I think it might actually get the specifics from the profile,
47 > the amd64 or portage folks should be able to say for sure), failing the
48 > install if lib is used instead, so if in fact FHS 3.0 reverses that, we'd
49 > either have to reverse its check, or possibly configure a test to some
50 > third directory, and then do a test run to catch anything that's
51 > installing to either location, hard-coded.
52 >
53 > Tho as I said, the actual installed installation isn't the entire
54 > problem. Multilib-strict doesn't catch it when a binary is installed to
55 > the right place, but some configuration hard-coding isn't corrected and
56 > still points elsewhere, so if the two locations aren't symlinked or
57 > otherwise actually the same location, things break. That's somewhat
58 > harder to find, and in my experience, the worse headache to try to deal
59 > with, since it's often only caught at runtime, and even then, may only be
60 > caught in specific corner-cases when something doesn't load or isn't
61 > found that you know is installed and should be found and load.
62
63 If I'm reading the new fhs correctly, /usr/lib64 and /lib64 should no
64 longer exist and we should put all 64 bit code in /usr/lib and /lib.
65 This means all no-multilib and multilib setups would have
66 /usr/lib and /lib directories, and multilib setups would add /usr/lib32
67 and /lib32. It is not a reversal; it is the equivalent of
68 "rm lib;mv lib64 lib" run both in / and /usr.
69
70 William

Attachments

File name MIME type
signature.asc application/pgp-signature