On Sat, Aug 22, 2020 at 07:04:33AM -0400, Walter Dnes wrote: > But libglvnd is still pulled in as a hard dependency... > > [i3][root][~] emerge -pv --depclean media-libs/libglvnd > > Calculating dependencies... done! > media-libs/libglvnd-1.3.2 pulled in by: > media-libs/mesa-20.0.8 requires > >=media-libs/libglvnd-1.2.0-r1[X,abi_x86_64(-)] > x11-base/xorg-server-1.20.8-r1 requires media-libs/libglvnd[X] > > If it's really a hard dependency, then why pretend in the ebuilds that > it's optional?
You can't "pretend something in the ebuilds"; they are the literal instructions for the package manager. Consider the following line: > media-libs/mesa-20.0.8 requires > >=media-libs/libglvnd-1.2.0-r1[X,abi_x86_64(-)] Having a look at the ebuild for Mesa 20.0.8, we see the following in the RDEPEND string: libglvnd? ( >=media-libs/libglvnd-1.2.0-r1[X?,${MULTILIB_USEDEP}] !app-eselect/eselect-opengl ) !libglvnd? ( >=app-eselect/eselect-opengl-1.3.0 ) "If `libglvnd` is set, require media-libs/libglvnd; if `X` is enabled for Mesa, require `X` on libglvnd; append the flags set in MULTILIB_USEDEP; and block eselect-opengl. Otherwise, mandate eselect-opengl.". Thus, to install Mesa without libglvnd, you just need eselect-opengl version 1.3.0 or greater. Now consider the second package: > x11-base/xorg-server-1.20.8-r1 requires media-libs/libglvnd[X] Looking in the CDEPEND string of the relevant ebuild: libglvnd? ( media-libs/libglvnd[X] !app-eselect/eselect-opengl !!x11-drivers/nvidia-drivers[-libglvnd(-)] ) !libglvnd? ( >=app-eselect/eselect-opengl-1.3.0 ) Basically the same situation, except we have a hard blocker on the NVidia drivers without the `libglvnd` flag set (for obvious reasons). (Since 2017, Portage cannot automatically resolve hard blocks [1].) == But wait, there's more. == So yes, currently, you _could_ run X and Mesa without libglvnd. However, you probably shouldn't, because of the following entry in package.mask made a few weeks ago [2, 3]: # Matt Turner <matts...@gentoo.org> (2020-08-11) # Replaced by media-libs/libglvnd. # Masked for removal in 30 days. Bug #728286 app-eselect/eselect-opengl libglvnd has now obsoleted eselect-opengl, so you really should consider switching as soon as possible, before eselect gets completely purged from the tree. There is some argument about this (see the comments on [3]), but it is probably a step in the right direction to create a unified interface for graphics drivers and hardware vendors [4]. The eselect "solution" for OpenGL implementations has always been quite messy and caused a lot of issues, so I do welcome this change [5]. Hope this helps, Ashley. [1] https://bugs.gentoo.org/250286 [2] https://gitweb.gentoo.org/repo/gentoo.git/tree/profiles/package.mask#n349 [3] https://bugs.gentoo.org/728286 [4] https://github.com/NVIDIA/libglvnd/blob/master/README.md [5] https://bugs.gentoo.org/buglist.cgi?quicksearch=app-eselect%2Feselect-opengl -- Ashley Dixon suugaku.co.uk 2A9A 4117 DA96 D18A 8A7B B0D2 A30E BF25 F290 A8AA
signature.asc
Description: PGP signature