* [gentoo-portage-dev] [PATCH 1/2] portage.package.ebuild.config: Rename iuse_implicit -> iuse_effective @ 2016-05-20 22:26 Michał Górny 2016-05-20 22:26 ` [gentoo-portage-dev] [PATCH 2/2] ebuild.config: Fix filtering all USE_EXPAND variables in EAPI 5+ Michał Górny 0 siblings, 1 reply; 7+ messages in thread From: Michał Górny @ 2016-05-20 22:26 UTC (permalink / raw To: gentoo-portage-dev; +Cc: Michał Górny Rename the iuse_implicit variable used in USE_EXPAND handling to iuse_effective, since that is what is actually passed there. Correct naming makes figuring out what the function does much easier. --- pym/portage/package/ebuild/config.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index 45b7d08..5f19996 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -1278,13 +1278,13 @@ class config(object): """ def __init__(self, settings, unfiltered_use, - use, usemask, iuse_implicit, + use, usemask, iuse_effective, use_expand_split, use_expand_dict): self._settings = settings self._unfiltered_use = unfiltered_use self._use = use self._usemask = usemask - self._iuse_implicit = iuse_implicit + self._iuse_effective = iuse_effective self._use_expand_split = use_expand_split self._use_expand_dict = use_expand_dict @@ -1302,7 +1302,7 @@ class config(object): if has_wildcard: var_split = [ x for x in var_split if x != "*" ] has_iuse = set() - for x in self._iuse_implicit: + for x in self._iuse_effective: if x[:prefix_len] == prefix: has_iuse.add(x[prefix_len:]) if has_wildcard: -- 2.8.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-portage-dev] [PATCH 2/2] ebuild.config: Fix filtering all USE_EXPAND variables in EAPI 5+ 2016-05-20 22:26 [gentoo-portage-dev] [PATCH 1/2] portage.package.ebuild.config: Rename iuse_implicit -> iuse_effective Michał Górny @ 2016-05-20 22:26 ` Michał Górny 2016-05-21 6:48 ` Michał Górny 0 siblings, 1 reply; 7+ messages in thread From: Michał Górny @ 2016-05-20 22:26 UTC (permalink / raw To: gentoo-portage-dev; +Cc: Michał Górny Ensure that all USE_EXPAND variables are properly filtered and exported in EAPI 5 and newer, as required by the PMS. This includes exporting an empty value if no matching flag is provided in IUSE. Bug: https://bugs.gentoo.org/show_bug.cgi?id=582140 --- pym/portage/eapi.py | 6 +++++- pym/portage/package/ebuild/config.py | 11 ++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py index 1709026..c4fb374 100644 --- a/pym/portage/eapi.py +++ b/pym/portage/eapi.py @@ -50,6 +50,9 @@ def eapi_exports_EBUILD_PHASE_FUNC(eapi): def eapi_exports_REPOSITORY(eapi): return eapi in ("4-python", "5-progress") +def eapi_exports_USE_EXPAND_variables(eapi): + return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi") + def eapi_has_pkg_pretend(eapi): return eapi not in ("0", "1", "2", "3") @@ -101,7 +104,7 @@ def eapi_has_targetroot(eapi): _eapi_attrs = collections.namedtuple('_eapi_attrs', 'dots_in_PN dots_in_use_flags exports_EBUILD_PHASE_FUNC ' - 'feature_flag_test feature_flag_targetroot ' + 'exports_USE_EXPAND_variables feature_flag_test feature_flag_targetroot ' 'hdepend iuse_defaults iuse_effective posixish_locale ' 'repo_deps required_use required_use_at_most_one_of slot_operator slot_deps ' 'src_uri_arrows strong_blocks use_deps use_dep_defaults') @@ -128,6 +131,7 @@ def _get_eapi_attrs(eapi): dots_in_PN = (eapi is None or eapi_allows_dots_in_PN(eapi)), dots_in_use_flags = (eapi is None or eapi_allows_dots_in_use_flags(eapi)), exports_EBUILD_PHASE_FUNC = (eapi is None or eapi_exports_EBUILD_PHASE_FUNC(eapi)), + exports_USE_EXPAND_variables = (eapi is None or eapi_exports_USE_EXPAND_variables(eapi)), feature_flag_test = True, feature_flag_targetroot = (eapi is not None and eapi_has_targetroot(eapi)), hdepend = (eapi is not None and eapi_has_hdepend(eapi)), diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index 5f19996..ee1fadb 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -1279,7 +1279,7 @@ class config(object): def __init__(self, settings, unfiltered_use, use, usemask, iuse_effective, - use_expand_split, use_expand_dict): + use_expand_split, use_expand_dict, eapi_exports_USE_EXPAND_variables): self._settings = settings self._unfiltered_use = unfiltered_use self._use = use @@ -1287,6 +1287,7 @@ class config(object): self._iuse_effective = iuse_effective self._use_expand_split = use_expand_split self._use_expand_dict = use_expand_dict + self._eapi_exports_USE_EXPAND_variables = eapi_exports_USE_EXPAND_variables def __getitem__(self, key): prefix = key.lower() + '_' @@ -1330,7 +1331,7 @@ class config(object): filtered_var_split.append(x) var_split = filtered_var_split - if var_split: + if var_split or self._eapi_exports_USE_EXPAND_variables: value = ' '.join(var_split) else: # Don't export empty USE_EXPAND vars unless the user config @@ -1725,9 +1726,13 @@ class config(object): x in self.get('USE_EXPAND', '').split()) lazy_use_expand = self._lazy_use_expand( self, unfiltered_use, use, self.usemask, - portage_iuse, use_expand_split, self._use_expand_dict) + portage_iuse, use_expand_split, self._use_expand_dict, + eapi_attrs.exports_USE_EXPAND_variables) use_expand_iuses = {} + if eapi_attrs.exports_USE_EXPAND_variables: + for k in use_expand_split: + use_expand_iuses[k] = set() for x in portage_iuse: x_split = x.split('_') if len(x_split) == 1: -- 2.8.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 2/2] ebuild.config: Fix filtering all USE_EXPAND variables in EAPI 5+ 2016-05-20 22:26 ` [gentoo-portage-dev] [PATCH 2/2] ebuild.config: Fix filtering all USE_EXPAND variables in EAPI 5+ Michał Górny @ 2016-05-21 6:48 ` Michał Górny 0 siblings, 0 replies; 7+ messages in thread From: Michał Górny @ 2016-05-21 6:48 UTC (permalink / raw To: gentoo-portage-dev [-- Attachment #1: Type: text/plain, Size: 4252 bytes --] On Sat, 21 May 2016 00:26:40 +0200 Michał Górny <mgorny@gentoo.org> wrote: > Ensure that all USE_EXPAND variables are properly filtered and exported > in EAPI 5 and newer, as required by the PMS. This includes exporting > an empty value if no matching flag is provided in IUSE. > > Bug: https://bugs.gentoo.org/show_bug.cgi?id=582140 > --- > pym/portage/eapi.py | 6 +++++- > pym/portage/package/ebuild/config.py | 11 ++++++++--- > 2 files changed, 13 insertions(+), 4 deletions(-) > > diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py > index 1709026..c4fb374 100644 > --- a/pym/portage/eapi.py > +++ b/pym/portage/eapi.py > @@ -50,6 +50,9 @@ def eapi_exports_EBUILD_PHASE_FUNC(eapi): > def eapi_exports_REPOSITORY(eapi): > return eapi in ("4-python", "5-progress") > > +def eapi_exports_USE_EXPAND_variables(eapi): > + return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi") > + > def eapi_has_pkg_pretend(eapi): > return eapi not in ("0", "1", "2", "3") > > @@ -101,7 +104,7 @@ def eapi_has_targetroot(eapi): > > _eapi_attrs = collections.namedtuple('_eapi_attrs', > 'dots_in_PN dots_in_use_flags exports_EBUILD_PHASE_FUNC ' > - 'feature_flag_test feature_flag_targetroot ' > + 'exports_USE_EXPAND_variables feature_flag_test feature_flag_targetroot ' > 'hdepend iuse_defaults iuse_effective posixish_locale ' > 'repo_deps required_use required_use_at_most_one_of slot_operator slot_deps ' > 'src_uri_arrows strong_blocks use_deps use_dep_defaults') > @@ -128,6 +131,7 @@ def _get_eapi_attrs(eapi): > dots_in_PN = (eapi is None or eapi_allows_dots_in_PN(eapi)), > dots_in_use_flags = (eapi is None or eapi_allows_dots_in_use_flags(eapi)), > exports_EBUILD_PHASE_FUNC = (eapi is None or eapi_exports_EBUILD_PHASE_FUNC(eapi)), > + exports_USE_EXPAND_variables = (eapi is None or eapi_exports_USE_EXPAND_variables(eapi)), > feature_flag_test = True, > feature_flag_targetroot = (eapi is not None and eapi_has_targetroot(eapi)), > hdepend = (eapi is not None and eapi_has_hdepend(eapi)), > diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py > index 5f19996..ee1fadb 100644 > --- a/pym/portage/package/ebuild/config.py > +++ b/pym/portage/package/ebuild/config.py > @@ -1279,7 +1279,7 @@ class config(object): > > def __init__(self, settings, unfiltered_use, > use, usemask, iuse_effective, > - use_expand_split, use_expand_dict): > + use_expand_split, use_expand_dict, eapi_exports_USE_EXPAND_variables): > self._settings = settings > self._unfiltered_use = unfiltered_use > self._use = use > @@ -1287,6 +1287,7 @@ class config(object): > self._iuse_effective = iuse_effective > self._use_expand_split = use_expand_split > self._use_expand_dict = use_expand_dict > + self._eapi_exports_USE_EXPAND_variables = eapi_exports_USE_EXPAND_variables > > def __getitem__(self, key): > prefix = key.lower() + '_' > @@ -1330,7 +1331,7 @@ class config(object): > filtered_var_split.append(x) > var_split = filtered_var_split > > - if var_split: > + if var_split or self._eapi_exports_USE_EXPAND_variables: > value = ' '.join(var_split) > else: > # Don't export empty USE_EXPAND vars unless the user config > @@ -1725,9 +1726,13 @@ class config(object): > x in self.get('USE_EXPAND', '').split()) > lazy_use_expand = self._lazy_use_expand( > self, unfiltered_use, use, self.usemask, > - portage_iuse, use_expand_split, self._use_expand_dict) > + portage_iuse, use_expand_split, self._use_expand_dict, > + eapi_attrs.exports_USE_EXPAND_variables) > > use_expand_iuses = {} > + if eapi_attrs.exports_USE_EXPAND_variables: > + for k in use_expand_split: > + use_expand_iuses[k] = set() > for x in portage_iuse: > x_split = x.split('_') > if len(x_split) == 1: After some thinking, I'll prepare another patch that applies the change to all EAPIs. The behavior for earlier EAPIs is implementation-defined by PMS and having it inconsistent will only confuse users. -- Best regards, Michał Górny <http://dev.gentoo.org/~mgorny/> [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 949 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* [gentoo-portage-dev] [PATCH 1/2] portage.package.ebuild.config: Rename iuse_implicit -> iuse_effective @ 2018-02-04 13:40 Michał Górny 2018-02-05 22:46 ` Michael Lienhardt 0 siblings, 1 reply; 7+ messages in thread From: Michał Górny @ 2018-02-04 13:40 UTC (permalink / raw To: gentoo-portage-dev; +Cc: Michał Górny Rename the iuse_implicit variable used in USE_EXPAND handling to iuse_effective, since that is what is actually passed there. Correct naming makes figuring out what the function does much easier. --- pym/portage/package/ebuild/config.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index 5624e86d3..35cf4f614 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -1307,13 +1307,13 @@ class config(object): """ def __init__(self, settings, unfiltered_use, - use, usemask, iuse_implicit, + use, usemask, iuse_effective, use_expand_split, use_expand_dict): self._settings = settings self._unfiltered_use = unfiltered_use self._use = use self._usemask = usemask - self._iuse_implicit = iuse_implicit + self._iuse_effective = iuse_effective self._use_expand_split = use_expand_split self._use_expand_dict = use_expand_dict @@ -1331,7 +1331,7 @@ class config(object): if has_wildcard: var_split = [ x for x in var_split if x != "*" ] has_iuse = set() - for x in self._iuse_implicit: + for x in self._iuse_effective: if x[:prefix_len] == prefix: has_iuse.add(x[prefix_len:]) if has_wildcard: -- 2.16.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 1/2] portage.package.ebuild.config: Rename iuse_implicit -> iuse_effective 2018-02-04 13:40 [gentoo-portage-dev] [PATCH 1/2] portage.package.ebuild.config: Rename iuse_implicit -> iuse_effective Michał Górny @ 2018-02-05 22:46 ` Michael Lienhardt 2018-02-05 23:05 ` Zac Medico 0 siblings, 1 reply; 7+ messages in thread From: Michael Lienhardt @ 2018-02-05 22:46 UTC (permalink / raw To: gentoo-portage-dev Is the IUSE_IMPLICIT variable in the make.defaults also changed into IUSE_EFFECTIVE? I'm sorry if this question was already discussed/answered somewhere else. Michael Il 04/02/2018 14:40, Michał Górny ha scritto: > Rename the iuse_implicit variable used in USE_EXPAND handling to > iuse_effective, since that is what is actually passed there. Correct > naming makes figuring out what the function does much easier. > --- > pym/portage/package/ebuild/config.py | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py > index 5624e86d3..35cf4f614 100644 > --- a/pym/portage/package/ebuild/config.py > +++ b/pym/portage/package/ebuild/config.py > @@ -1307,13 +1307,13 @@ class config(object): > """ > > def __init__(self, settings, unfiltered_use, > - use, usemask, iuse_implicit, > + use, usemask, iuse_effective, > use_expand_split, use_expand_dict): > self._settings = settings > self._unfiltered_use = unfiltered_use > self._use = use > self._usemask = usemask > - self._iuse_implicit = iuse_implicit > + self._iuse_effective = iuse_effective > self._use_expand_split = use_expand_split > self._use_expand_dict = use_expand_dict > > @@ -1331,7 +1331,7 @@ class config(object): > if has_wildcard: > var_split = [ x for x in var_split if x != "*" ] > has_iuse = set() > - for x in self._iuse_implicit: > + for x in self._iuse_effective: > if x[:prefix_len] == prefix: > has_iuse.add(x[prefix_len:]) > if has_wildcard: > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 1/2] portage.package.ebuild.config: Rename iuse_implicit -> iuse_effective 2018-02-05 22:46 ` Michael Lienhardt @ 2018-02-05 23:05 ` Zac Medico 2018-02-06 8:36 ` Michael Lienhardt 0 siblings, 1 reply; 7+ messages in thread From: Zac Medico @ 2018-02-05 23:05 UTC (permalink / raw To: gentoo-portage-dev, Michael Lienhardt [-- Attachment #1.1: Type: text/plain, Size: 460 bytes --] On 02/05/2018 02:46 PM, Michael Lienhardt wrote: > Is the IUSE_IMPLICIT variable in the make.defaults also changed into > IUSE_EFFECTIVE? > > I'm sorry if this question was already discussed/answered somewhere else. The IUSE_EFFECTIVE variable is generated from IUSE_IMPLICIT and some other variables. It's documented in the "USE and IUSE handling" section here: https://dev.gentoo.org/~ulm/pms/head/pms.html#x1-11900011.1.1 -- Thanks, Zac [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 224 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 1/2] portage.package.ebuild.config: Rename iuse_implicit -> iuse_effective 2018-02-05 23:05 ` Zac Medico @ 2018-02-06 8:36 ` Michael Lienhardt 0 siblings, 0 replies; 7+ messages in thread From: Michael Lienhardt @ 2018-02-06 8:36 UTC (permalink / raw To: Zac Medico, gentoo-portage-dev Many thanks. I should definitively read this document, that is far more precise that anything I have found on the wiki or on devmanual. Il 06/02/2018 00:05, Zac Medico ha scritto: > On 02/05/2018 02:46 PM, Michael Lienhardt wrote: >> Is the IUSE_IMPLICIT variable in the make.defaults also changed into >> IUSE_EFFECTIVE? >> >> I'm sorry if this question was already discussed/answered somewhere else. > > The IUSE_EFFECTIVE variable is generated from IUSE_IMPLICIT and some > other variables. It's documented in the "USE and IUSE handling" section > here: > > https://dev.gentoo.org/~ulm/pms/head/pms.html#x1-11900011.1.1 > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-02-06 8:36 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-05-20 22:26 [gentoo-portage-dev] [PATCH 1/2] portage.package.ebuild.config: Rename iuse_implicit -> iuse_effective Michał Górny 2016-05-20 22:26 ` [gentoo-portage-dev] [PATCH 2/2] ebuild.config: Fix filtering all USE_EXPAND variables in EAPI 5+ Michał Górny 2016-05-21 6:48 ` Michał Górny -- strict thread matches above, loose matches on Subject: below -- 2018-02-04 13:40 [gentoo-portage-dev] [PATCH 1/2] portage.package.ebuild.config: Rename iuse_implicit -> iuse_effective Michał Górny 2018-02-05 22:46 ` Michael Lienhardt 2018-02-05 23:05 ` Zac Medico 2018-02-06 8:36 ` Michael Lienhardt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox