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 |