Re: [gentoo-user] USE="-libglvnd" ignored

2020-08-25 Thread J. Roeleveld
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

2020-08-23 Thread Ashley Dixon
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

2020-08-22 Thread Walter Dnes
  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