1 |
On Thu, 8 Nov 2012 23:13:46 -0600 |
2 |
William Hubbs <williamh@g.o> wrote: |
3 |
|
4 |
> On Thu, Nov 08, 2012 at 08:46:29PM -0300, Alexis Ballier wrote: |
5 |
> > On Thu, 8 Nov 2012 12:53:48 -0600 |
6 |
> > William Hubbs <williamh@g.o> wrote: |
7 |
> > |
8 |
> > > On Thu, Nov 08, 2012 at 07:15:57PM +0100, Fabian Groffen wrote: |
9 |
> > > > On 08-11-2012 11:45:48 -0600, William Hubbs wrote: |
10 |
> > > > > > - approve/disapprove removal of gen_usr_ldscript |
11 |
> > > > > |
12 |
> > > > > A better way to put this is disabling gen_usr_ldscript on |
13 |
> > > > > Linux. Some of the alternate platforms still use it, so I do |
14 |
> > > > > not advocate killing the function. |
15 |
> > > > > If we go forward with the plan, there is no reason the council |
16 |
> > > > > should reject disabling gen_usr_ldscript on Linux that I am |
17 |
> > > > > aware of. |
18 |
> > > > > |
19 |
> > > > > This also has to wait until the blockers are resolved on the |
20 |
> > > > > tracker. |
21 |
> > > > |
22 |
> > > > Do you suggest to drop the point from the agenda? I'd love |
23 |
> > > > that. |
24 |
> > > |
25 |
> > > I believe we can drop the gen_usr_ldscript question, yes, because |
26 |
> > > if everything else happens, we can just have the toolchain guys |
27 |
> > > make it a noop on Linux. |
28 |
> > |
29 |
> > Something simpler and smoother imho is to just have a profile |
30 |
> > variable that will make gen_usr_ldscript a noop, whatever CHOST or |
31 |
> > the kernel is. New profiles are added with this variable set, wide |
32 |
> > testing can be done without forcing anyone, and voila. It is also |
33 |
> > simpler for maintaining the various OSes, packages that used to |
34 |
> > install to / can just be changed to install to /usr when this |
35 |
> > variable is set. |
36 |
> |
37 |
> I'm not trying to make packages install in /usr with this change. |
38 |
|
39 |
You are, since if a package in / needs a shared lib in /usr, there is |
40 |
absolutely no point in installing the package in /. |
41 |
nooping gen_usr_ldscript should come with a kind of plan for the /usr |
42 |
move otherwise it is a bit ugly and somewhat loses its point. |
43 |
|
44 |
> gen_usr_ldscript was introduced to force shaired libraries that |
45 |
> upstream installs into /usr/lib to move to /lib and leave the static |
46 |
> libraries in /usr/lib. |
47 |
|
48 |
It's rather the opposite actually: very few upstream specify their |
49 |
install location, most default to /usr/local prefix because that's |
50 |
autotools default. econf (ie us) sets the prefix to /usr. |
51 |
gen_usr_ldscript is there because we don't need the static lib in / (so |
52 |
that setting libdir to /lib is not an option) while the shared lib is |
53 |
needed by binaries in /. We could just move the shared lib to / but |
54 |
then the linker may link to the static lib if /usr/lib comes |
55 |
before /lib in its search order, so we need a .so in the same dir as |
56 |
the .a. For example FreeBSD solved that differently: they |
57 |
symlink /lib/libfoo.so to /usr/lib/libfoo.so. Years ago we deemed |
58 |
symlinks crossing the /usr barrier were bad, and here comes |
59 |
gen_usr_ldscript. Note that I don't really see the difference between a |
60 |
symlink crossing the /usr barrier and a ldscript referencing a file |
61 |
outside of /usr but there must be some argument behind. |
62 |
|
63 |
> So, gentoo linux is diverging from upstream's install locations by |
64 |
> splitting up where we install libraries. All I'm proposing is that on |
65 |
> linux we should remove that divergance and put libraries where |
66 |
> upstream installs them. |
67 |
|
68 |
Let's move everything to /usr/local :) there is not really a 'where |
69 |
upstream installs them' argument in this discussion, autotools is |
70 |
specifically designed so that distributions can tweak the install |
71 |
location. The fact that both the static and shared libs go to libdir is |
72 |
only a shortcoming of autotools, some other build systems make the |
73 |
distinction. |
74 |
|
75 |
> Since we can tell we are on linux by looking at the chost/ctarget |
76 |
> variables, and there is not an intention to change anything for *bsd |
77 |
> or any other O/S, I am not sure I follow the need for a profile |
78 |
> variable. |
79 |
|
80 |
Testing it. Testing the /usr move broadly. |
81 |
You want gen_usr_ldscript on non-bootable systems (eg prefix, mingw) to |
82 |
be (mostly) a noop too which you can't distinguish from only CHOST. |
83 |
|
84 |
> Again, I'm not asking that the council vote on this at this vote, I am |
85 |
> just asking that they approve the two methods of supporting separate |
86 |
> /usr on linux and approve the action plan of putting out a newsitem |
87 |
> and giving a time window for everyone to migrate to either initramfs |
88 |
> or busybox[sep-usr]. |
89 |
|
90 |
Fair enough :) |
91 |
|
92 |
> If they want to discuss the gen_usr_ldscript issue I'm not opposed to |
93 |
> that, but that isn't really what I am asking for in this meeting. |
94 |
|
95 |
IMHO this needs a discussion on -dev before going through the council. |