Gentoo Archives: gentoo-dev

From: Alec Warner <antarus@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] new `usex` helper
Date: Wed, 21 Sep 2011 16:37:50
Message-Id: CAAr7Pr-Quf2pNOrsNDcnnj3Avp92ggw1=Hxio7uhdcGONxSkdg@mail.gmail.com
In Reply to: Re: [gentoo-dev] new `usex` helper by Donnie Berkholz
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 >

Replies

Subject Author
Re: [gentoo-dev] new `usex` helper Donnie Berkholz <dberkholz@g.o>