1 |
On Wed, Sep 21, 2011 at 6:11 AM, Donnie Berkholz <dberkholz@g.o> wrote: |
2 |
> On 14:20 Tue 20 Sep , Brian Harring wrote: |
3 |
>> On Sun, Sep 18, 2011 at 10:16:46PM -0500, Donnie Berkholz wrote: |
4 |
>> > OK, so the implication of what you're saying is that everything in |
5 |
>> > eutils.eclass, base.eclass, toolchain-funcs.eclass, |
6 |
>> > flag-o-matic.eclass, versionator.eclass, multilib.eclass, |
7 |
>> > prefix.eclass, savedconfig.eclass, and maybe even linux-info.eclass |
8 |
>> > and autotools{,-utils}.eclass should go into EAPI. All that stuff is |
9 |
>> > pretty generally useful features. |
10 |
>> |
11 |
>> Approximately... yes. Some of that (base.eclass for example) is EAPI |
12 |
>> compatibility that can't be folded in (would require retroactively |
13 |
>> addding to an EAPI), others aren't yet stabilized (true multilib for |
14 |
>> example, seems to still be under discussion), etc. |
15 |
>> |
16 |
>> You get the jist. |
17 |
> |
18 |
> Yep, and I'm completely on the opposite end of the spectrum. =) |
19 |
> |
20 |
>> > > They should, but api compatibility of an eclass *can* be fluid- in |
21 |
>> > > the past it was a locked API purely because of portage environment |
22 |
>> > > saving issues. That's been resolved, there isn't any strict |
23 |
>> > > requirement that the eclass maintain API compat now. You're |
24 |
>> > > trying to rely on people doing best practices- for format building |
25 |
>> > > blocks (use_with/usex/unpack/etc), that's not sane. |
26 |
>> > |
27 |
>> > Which still pisses me off. It's like a shared library changing its |
28 |
>> > API without bumping SONAME. |
29 |
>> |
30 |
>> I think you're viewing this wrong; if we're talking about openssl |
31 |
>> breaking API/ABI w/out bumping soname, sure. It's one component that |
32 |
>> is distributed alone, but consumed by others. There is no way to |
33 |
>> atomically deploy the new API at the same time as all of the consumers |
34 |
>> being updated for it. |
35 |
>> |
36 |
>> That is /not/ the case of gentoo-x86; eclasses for us are equivalent |
37 |
>> to bundled libs. Overlay stacking just makes it possible for a third |
38 |
>> party component to reach in and use what is effectively an internal |
39 |
>> lib. |
40 |
> |
41 |
> Not really, because when you update a bundled lib you actually make your |
42 |
> whole app compile with it. People change the APIs of eclasses and then |
43 |
> just let every internal consumer (ebuilds in gentoo-x86) break. Maybe if |
44 |
> we put the burden on the one who changed the API, like the Linux kernel |
45 |
> model, it would bother me less. |
46 |
|
47 |
I think people do this for three reasons. |
48 |
|
49 |
1) There are no refactoring tools that I know of for bash. |
50 |
2) There exist some package maintainers that will yell at you if you |
51 |
touch their packages for any reason. |
52 |
3) Breaking things means they get fixed. |
53 |
|
54 |
We have this notify -> deprecate -> break workflow; I actually don't |
55 |
mind it (but only because I've seen it used elsewhere.) |
56 |
|
57 |
-A |
58 |
> |
59 |
> -- |
60 |
> Thanks, |
61 |
> Donnie |
62 |
> |
63 |
> Donnie Berkholz |
64 |
> Council Member / Sr. Developer |
65 |
> Gentoo Linux |
66 |
> Blog: http://dberkholz.com |
67 |
> |