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