Gentoo Archives: gentoo-commits

From: Arfrever Frehtes Taifersar Arahesis <arfrever@××××××.org>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/, pym/portage/package/ebuild/, pym/portage/dep/
Date: Tue, 01 Dec 2015 02:46:42
Message-Id: 1448937408.39d81c514c33733209963110d90ae88020ffcf7d.arfrever@gentoo
1 commit: 39d81c514c33733209963110d90ae88020ffcf7d
2 Author: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
3 AuthorDate: Tue Dec 1 02:36:48 2015 +0000
4 Commit: Arfrever Frehtes Taifersar Arahesis <arfrever <AT> apache <DOT> org>
5 CommitDate: Tue Dec 1 02:36:48 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=39d81c51
7
8 portage.package.ebuild.config.config.__getitem__(): Partially drop backward compatibility for nonexistent keys.
9
10 For nonexistent keys:
11 - When called by Portage scripts, raise KeyError.
12 - When called by third-party code, print deprecation warning and continue returning "".
13
14 pym/_emerge/actions.py | 6 +++---
15 pym/portage/dep/dep_check.py | 6 ++++--
16 pym/portage/package/ebuild/config.py | 29 ++++++++++++++++++++++++-----
17 3 files changed, 31 insertions(+), 10 deletions(-)
18
19 diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
20 index 54e99c1..c3b0b98 100644
21 --- a/pym/_emerge/actions.py
22 +++ b/pym/_emerge/actions.py
23 @@ -1580,7 +1580,7 @@ def action_info(settings, trees, myopts, myfiles):
24 chost = settings.get("CHOST")
25
26 append(getportageversion(settings["PORTDIR"], None,
27 - settings.profile_path, settings["CHOST"],
28 + settings.profile_path, chost,
29 trees[settings['EROOT']]["vartree"].dbapi))
30
31 header_width = 65
32 @@ -2810,7 +2810,7 @@ def run_action(emerge_config):
33 adjust_configs(emerge_config.opts, emerge_config.trees)
34 apply_priorities(emerge_config.target_config.settings)
35
36 - for fmt in emerge_config.target_config.settings["PORTAGE_BINPKG_FORMAT"].split():
37 + for fmt in emerge_config.target_config.settings.get("PORTAGE_BINPKG_FORMAT", "").split():
38 if not fmt in portage.const.SUPPORTED_BINPKG_FORMATS:
39 if "--pkg-format" in emerge_config.opts:
40 problematic="--pkg-format"
41 @@ -2827,7 +2827,7 @@ def run_action(emerge_config):
42 emerge_config.target_config.settings["PORTDIR"],
43 None,
44 emerge_config.target_config.settings.profile_path,
45 - emerge_config.target_config.settings["CHOST"],
46 + emerge_config.target_config.settings.get("CHOST"),
47 emerge_config.target_config.trees['vartree'].dbapi) + '\n',
48 noiselevel=-1)
49 return 0
50
51 diff --git a/pym/portage/dep/dep_check.py b/pym/portage/dep/dep_check.py
52 index 69b358c..9af4e65 100644
53 --- a/pym/portage/dep/dep_check.py
54 +++ b/pym/portage/dep/dep_check.py
55 @@ -653,10 +653,12 @@ def dep_check(depstring, mydbapi, mysettings, use="yes", mode=None, myuse=None,
56 # matchall behavior to account for profile use.mask/force. The
57 # ARCH/archlist code here may be redundant, since the profile
58 # really should be handling ARCH masking/forcing itself.
59 + arch = mysettings.get("ARCH")
60 mymasks.update(mysettings.usemask)
61 mymasks.update(mysettings.archlist())
62 - mymasks.discard(mysettings["ARCH"])
63 - useforce.add(mysettings["ARCH"])
64 + if arch:
65 + mymasks.discard(arch)
66 + useforce.add(arch)
67 useforce.update(mysettings.useforce)
68 useforce.difference_update(mymasks)
69
70
71 diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py
72 index 1827043..da9a936 100644
73 --- a/pym/portage/package/ebuild/config.py
74 +++ b/pym/portage/package/ebuild/config.py
75 @@ -1,4 +1,4 @@
76 -# Copyright 2010-2014 Gentoo Foundation
77 +# Copyright 2010-2015 Gentoo Foundation
78 # Distributed under the terms of the GNU General Public License v2
79
80 from __future__ import unicode_literals
81 @@ -15,6 +15,7 @@ import platform
82 import pwd
83 import re
84 import sys
85 +import traceback
86 import warnings
87
88 from _emerge.Package import Package
89 @@ -1257,13 +1258,13 @@ class config(object):
90 use = frozenset(settings['PORTAGE_USE'].split())
91
92 values['ACCEPT_LICENSE'] = settings._license_manager.get_prunned_accept_license( \
93 - settings.mycpv, use, settings['LICENSE'], settings['SLOT'], settings.get('PORTAGE_REPO_NAME'))
94 + settings.mycpv, use, settings.get('LICENSE', ''), settings.get('SLOT'), settings.get('PORTAGE_REPO_NAME'))
95 values['PORTAGE_RESTRICT'] = self._restrict(use, settings)
96 return values
97
98 def _restrict(self, use, settings):
99 try:
100 - restrict = set(use_reduce(settings['RESTRICT'], uselist=use, flat=True))
101 + restrict = set(use_reduce(settings.get('RESTRICT', ''), uselist=use, flat=True))
102 except InvalidDependString:
103 restrict = set()
104 return ' '.join(sorted(restrict))
105 @@ -2567,7 +2568,23 @@ class config(object):
106 try:
107 return self._getitem(key)
108 except KeyError:
109 - return '' # for backward compat, don't raise KeyError
110 + if portage._internal_caller:
111 + stack = traceback.format_stack()[:-1] + traceback.format_exception(*sys.exc_info())[1:]
112 + try:
113 + # Ensure that output is written to terminal.
114 + with open("/dev/tty", "w") as f:
115 + f.write("=" * 96 + "\n")
116 + f.write("=" * 8 + " Traceback for invalid call to portage.package.ebuild.config.config.__getitem__ " + "=" * 8 + "\n")
117 + f.writelines(stack)
118 + f.write("=" * 96 + "\n")
119 + except:
120 + pass
121 + raise
122 + else:
123 + warnings.warn(_("Passing nonexistent key %r to %s is deprecated. Use %s instead.") %
124 + (key, "portage.package.ebuild.config.config.__getitem__",
125 + "portage.package.ebuild.config.config.get"), DeprecationWarning, stacklevel=2)
126 + return ""
127
128 def _getitem(self, mykey):
129
130 @@ -2697,7 +2714,9 @@ class config(object):
131 for x in self:
132 if x in environ_filter:
133 continue
134 - myvalue = self[x]
135 + myvalue = self.get(x)
136 + if myvalue is None:
137 + continue
138 if not isinstance(myvalue, basestring):
139 writemsg(_("!!! Non-string value in config: %s=%s\n") % \
140 (x, myvalue), noiselevel=-1)