1 |
On Thu, Nov 6, 2014 at 4:38 PM, Ciaran McCreesh |
2 |
<ciaran.mccreesh@××××××××××.com> wrote: |
3 |
> On Thu, 6 Nov 2014 22:32:17 +0100 |
4 |
> Jeroen Roovers <jer@g.o> wrote: |
5 |
>> On Thu, 06 Nov 2014 12:40:33 -0800 |
6 |
>> Zac Medico <zmedico@g.o> wrote: |
7 |
>> > On 11/06/2014 12:11 PM, Michał Górny wrote: |
8 |
>> > > # multilib.eclass collisions |
9 |
>> > > get_libdir() { future_get_libdir "${@}"; } |
10 |
>> > > # eutils.eclass collisions |
11 |
>> > > einstalldocs() { future_einstalldocs "${@}"; } |
12 |
>> > |
13 |
>> > This collision handling mechanism seems pretty reasonable. |
14 |
>> > Alternatively, maybe it could die if the functions are already |
15 |
>> > defined, and advise the developer that future should be inherited |
16 |
>> > later than multilib and eutils. |
17 |
>> |
18 |
>> I'm not aware of any current definition of order in eclass |
19 |
>> inheritance. We sure have issues with inheriting eclasses in a |
20 |
>> different order giving different results now. Is this something |
21 |
>> that's in the works for a future EAPI, then? |
22 |
> |
23 |
> An EAPI solution to this is hard to work out. It would be much easier if |
24 |
> people just stopped writing "clever" eclasses and didn't mix utility |
25 |
> functions and phase functions within a single eclass. |
26 |
> |
27 |
|
28 |
For anybody interested in this the topic came up in the council EAPI |
29 |
discussions especially on June 17th, and in bug: |
30 |
https://bugs.gentoo.org/show_bug.cgi?id=422533 |
31 |
|
32 |
I think we are well-served by taking Ciaran's advice here. Utility |
33 |
eclasses should just passively export functions. Anything that does |
34 |
overrides should really be designed for special situations and not |
35 |
widespread use where it would potentially conflict with other eclasses |
36 |
that do the same. So, a KDE all-in-one eclass might not be bad. A |
37 |
perl all-in-one eclass would be more troublesome, especially if KDE |
38 |
had any packages written in perl. Just to pick somewhat random and |
39 |
perhaps not great examples. |
40 |
|
41 |
-- |
42 |
Rich |