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 (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