Gentoo Archives: gentoo-user

From: Ashley Dixon <ash@××××××××××.uk>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] USE="-libglvnd" ignored
Date: Sun, 23 Aug 2020 15:44:06
Message-Id: 20200823154230.otp27tmphzasfvr6@ad-gentoo-main
In Reply to: [gentoo-user] USE="-libglvnd" ignored by Walter Dnes
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

Attachments

File name MIME type
signature.asc application/pgp-signature