Re: [gentoo-user] USE="-libglvnd" ignored
On Saturday, August 22, 2020 1:04:33 PM CEST Walter Dnes wrote: > I just updated my secondary machine. No mention of "libglvnd" in > package.use... > > [i3][root][~] grep libglvnd /etc/portage/package.use/* > > "Disabled" in make.conf... > > [i3][root][~] grep libglvnd /etc/portage/make.conf > USE="X apng fmpeg introspection jpeg opengl openmp png szip truetype x264 > x265 xorg threads vala -acl -arp -arping -berkdb -bindist -bles -caps > -chatzilla -cracklib -crypt -elogind -filecaps -gallium -gdbm > -gmp-autoupdate -graphite -gstreamer -iconv -ipc -iptables -ipv6 -jemalloc3 > -libav -libglvnd -llvm -manpager -nls -pam -pch -roaming -sendmail -spell > -tcpd -udev -udisks -unicode -upower -xinerama" > > 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] > >>> No packages selected for removal by depclean > > Packages installed: 583 > Packages in world:80 > Packages in system: 43 > Required packages:583 > Number to remove: 0 > > If it's really a hard dependency, then why pretend in the ebuilds that > it's optional? > > > > [i3][root][~] grep libglvnd /usr/portage/media-libs/mesa/mesa-20.0.8.ebuild > +classic d3d9 debug +dri3 +egl +gallium +gbm gles1 +gles2 +libglvnd > +llvm libglvnd? ( > > >=media-libs/libglvnd-1.2.0-r1[X?,${MULTILIB_USEDEP}] > > !libglvnd? ( > libglvnd? ( usr/lib/libGLX_mesa.so.0.0.0 ) > $(meson_use libglvnd glvnd) > if ! use libglvnd; then > > > > [i3][root][~] grep libglvnd > /usr/portage/x11-base/xorg-server/xorg-server-1.20.8-r1.ebuild > IUSE="${IUSE_SERVERS} debug +elogind ipv6 libressl +libglvnd minimal > selinux suid systemd +udev unwind xcsecurity" CDEPEND="libglvnd? ( > media-libs/libglvnd[X] > !!x11-drivers/nvidia-drivers[-libglvnd(-)] > !libglvnd? ( >=app-eselect/eselect-opengl-1.3.0 ) > if ! use libglvnd; then > > "libglvnd" is in "use.force": $ cat //profiles/base/use.force # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Matt Turner (2020-08-11) # Force USE=libglvnd in order to mask app-eselect/eselect-opengl for removal. # This USE flag will be removed completely in the near future. Bug #728286 libglvnd # Mike Gilbert (2019-07-20) # Disabling this requires a migration to be performed. split-usr # Force the GNU/Linux ELIBC, KERNEL, and USERLAND # flags that apply to the majority of profiles. elibc_glibc kernel_linux userland_GNU == For the rationale behind prefering libglvnd over the eselect-opengl hack (which has caused me more problems than it solved, even on single-GPU systems), please see Ashley Dixon's reply. -- Joost
Re: [gentoo-user] USE="-libglvnd" ignored
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
[gentoo-user] USE="-libglvnd" ignored
I just updated my secondary machine. No mention of "libglvnd" in package.use... [i3][root][~] grep libglvnd /etc/portage/package.use/* "Disabled" in make.conf... [i3][root][~] grep libglvnd /etc/portage/make.conf USE="X apng fmpeg introspection jpeg opengl openmp png szip truetype x264 x265 xorg threads vala -acl -arp -arping -berkdb -bindist -bles -caps -chatzilla -cracklib -crypt -elogind -filecaps -gallium -gdbm -gmp-autoupdate -graphite -gstreamer -iconv -ipc -iptables -ipv6 -jemalloc3 -libav -libglvnd -llvm -manpager -nls -pam -pch -roaming -sendmail -spell -tcpd -udev -udisks -unicode -upower -xinerama" 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] >>> No packages selected for removal by depclean Packages installed: 583 Packages in world:80 Packages in system: 43 Required packages:583 Number to remove: 0 If it's really a hard dependency, then why pretend in the ebuilds that it's optional? [i3][root][~] grep libglvnd /usr/portage/media-libs/mesa/mesa-20.0.8.ebuild +classic d3d9 debug +dri3 +egl +gallium +gbm gles1 +gles2 +libglvnd +llvm libglvnd? ( >=media-libs/libglvnd-1.2.0-r1[X?,${MULTILIB_USEDEP}] !libglvnd? ( libglvnd? ( usr/lib/libGLX_mesa.so.0.0.0 ) $(meson_use libglvnd glvnd) if ! use libglvnd; then [i3][root][~] grep libglvnd /usr/portage/x11-base/xorg-server/xorg-server-1.20.8-r1.ebuild IUSE="${IUSE_SERVERS} debug +elogind ipv6 libressl +libglvnd minimal selinux suid systemd +udev unwind xcsecurity" CDEPEND="libglvnd? ( media-libs/libglvnd[X] !!x11-drivers/nvidia-drivers[-libglvnd(-)] !libglvnd? ( >=app-eselect/eselect-opengl-1.3.0 ) if ! use libglvnd; then -- Walter Dnes I don't run "desktop environments"; I run useful applications