Gentoo Archives: gentoo-portage-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [PATCH] ebuild.sh: Explicitly ban get_libdir in global scope
Date: Thu, 31 Aug 2017 14:07:49
Message-Id: 1504188463.1457.0.camel@gentoo.org
In Reply to: Re: [gentoo-portage-dev] [PATCH] ebuild.sh: Explicitly ban get_libdir in global scope by Zac Medico
1 W dniu śro, 30.08.2017 o godzinie 23∶36 -0700, użytkownik Zac Medico
2 napisał:
3 > On 08/30/2017 01:45 PM, Michał Górny wrote:
4 > > W dniu śro, 30.08.2017 o godzinie 13∶35 -0700, użytkownik Zac Medico
5 > > napisał:
6 > > > On 08/30/2017 01:31 PM, Michał Górny wrote:
7 > > > > W dniu śro, 30.08.2017 o godzinie 10∶48 -0700, użytkownik Zac Medico
8 > > > > napisał:
9 > > > > > On 08/30/2017 02:06 AM, Michał Górny wrote:
10 > > > > > > The value of get_libdir depends on the profile, and so it is not useful
11 > > > > > > for dependency calculations. Furthermore, it seems that Portage does
12 > > > > > > not handle defining it in global scope well due to EAPI checking magic.
13 > > > > > > Ban it completely where it is defined as EAPI function to let developers
14 > > > > > > catch their mistakes early rather than see them as 'command not found'
15 > > > > > > errors during dependency calculation / cache updates.
16 > > > > > >
17 > > > > > > Bug: https://bugs.gentoo.org/629010
18 > > > > > > ---
19 > > > > > > bin/ebuild.sh | 1 +
20 > > > > > > 1 file changed, 1 insertion(+)
21 > > > > > >
22 > > > > > > diff --git a/bin/ebuild.sh b/bin/ebuild.sh
23 > > > > > > index a400ef72e..f1ac3f278 100755
24 > > > > > > --- a/bin/ebuild.sh
25 > > > > > > +++ b/bin/ebuild.sh
26 > > > > > > @@ -66,6 +66,7 @@ else
27 > > > > > > use useq usev use_with use_enable"
28 > > > > > > ___eapi_has_usex && funcs+=" usex"
29 > > > > > > ___eapi_has_in_iuse && funcs+=" in_iuse"
30 > > > > > > + ___eapi_has_get_libdir && funcs+=" get_libdir"
31 > > > > > > # These functions die because calls to them during the "depend" phase
32 > > > > > > # are considered to be severe QA violations.
33 > > > > > > funcs+=" best_version has_version portageq"
34 > > > > > >
35 > > > > >
36 > > > > > It's possible that there are working ebuilds that call get_libdir in
37 > > > > > global scope. Have we done an analysis of the ebuilds in the gentoo
38 > > > > > repository? Obviously, it would be safer to call eqawarn.
39 > > > >
40 > > > > If there were any (more), we'd have caught them during cache regen,
41 > > > > wouldn't we? When I accidentally left it when bumping to EAPI 6, I've
42 > > > > got a bug report almost immediately.
43 > > >
44 > > > We'll only catch it during cache regen if we delete all of the previous
45 > > > cache, forcing all of the ebuilds to be sourced again. If all ebuilds in
46 > > > the gentoo tree are compliant, the I think that's good enough for us to
47 > > > die here.
48 > >
49 > > I'm pretty sure all of them are. However, if someone has resources to
50 > > spare, I'd appreciate running a full regen with the patch to confirm.
51 >
52 > Confirmed. Please merge the patch.
53
54 Thanks. Merged now.
55
56 --
57 Best regards,
58 Michał Górny