1 |
On 28/02/2016 20:14, Alan Grimes wrote: |
2 |
> I've been running number theory code for a few weeks, so haven't been |
3 |
> updating my machine too often... |
4 |
> |
5 |
> I for the last day or so I'm in a run my "pretendupdate" script, look at |
6 |
> the results, decide whether to run ufed or bleep with package.use.... |
7 |
> run the pretendupdate script again, do something while it computes, come |
8 |
> back to it hours later, and repeat the cycle... This is really getting |
9 |
> silly and I'm starting to suspect that I'm stuck in useflag hell and |
10 |
> there isn't a solution to this. |
11 |
|
12 |
|
13 |
There's always a solution, and they are seldom hard to solve. However, |
14 |
portage doesn't exactly make it easy for you with the output. Mere |
15 |
information is often obfuscated and looks like stuff you must fix, |
16 |
whereas the real nuggets can be hidden in the noise. |
17 |
|
18 |
Often running without -v can help considerably. |
19 |
|
20 |
So, here goes, comments inline |
21 |
> |
22 |
> |
23 |
> |
24 |
> |
25 |
> tortoise ~ # ./pretendupdate |
26 |
> |
27 |
> These are the packages that would be merged, in order: |
28 |
> |
29 |
> Calculating dependencies... done! |
30 |
> |
31 |
> !!! Multiple package instances within a single package slot have been pulled |
32 |
> !!! into the dependency graph, resulting in a slot conflict: |
33 |
> |
34 |
> dev-libs/icu:0 |
35 |
> |
36 |
> (dev-libs/icu-56.1:0/56::gentoo, ebuild scheduled for merge) pulled in by |
37 |
> (no parents that aren't satisfied by other packages in this slot) |
38 |
> |
39 |
> (dev-libs/icu-55.1:0/55::gentoo, installed) pulled in by |
40 |
> dev-libs/icu:0/55=[abi_x86_32(-),abi_x86_64(-)] required by |
41 |
> (dev-qt/qtcore-4.8.7-r1:4/4::gentoo, installed) |
42 |
> |
43 |
> ^^^^^^ |
44 |
|
45 |
Despite what it looks like all this is mere information. |
46 |
Two separate things result in different version of Qt being pulled into |
47 |
the problem solution. And it's exactly the form you'd expect. |
48 |
|
49 |
The first chunk is really saying that icu-56.1 is the most recent |
50 |
version and all other things being equal, that's the one portage would |
51 |
install. The second chunk is saying that qtcore-4.8.7-r1 requires |
52 |
icu-55.1 (not the most recent), so portage spews forth heaps of junk to |
53 |
helpfully let you not figure it out. |
54 |
|
55 |
What portage really should say is more like: |
56 |
|
57 |
Most recent version of icu (icu-56.1) not installed due to these |
58 |
requirements: |
59 |
qtcore-4.8.7-r1 requires icu-55.1 |
60 |
|
61 |
Ignore the multiple OMG! bangs before all of the above output |
62 |
|
63 |
|
64 |
> |
65 |
> |
66 |
> |
67 |
> It may be possible to solve this problem by using package.mask to |
68 |
> prevent one of those packages from being selected. However, it is also |
69 |
> possible that conflicting dependencies exist such that they are |
70 |
> impossible to satisfy simultaneously. If such a conflict exists in |
71 |
> the dependencies of two different packages, then those packages can |
72 |
> not be installed simultaneously. |
73 |
> |
74 |
> For more information, see MASKED PACKAGES section in the emerge man |
75 |
> page or refer to the Gentoo Handbook. |
76 |
> |
77 |
> |
78 |
> !!! The ebuild selected to satisfy |
79 |
> ">=media-libs/mlt-0.9.8-r1[ffmpeg,kdenlive,melt,qt5,sdl,xml]" has unmet |
80 |
> requirements. |
81 |
|
82 |
This is the expression portage needs to install based on dependencies, |
83 |
most recent version, maskings, and your USE flags. It's informational. |
84 |
|
85 |
> - media-libs/mlt-0.9.8-r2::gentoo USE="ffmpeg fftw gtk kde kdenlive lua |
86 |
> melt opengl python qt5 sdl xine xml -compressed-lumas -debug -frei0r |
87 |
> -jack -libav -libsamplerate -qt4 -rtaudio (-ruby) -vdpau" ABI_X86="64" |
88 |
> CPU_FLAGS_X86="mmx sse sse2" PYTHON_TARGETS="python2_7" |
89 |
> |
90 |
> The following REQUIRED_USE flag constraints are unsatisfied: |
91 |
> kde? ( qt4 ) |
92 |
|
93 |
This is the actual problem, According to the ebuild, if you set |
94 |
USE="kde", then you also need USE="qt4". Your USE has qt5 enabled, and |
95 |
that's the problem. |
96 |
|
97 |
Presumably, mtl does not yet support KDE with Qt5 |
98 |
> |
99 |
> The above constraints are a subset of the following complete expression: |
100 |
> python? ( python_targets_python2_7 ) qt5? ( !qt4 ) kde? ( qt4 ) |
101 |
|
102 |
And this is the helpful gigantic USE expression, all of which must be |
103 |
satisfied to install mlt. The bit above this shows just the part that is |
104 |
problematic, so this is also informational. Note |
105 |
> |
106 |
> (dependency required by "kde-apps/kdenlive-15.12.1::gentoo" [ebuild]) |
107 |
> (dependency required by "kde-apps/kdemultimedia-meta-15.12.1-r1::gentoo" |
108 |
> [ebuild]) |
109 |
> (dependency required by "kde-apps/kde-apps-meta-15.08.3-r3::gentoo" |
110 |
> [ebuild]) |
111 |
> (dependency required by "kde-apps/kde-meta-15.08.3::gentoo" [ebuild]) |
112 |
> (dependency required by "@selected" [set]) |
113 |
> (dependency required by "@world" [argument]) |
114 |
|
115 |
And the is a part of the full dep tree that leads to mlt being included |
116 |
> tortoise ~ # |
117 |
> |
118 |
> |
119 |
> ###################### |
120 |
> |
121 |
> |
122 |
> The attached files are whatever is left after --- six years of resolving |
123 |
> similar issues on this same install... |
124 |
|
125 |
|
126 |
What you need to do now is set one of the following combinations in |
127 |
package.use for mlt: |
128 |
|
129 |
USE=-kde qt4 -qt5 |
130 |
USE=kde qt4 -qt5 |
131 |
|
132 |
On a plasma system like you have this will probably cause similar issues |
133 |
for other packages, so you must iteratively solve those as well till no |
134 |
more inconsistencies remain. |
135 |
|
136 |
Portage does an atrocious job of presenting it's output to you, but |
137 |
essentially it's a problem in graph theory and detecting mutually |
138 |
incompatible data. |
139 |
|
140 |
|
141 |
-- |
142 |
Alan McKinnon |
143 |
alan.mckinnon@×××××.com |