Gentoo Archives: gentoo-dev

From: hasufell <hasufell@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] rfc: calling all eclass phase functions by default
Date: Mon, 18 Aug 2014 12:56:19
Message-Id: 53F1F7E5.4000309@gentoo.org
In Reply to: Re: [gentoo-dev] rfc: calling all eclass phase functions by default by hasufell
1 hasufell:
2 >
3 > Even more interesting... you can work around this by inheriting
4 > base.eclass explicitly before e.g. unpacker.eclass, something like
5 >
6 > inherit base unpacker games
7 >
8 > => unpacker_src_unpack() is carried out by default (and the ebuild
9 > breaks if someone thinks the base.eclass is useless and removes it)
10 >
11 > inherit unpacker games
12 >
13 > => unpacker_src_unpack is not carried out by default although
14 > games.eclass does not directly overwrite it
15 >
16 > If you think any of this is sensible...
17 >
18
19 Almost forgot, of course this does not work if you expect
20 unpacker_src_unpacker() to run:
21 inherit unpacker games base
22
23 as well as
24 inherit unpacker base games
25
26 however
27 inherit games unpacker base
28
29 will work.
30
31 And now... guess why the games herd made it a policy to always inherit
32 games.eclass last. Because of the unpredictability of eclasses and that
33 they may randomly add exported phase functions. It's a bit paranoid, but
34 understandable, since we don't have any real rules here.
35
36 So in the end 3 eclasses all tell you "inherit me last! really!". Good
37 luck with figuring out how to make a gnome game with python and multilib
38 support work together. I can predict the days such a review would take
39 in #gentoo-sunrise. Not less than 3.

Replies