Gentoo Archives: gentoo-portage-dev

From: Mike Frysinger <vapier@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [PATCH] ebuild: set up bash compat levels
Date: Fri, 13 Nov 2015 00:06:57
Message-Id: 20151113000652.GJ5154@vapier.lan
In Reply to: Re: [gentoo-portage-dev] [PATCH] ebuild: set up bash compat levels by Zac Medico
1 On 11 Nov 2015 22:40, Zac Medico wrote:
2 > On 11/11/2015 10:33 PM, Zac Medico wrote:
3 > > On 11/11/2015 01:11 PM, Mike Frysinger wrote:
4 > >> On 11 Nov 2015 13:04, Zac Medico wrote:
5 > >>> On 11/11/2015 12:55 PM, Mike Frysinger wrote:
6 > >>>> On 11 Nov 2015 11:42, Zac Medico wrote:
7 > >>>>> On 11/10/2015 08:39 PM, Mike Frysinger wrote:
8 > >>>>>> +# Set up the bash version compatibility level.
9 > >>>>>> +__check_bash_version() {
10 > >>>>>
11 > >>>>> Please unset all new internal function inside bin/save-ebuild-env.sh.
12 > >>>>> Note that it already uses this line to unset functions beginning with
13 > >>>>> ___eapi:
14 > >>>>>
15 > >>>>> unset -f $(compgen -A function ___eapi_)
16 > >>>>
17 > >>>> why don't we create a new namespace for portage funcs ? something like __e* ?
18 > >>>
19 > >>> That works for me. According to PMS, we're free to do anything we want
20 > >>> as long as it begins with at least 2 underscores.
21 > >>
22 > >> interesting. why don't we just unmap all things that begin with 2 underscores
23 > >> then ? or maybe 3 ?
24 > >
25 > > Well, that's sort of a "greedy" approach when you consider that you
26 > > might wipe out a function defined in an eclass or ebuild.
27
28 i'm fully aware we might clobber eclasses/ebuilds, but as you said, PMS already
29 says ebuilds shouldn't be using that space.
30
31 > > Check this to
32 > > see what might be filtered:
33 > >
34 > > bzgrep ^__ /var/db/pkg/*/*/environment.bz2
35
36 i find nothing of value in there.
37
38 from portage:
39 __bashpid ()
40 __eapi6_src_install ()
41 __eapi6_src_prepare ()
42 __start_distcc ()
43
44 from ebuilds/eclasses that have already stopped using __:
45 __do_sed_fix ()
46 ___ECLASS_RECUR_MULTILIB=yes
47 ___ECLASS_RECUR_TOOLCHAIN_FUNCS=yes
48 __versionator_shopt_toggle ()
49 __versionator__test_version_compare ()
50 __versionator__test_version_is_at_least ()
51
52 grepping the tree, i see like two packages and one eclass still using __.
53 both of which are trivial to convert.
54
55 > > A nice compromise is to choose a namespace like __portage or something
56 > > like that.
57
58 we should nuke ___* at least. i don't see any installed package using that.
59
60 > Also note that some internals have been intentionally preserved in
61 > environment.bz2. For example, __eapi6_src_install exposes the default
62 > src_install implementation, which someone might examine for debugging
63 > purposes.
64
65 is that actually useful ? i can't see how it would be.
66 -mike

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies