Gentoo Archives: gentoo-user

From: Kai Krakow <hurikhan77@×××××.com>
To: gentoo-user@l.g.o
Subject: [gentoo-user] Re: useflag hell.
Date: Wed, 02 Mar 2016 19:17:28
Message-Id: 20160302201708.4bec4e27@jupiter.sol.kaishome.de
In Reply to: Re: [gentoo-user] useflag hell. by Alan McKinnon
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.