Gentoo Archives: gentoo-user

From: Alan McKinnon <alan.mckinnon@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] useflag hell.
Date: Sun, 28 Feb 2016 19:04:10
Message-Id: 56D3441C.2060909@gmail.com
In Reply to: [gentoo-user] useflag hell. by Alan Grimes
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

Replies

Subject Author
Re: [gentoo-user] useflag hell. Alan Grimes <ALONZOTG@×××××××.net>
[gentoo-user] Re: useflag hell. Kai Krakow <hurikhan77@×××××.com>