1 |
Hi, |
2 |
|
3 |
I am probably going to be top on the bsd camp's 'most hated list' after |
4 |
this, but here goes ... |
5 |
|
6 |
The more I think on Gentoo/<insert bsd flavour here>, the more I tend to |
7 |
get this picture of a little boy that wants to play with the older boys, |
8 |
but are constantly in tears, as the older boys runs too fast for him, or |
9 |
go places he cannot go. |
10 |
|
11 |
Ok, so its not a perfect visualisation, but sort of gets the point |
12 |
across. Especially in one camp, many of the userland utilities is |
13 |
really substandard (not even talking about supporting the extended |
14 |
features most of us are accustomed to), but the once or twice I asked |
15 |
why not replace it with the gnu versions, I got the answer: *sob*, |
16 |
because we want to use our own *sob*. |
17 |
|
18 |
This might have changed (the substandard quality), but I am sure the |
19 |
need for these guys to use their own utilities have not. Now, this is |
20 |
all dandy and stuff, but I really do not see how this have to influence |
21 |
90% (if not more) of the rest of Gentoo-land. |
22 |
|
23 |
|
24 |
On Fri, 2005-06-17 at 16:05 +0200, Diego 'Flameeyes' Pettenò wrote: |
25 |
> On Friday 17 June 2005 04:32, Aron Griffis wrote: |
26 |
> > Before working on a solution to the problem, could we get a more |
27 |
> > complete list of the tools in question? This has come up before but |
28 |
> > the list seems to always end with "etc etc" ;-) |
29 |
> Because I don't really know how many applications are available in different |
30 |
> flavours.. so that's why we can use eselect so that it can be adapted "on the |
31 |
> fly". |
32 |
> |
33 |
|
34 |
And I really do not see why for 10% (I am being generous) of users we |
35 |
should make it possible to select which version of find (or whatever) |
36 |
should be called by default. What other version should the majority of |
37 |
us select between anyhow? Install the bsd versions as well?? |
38 |
|
39 |
I really do not see why we should add extra symlinks and extra logic for |
40 |
90%+ users that will just never use it. |
41 |
|
42 |
> > Unless I misunderstand you, I don't like this at all. It means that |
43 |
> > when an ebuild calls "grep" it doesn't have any idea what the |
44 |
> > supported flags are. |
45 |
> Well about grep we have no misunderstanding... grep is GNU grep also on the |
46 |
> BSD. And actually it has no idea currently about that on G/FBSD or G/OSX.. we |
47 |
> condition this using aliases, but the long-term goal is to avoid this. |
48 |
> |
49 |
|
50 |
Great, so just use a 'long term idea that is more bsd specific'. |
51 |
|
52 |
> > So far we've been free to exploit GNU extensions (aka |
53 |
> > reasonable functionality) in ebuilds. I'd hate to see that go away. |
54 |
> Never said it must go away, actually there's no way that it can go away |
55 |
> completely but.. .we can ask *explicitely* for GNU tools in those cases |
56 |
> (using gsed instead of sed just as an example, or gfind instead of find). |
57 |
> |
58 |
|
59 |
So now we have to start replacing all 'might not work on some sed's (or |
60 |
whatever)' with gsed? This really brings the sed-4 transition days with |
61 |
all its gory details back to mind. |
62 |
|
63 |
> > What scripts are you thinking of in this statement? Sometimes |
64 |
> > ./configure checks, not always, and AFAIK most other scripts don't |
65 |
> > check. |
66 |
> Most of them checks for GNU tools when they need them, for example there are a |
67 |
> few ./configure which, knowing they need GNU make, in a system where make is |
68 |
> BSD and gmake is GNU, launching "make" then exec gmake to do the actual work. |
69 |
> |
70 |
|
71 |
I thought make already installs as 'gmake' on bsd systems ?? |
72 |
|
73 |
> > See, it's this "sed stuff is as compatible as possible" thing I don't |
74 |
> > like. You're talking about writing to a standard instead of an |
75 |
> > implementation. That works for a couple of well-defined compiled |
76 |
> > languages, but I don't think it's going to work for shell scripting |
77 |
> > (ebuilds), especially when the reality is that we'd be writing to half |
78 |
> > a dozen different implementations instead of a standard at all... |
79 |
> See above: when we need GNU sed, we can use gsed. |
80 |
> |
81 |
|
82 |
I might have here (and above) the wrong impression, but I do not think |
83 |
using 'gsed' in ebuilds is the way to go. Just do something bsd |
84 |
specific that always have 'gsed' as 'sed' when emerge is running ?? See |
85 |
below. |
86 |
|
87 |
> |
88 |
> > I don't think that switching to g-prefixed commands for GNU utilities |
89 |
> > is a good answer. We aren't going to be able to push that upstream, |
90 |
> > which means maintaining a lot of patches ourselves. |
91 |
> Upstream usually already have this fixed for BSD system for example. I haven't |
92 |
> had too much trouble with that before on G/FBSD, for example the only |
93 |
> autotool-created makefile which failed on BSD make was gawk, and that just |
94 |
> because it used $(RM) var directly; most ./configure scripts checks for rm |
95 |
> and creates $(RM) var themselves when make != gmake. |
96 |
> |
97 |
|
98 |
But I am assuming you cannot count on this, and this is why you want |
99 |
this 'eselect abomination' ? See below. |
100 |
|
101 |
> > What you're suggesting would cause a lot of pain for the majority of |
102 |
> > Gentoo develpers, i.e. the ones running GNU/Linux. |
103 |
> As we are now, on G/FBSD we have anyway quite all the GNU utilities (but for |
104 |
> example we don't need tar and about find we can use the BSD's one with |
105 |
> ebuilds. |
106 |
> |
107 |
> Anyway, as I already had done, I'm here to fix in case something is using the |
108 |
> wrong way... after a couple of examples this can be quite simple as for the |
109 |
> old gnu-find dependent ebuilds which are now fixed. |
110 |
> |
111 |
|
112 |
But the problem is going to be that somebody will have to keep on |
113 |
'policing' the ebuilds, and possibly teaching all devs all possible |
114 |
variations (broken or not) out there? |
115 |
|
116 |
The bit that Aron said about having things installed in a different |
117 |
location that you snipped, might be your answer. |
118 |
|
119 |
I don't think anybody (or too many) is going to moan too much about |
120 |
having some things install with a 'g' prefix on bsd systems, but I for |
121 |
one are going to complain about implementing something global such as |
122 |
eselect for utilities that have on 90%+ of the installations just the |
123 |
one implementation. |
124 |
|
125 |
I know that say installing all bsdish tools in say /usr/ucb, might not |
126 |
fly, as some of the bsd implementations might not be able to relocate |
127 |
those. |
128 |
|
129 |
You might however say install all gnuish tools with the 'g' prefix, and |
130 |
then install wrapper scripts/stubs into say /usr/bin/gnu/ or /bin/gnu/ |
131 |
(with /usr/bin/gnu/find calling gfind, etc), and portage just adds this |
132 |
path as the first path to $PATH ... |
133 |
|
134 |
This should cover the fact that aliases might not work in all cases, and |
135 |
is bsd specific implementation. |
136 |
|
137 |
|
138 |
Thanks, |
139 |
|
140 |
-- |
141 |
Martin Schlemmer |
142 |
Gentoo Linux Developer, Desktop/System Team Developer |
143 |
Cape Town, South Africa |