Gentoo Archives: gentoo-dev

From: Mike Gilbert <floppym@g.o>
To: Gentoo Dev <gentoo-dev@l.g.o>
Subject: Re: [gentoo-dev] [PATCH] python-single-r1.eclass: don't crash Portage with invalid USEDEP syntax
Date: Wed, 12 Feb 2020 19:03:18
Message-Id: CAJ0EP42gZ36OMbDB9WXv41PRka3Qp9dj39hCWhddEYK5Fb29-Q@mail.gmail.com
In Reply to: Re: [gentoo-dev] [PATCH] python-single-r1.eclass: don't crash Portage with invalid USEDEP syntax by "Michał Górny"
1 On Wed, Feb 12, 2020 at 1:31 PM Michał Górny <mgorny@g.o> wrote:
2 >
3 > On Wed, 2020-02-12 at 13:25 -0500, Mike Gilbert wrote:
4 > > This should still serve the purpose of alerting overlay maintainers
5 > > without making emerge completely unusable in the interim.
6 > >
7 >
8 > I don't understand what's the gain. In both cases emerge won't proceed.
9 > However, with the original syntax the message is clearer:
10
11 A pentoo user reported an actual crash in portage when it was unable
12 to parse the dependency atom. See the backlog in #gentoo-qa for the
13 discussion.
14
15 However, I have been unable to reproduce this crash myself, so I'm
16 going to hold off on merging this patch until the problem can be
17 further diagnosed.
18
19 The portage output is below.
20
21 Calculating dependencies ... ..... done!
22 Traceback (most recent call last):
23 File "/usr/lib64/python3.6/site-packages/portage/dep/__init__.py",
24 line 739, in use_reduce
25 is_valid_flag=is_valid_flag)
26 File "/usr/lib64/python3.6/site-packages/portage/dep/__init__.py",
27 line 1411, in __init__
28 use = _use_dep(use_str[1:-1].split(","), eapi_attrs)
29 File "/usr/lib64/python3.6/site-packages/portage/dep/__init__.py",
30 line 897, in __init__
31 raise InvalidAtom(_("Invalid use dep: '%s'") % (x,))
32 portage.exception.InvalidAtom: Invalid use dep:
33 '%PYTHON_USEDEP-HAS-BEEN-REMOVED%'
34
35 During handling of the above exception, another exception occurred:
36
37 Traceback (most recent call last):
38 File "/usr/lib/python-exec/python3.6/emerge", line 53, in <module>
39 retval = emerge_main()
40 File "/usr/lib64/python3.6/site-packages/_emerge/main.py", line
41 1309, in emerge_main
42 return run_action(emerge_config)
43 File "/usr/lib64/python3.6/site-packages/_emerge/actions.py", line
44 3358, in run_action
45 retval = action_build(emerge_config, spinner=spinner)
46 File "/usr/lib64/python3.6/site-packages/_emerge/actions.py", line
47 357, in action_build
48 settings, trees, myopts, myparams, myaction, myfiles, spinner)
49 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
50 9891, in backtrack_depgraph
51 myaction, myfiles, spinner)
52 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
53 9928, in _backtrack_depgraph
54 success, favorites = mydepgraph.select_files(myfiles)
55 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
56 3990, in select_files
57 return self._select_files(args)
58 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
59 4333, in _select_files
60 return self._resolve(myfavorites)
61 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
62 4484, in _resolve
63 if not self._create_graph():
64 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
65 2722, in _create_graph
66 allow_unsatisfied=allow_unsatisfied):
67 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
68 3480, in _add_pkg_deps
69 allow_unsatisfied):
70 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
71 3496, in _add_pkg_dep_string
72 allow_unsatisfied)
73 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
74 3576, in _wrapped_add_pkg_dep_string
75 pkg, dep_priority, root_config, selected_atoms[pkg]):
76 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
77 3775, in _minimize_children
78 root_config.root, atom, parent=parent)
79 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
80 5775, in _select_pkg_highest_available
81 ret = self._select_pkg_highest_available_imp(root, atom,
82 onlydeps=onlydeps, parent=parent)
83 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
84 6003, in _select_pkg_highest_available_imp
85 root, atom, onlydeps=onlydeps, parent=parent)
86 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
87 6600, in _wrapped_select_pkg_highest_available_imp
88 self._changed_deps(pkg))):
89 File "/usr/lib64/python3.6/site-packages/_emerge/depgraph.py", line
90 2697, in _changed_deps
91 eapi=ebuild.eapi, token_class=Atom)
92 File "/usr/lib64/python3.6/site-packages/portage/dep/__init__.py",
93 line 744, in use_reduce
94 % (e, pos+1), errors=(e,))
95 portage.exception.InvalidDependString: Invalid atom (Invalid use dep:
96 '%PYTHON_USEDEP-HAS-BEEN-REMOVED%'), token 6