1 |
On Sat, Aug 22, 2020 at 07:04:33AM -0400, Walter Dnes wrote: |
2 |
> But libglvnd is still pulled in as a hard dependency... |
3 |
> |
4 |
> [i3][root][~] emerge -pv --depclean media-libs/libglvnd |
5 |
> |
6 |
> Calculating dependencies... done! |
7 |
> media-libs/libglvnd-1.3.2 pulled in by: |
8 |
> media-libs/mesa-20.0.8 requires >=media-libs/libglvnd-1.2.0-r1[X,abi_x86_64(-)] |
9 |
> x11-base/xorg-server-1.20.8-r1 requires media-libs/libglvnd[X] |
10 |
> |
11 |
> If it's really a hard dependency, then why pretend in the ebuilds that |
12 |
> it's optional? |
13 |
|
14 |
You can't "pretend something in the ebuilds"; they are the literal instructions |
15 |
for the package manager. Consider the following line: |
16 |
|
17 |
> media-libs/mesa-20.0.8 requires >=media-libs/libglvnd-1.2.0-r1[X,abi_x86_64(-)] |
18 |
|
19 |
Having a look at the ebuild for Mesa 20.0.8, we see the following in the RDEPEND |
20 |
string: |
21 |
|
22 |
libglvnd? ( |
23 |
>=media-libs/libglvnd-1.2.0-r1[X?,${MULTILIB_USEDEP}] |
24 |
!app-eselect/eselect-opengl |
25 |
) |
26 |
!libglvnd? ( |
27 |
>=app-eselect/eselect-opengl-1.3.0 |
28 |
) |
29 |
|
30 |
"If `libglvnd` is set, require media-libs/libglvnd; if `X` is enabled for Mesa, |
31 |
require `X` on libglvnd; append the flags set in MULTILIB_USEDEP; and block |
32 |
eselect-opengl. Otherwise, mandate eselect-opengl.". |
33 |
|
34 |
Thus, to install Mesa without libglvnd, you just need eselect-opengl version |
35 |
1.3.0 or greater. Now consider the second package: |
36 |
|
37 |
> x11-base/xorg-server-1.20.8-r1 requires media-libs/libglvnd[X] |
38 |
|
39 |
Looking in the CDEPEND string of the relevant ebuild: |
40 |
|
41 |
libglvnd? ( |
42 |
media-libs/libglvnd[X] |
43 |
!app-eselect/eselect-opengl |
44 |
!!x11-drivers/nvidia-drivers[-libglvnd(-)] |
45 |
) |
46 |
!libglvnd? ( >=app-eselect/eselect-opengl-1.3.0 ) |
47 |
|
48 |
Basically the same situation, except we have a hard blocker on the NVidia |
49 |
drivers without the `libglvnd` flag set (for obvious reasons). (Since 2017, |
50 |
Portage cannot automatically resolve hard blocks [1].) |
51 |
|
52 |
== But wait, there's more. == |
53 |
|
54 |
So yes, currently, you _could_ run X and Mesa without libglvnd. However, you |
55 |
probably shouldn't, because of the following entry in package.mask made a few |
56 |
weeks ago [2, 3]: |
57 |
|
58 |
# Matt Turner <mattst88@g.o> (2020-08-11) |
59 |
# Replaced by media-libs/libglvnd. |
60 |
# Masked for removal in 30 days. Bug #728286 |
61 |
app-eselect/eselect-opengl |
62 |
|
63 |
libglvnd has now obsoleted eselect-opengl, so you really should consider |
64 |
switching as soon as possible, before eselect gets completely purged from the |
65 |
tree. There is some argument about this (see the comments on [3]), but it is |
66 |
probably a step in the right direction to create a unified interface for |
67 |
graphics drivers and hardware vendors [4]. The eselect "solution" for OpenGL |
68 |
implementations has always been quite messy and caused a lot of issues, so I do |
69 |
welcome this change [5]. |
70 |
|
71 |
Hope this helps, |
72 |
Ashley. |
73 |
|
74 |
[1] https://bugs.gentoo.org/250286 |
75 |
[2] https://gitweb.gentoo.org/repo/gentoo.git/tree/profiles/package.mask#n349 |
76 |
[3] https://bugs.gentoo.org/728286 |
77 |
[4] https://github.com/NVIDIA/libglvnd/blob/master/README.md |
78 |
[5] https://bugs.gentoo.org/buglist.cgi?quicksearch=app-eselect%2Feselect-opengl |
79 |
|
80 |
-- |
81 |
|
82 |
Ashley Dixon |
83 |
suugaku.co.uk |
84 |
|
85 |
2A9A 4117 |
86 |
DA96 D18A |
87 |
8A7B B0D2 |
88 |
A30E BF25 |
89 |
F290 A8AA |