Gentoo Archives: gentoo-user

From: n952162 <n952162@×××.de>
To: gentoo-user@l.g.o
Subject: Re: Aw: Re: Re: [gentoo-user] Updating portage, continued
Date: Wed, 12 Jun 2019 16:34:28
Message-Id: 963aa3f2-2966-efe5-1f8a-763bdad18a89@web.de
In Reply to: Re: Aw: Re: Re: [gentoo-user] Updating portage, continued by Rich Freeman
1 On 06/10/19 22:42, Rich Freeman wrote:
2
3 > On Mon, Jun 10, 2019 at 5:39 PM n952162<n952162@×××.de> wrote:
4 >> On 06/06/19 06:00,n952162@×××.de wrote:
5 >>
6 >> In trying to update portage (before I update my system), I have this:
7 >>
8 >> !!! All ebuilds that could satisfy ">=dev-python/setuptools-34[python_targets_pypy(-)?,pn_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_pypy(-),-pyth-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)]" have been mas
9 >> !!! One of the following masked packages is required to complete your request:
10 >> - dev-python/setuptools-9999::gentoo (masked by: EAPI 7)
11 >> - dev-python/setuptools-41.0.1::gentoo (masked by: EAPI 7)
12 >> - dev-python/setuptools-41.0.0::gentoo (masked by: EAPI 7)
13 >> - dev-python/setuptools-40.9.0::gentoo (masked by: EAPI 7)
14 >> - dev-python/setuptools-40.8.0::gentoo (masked by: EAPI 7)
15 >> - dev-python/setuptools-40.7.3::gentoo (masked by: EAPI 7)
16 >> - dev-python/setuptools-40.6.3::gentoo (masked by: backtracking: slot conflict)
17 >> - dev-python/setuptools-36.7.2::gentoo (masked by: backtracking: slot conflict)
18 >>
19 >> Looking athttps://packages.gentoo.org/packages/dev-python/setuptools shows that the only two versions stable for am64 are 40.6.3 and 36.7.2.
20 >>
21 >> What is backtracking and how can I have a slot conflict if it's the developers who determine what version sits in a slot?
22 > Backtracking refers to how the dependency resolver works - it couldn't
23 > figure out a way to satisfy your requirements. You have a slot
24 > conflict because two different packages that you asked for require two
25 > different versions of setuptools to be installed at the same time in
26 > the same slot, or at least that is what portage interprets what it is
27 > finding.
28
29 The verbose output (attached) says that the package with /"new SLOT
30 installation (side-by-side versions)" /is:
31
32  dev-lang/python-3.6.5:3.6/3.6m
33
34 The version in /var/db/pkg/dev-lang/python-* is:
35
36 /var/db/pkg/dev-lang/python-3.5.4-r1/python-3.5.4-r1.ebuild:SLOT="3.5/3.5m"
37
38 That doesn't look like the same slot...
39
40 How can there be a slot collision?  If the developers say, slot 3 is for
41 a particular version, why should anybody want to push anything else into
42 slot 3?
43
44
45 > I'd need to see more of the output to get a sense of what is
46 > actually going on - posting 10 lines out of what was probably 1000+
47 > lines of output honestly doesn't help anybody to assist you. Yes, the
48 > whole output is tedious but probably contains clues.
49
50 Gladly!  I've attached the output of this command:
51
52
53  sudo emerge --verbose y --verbose-conflicts
54 --verbose-slot-rebuilds --oneshot portage  2>&1 | tee
55 emerge-portage-2.txt
56
57
58 I presume that the flags in front of the dependency list are those given
59 in the --pretend option of emerge(1) ...
60
61
62 >> One might say, I have a package already dependent on setuptools and it's not the right one, but how can it be that two different versions want to go into the same slot?
63 > There are many ways this can happen. Maybe package A wants setuptools
64 > 40.7.3 or greater, and package B wants setuptools 40.6.3 or lesser,
65 > and you asked for both.
66
67
68 But isn't that exactly what slots are supposed to address?  How can
69 there be a conflict?  A limited number of slots?
70
71
72 > Often though it is an issue with not
73 > backtracking enough - if you're doing a huge update often you need to
74 > add --backtrack=100 or rarely even a larger value in order for portage
75 > to find a way to meet the requirements.
76
77 Can I follow the backtracking in this attached output somehow, to see
78 what how backtracking works?
79
80
81 > Sometimes you need to include
82 > --with-bdeps=y because something portage isn't considering in-scope is
83 > pulling in something that conflicts, and it could be resolved by
84 > letting portage update more packages.
85 >
86 >> Backtracking is something to do with dependency checking. I haven't seen any explanation of what goes on in dependency checking and why backtracking is necessary. Can someone point to an explanation?
87 > Basically your config files, like the world file, and the profile
88 > system set, contain a list of stuff you want. Portage wants to give
89 > you want you want. Maybe these files specify 200 packages you're
90 > interested in directly. Each of these might ask for 5 more, and each
91 > of those 5 more, and so on. Portage works backwards through the
92 > dependency tree to generate a list of every requirement of every
93 > package. These can form circular loops, and the tree can get quite
94 > large very quickly. As an optimization I believe portage avoids
95 > traversing the entire thing and only goes back so far - usually it can
96 > find a solution to your requirements without traversing the entire
97 > tree.
98 >
99 >
100
101 I'm trying to understand that ...
102
103   A -> +
104
105        |
106 + -> B ->+
107 | |
108 | + -> C[0]
109 | + -> D
110 |
111 + -> C[1]
112
113
114 Okay, so backtracking is ... when I'm at C[1] and see there's already a C[0] ...
115 Then I go back to B to see if it might be happy with C[1]?

Attachments

File name MIME type
emerge-portage-2.txt text/plain