Bug#875683: nvidia-graphics-drivers: libGL.so.1 missing with libglvnd libs

Luca Boccassi luca.boccassi at gmail.com
Thu Sep 14 23:14:59 UTC 2017


On Wed, 2017-09-13 at 23:42 +0200, Andreas Beckmann wrote:
> On 2017-09-13 15:47, Andreas Beckmann wrote:
> > On 2017-09-12 22:01, Luca Boccassi wrote:
> > > I built and installed, it pulled in libglvnd0 (:i386), but then
> > > libGL.so.1 is gone from /usr/lib/(32|64 bit subdirs) so most
> > > things
> > > fail to run, including Gnome.
> 
> Are both libGL.so.1 missing or only one of them?

They were both missing.

> Did you manage to mix libgl1-nvidia-glvnd-glx:arch1 with
> libgl1-nvidia-glx:arch2 ?

Nope, libgl1-nvidia-glvnd-glx was installed for both architectures.
It was a straight apt dist-upgrade with locally built packages, without
doing any manual intervention, this is the apt log:

Install: libglvnd0:amd64 (0.2.999+git20170802-4, automatic),
libglvnd0:i386 (0.2.999+git20170802-4, automatic)
Upgrade: libglx0-glvnd-nvidia:amd64 (375.82-1~deb9u1, 375.82-3.1),
libglx0-glvnd-nvidia:i386 (375.82-1~deb9u1, 375.82-3.1), libgles-
nvidia1:amd64 (375.82-1~deb9u1, 375.82-3.1), libgles-nvidia2:amd64
(375.82-1~deb9u1, 375.82-3.1), libnvidia-ml1:amd64 (375.82-1~deb9u1,
375.82-3.1), nvidia-egl-icd:amd64 (375.82-1~deb9u1, 375.82-3.1),
nvidia-egl-icd:i386 (375.82-1~deb9u1, 375.82-3.1), nvidia-driver:amd64
(375.82-1~deb9u1, 375.82-3.1), nvidia-vdpau-driver:amd64 (375.82-
1~deb9u1, 375.82-3.1), libgl1-nvidia-glvnd-glx:amd64 (375.82-1~deb9u1,
375.82-3.1), libgl1-nvidia-glvnd-glx:i386 (375.82-1~deb9u1, 375.82-
3.1), libglx-nvidia0:amd64 (375.82-1~deb9u1, 375.82-3.1), libglx-
nvidia0:i386 (375.82-1~deb9u1, 375.82-3.1), libczmq-dev:amd64
(4.0.2+git20170911-0, 4.0.2+git20170912-0), nvidia-kernel-dkms:amd64
(375.82-1~deb9u1, 375.82-3.1), libegl-nvidia0:amd64 (375.82-1~deb9u1,
375.82-3.1), libegl-nvidia0:i386 (375.82-1~deb9u1, 375.82-3.1), nvidia-
egl-common:amd64 (375.82-1~deb9u1, 375.82-3.1), libnvidia-cfg1:amd64
(375.82-1~deb9u1, 375.82-3.1), libnvidia-cfg1:i386 (375.82-1~deb9u1,
375.82-3.1), nvidia-legacy-check:amd64 (375.82-1~deb9u1, 375.82-3.1),
libczmq4:amd64 (4.0.2+git20170911-0, 4.0.2+git20170912-0), nvidia-
kernel-support:amd64 (375.82-1~deb9u1, 375.82-3.1), nvidia-driver-
libs:amd64 (375.82-1~deb9u1, 375.82-3.1), nvidia-driver-bin:amd64
(375.82-1~deb9u1, 375.82-3.1), xserver-xorg-video-nvidia:amd64 (375.82-
1~deb9u1, 375.82-3.1), libopengl0-glvnd-nvidia:amd64 (375.82-1~deb9u1,
375.82-3.1), libopengl0-glvnd-nvidia:i386 (375.82-1~deb9u1, 375.82-
3.1), libnvidia-glcore:amd64 (375.82-1~deb9u1, 375.82-3.1), libnvidia-
glcore:i386 (375.82-1~deb9u1, 375.82-3.1), libegl1-glvnd-nvidia:amd64
(375.82-1~deb9u1, 375.82-3.1), libegl1-glvnd-nvidia:i386 (375.82-
1~deb9u1, 375.82-3.1), libnvidia-eglcore:amd64 (375.82-1~deb9u1,
375.82-3.1), libnvidia-eglcore:i386 (375.82-1~deb9u1, 375.82-3.1),
nvidia-alternative:amd64 (375.82-1~deb9u1, 375.82-3.1)
Remove: libgles-nvidia1:i386 (375.82-1~deb9u1), libgles-nvidia2:i386
(375.82-1~deb9u1), libgles1-glvnd-nvidia:amd64 (375.82-1~deb9u1),
libgles1-glvnd-nvidia:i386 (375.82-1~deb9u1), libgldispatch0-
nvidia:amd64 (375.82-1~deb9u1), libgldispatch0-nvidia:i386 (375.82-
1~deb9u1), libgl1-glvnd-nvidia-glx:amd64 (375.82-1~deb9u1), libgl1-
glvnd-nvidia-glx:i386 (375.82-1~deb9u1), libgles2-glvnd-nvidia:amd64
(375.82-1~deb9u1), libgles2-glvnd-nvidia:i386 (375.82-1~deb9u1)

> I think I have a reproducer for a minimal sid chroot:
> 
> # dpkg --add-architecture i386
> # apt-get update
> # apt-get install libgl1:amd64
> # apt-get install libgl1-nvidia-glvnd-glx:amd64
> # find /usr/lib -name libGL.so.1
> /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1
> /usr/lib/x86_64-linux-gnu/libGL.so.1
> # apt-get install libgl1-nvidia-glx:i386
> # find /usr/lib -name libGL.so.1
> /usr/lib/i386-linux-gnu/libGL.so.1
> /usr/lib/i386-linux-gnu/nvidia/libGL.so.1
> /usr/lib/i386-linux-gnu/nvidia/current/libGL.so.1
> /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1
> 
> Should be fixed in r7480.
> 
> Another one: if you install libgl1:i386 libgl1:amd64
> libgl1-nvidia-glx:amd64, you'll miss the i386 libGL.so.1
> (It should work if you install libgl1-nvidia-glvnd-glx:amd64 instead)
> 
> Not sure how to handle that one, though ... but that's not different
> from behavior in jessie/stretch now:
> 
> apt-get install libgl1-nvidia-glx:amd64 libgl1-mesa-glx:amd64
> libgl1-mesa-glx:i386
> 
> 
> Andreas

Just built and installed, but the same result happens after a simple
dist-upgrade:

$ ls /usr/lib/x86_64-linux-gnu/libGL.so.1
ls: cannot access '/usr/lib/x86_64-linux-gnu/libGL.so.1': No such file or directory
$ ls /usr/lib/i386-linux-gnu/libGL.so.1
ls: cannot access '/usr/lib/i386-linux-gnu/libGL.so.1': No such file or directory

$ dpkg -l | grep libgl1
ii  libgl1-mesa-dev:amd64                         13.0.6-1+b2                                             amd64        free implementation of the OpenGL API -- GLX development files
ii  libgl1-mesa-dri:amd64                         13.0.6-1+b2                                             amd64        free implementation of the OpenGL API -- DRI modules
ii  libgl1-mesa-dri:i386                          13.0.6-1+b2                                             i386         free implementation of the OpenGL API -- DRI modules
ii  libgl1-mesa-glx:amd64                         13.0.6-1+b2                                             amd64        free implementation of the OpenGL API -- GLX runtime
ii  libgl1-mesa-glx:i386                          13.0.6-1+b2                                             i386         free implementation of the OpenGL API -- GLX runtime
ii  libgl1-nvidia-glvnd-glx:amd64                 375.82-3.1                                              amd64        NVIDIA binary OpenGL/GLX library (GLVND variant)
ii  libgl1-nvidia-glvnd-glx:i386                  375.82-3.1                                              i386         NVIDIA binary OpenGL/GLX library (GLVND variant)

libgl1-nvidia-glvnd-glx is the metapackage, and libgl1-glvnd-nvidia-glx 
that ships libGL.so.1, and it's not installed.

The metapackage depends on:

Depends: libgl1 | libgl1-glvnd-nvidia-glx, libglx-nvidia0 (= 375.82-
3.1)

Given libglx-nvidia0 is already installed (it ships libGLX_nvidia),
libgl1-glvnd-nvidia-glx is not pulled in I guess? Nothing else depends
on it.

Trying to install them manually though makes apt results in an attempt
to remove gnome:

$ sudo apt install libgl1-glvnd-nvidia-glx libgl1-glvnd-nvidia-glx:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apg cheese-common empathy-common gir1.2-gfbgraph-0.2 gnome-control-center-data gthumb-data
  libclutter-1.0-common libcogl-common libglapi-mesa:i386 libgnome-autoar-gtk-0-0 libpst4
  libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxshmfence1:i386
  libxss1:i386 qt5-qmake qtbase5-dev-tools totem-common
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  caribou caribou-antler cheese empathy evolution evolution-plugins gir1.2-champlain-0.12
  gir1.2-clutter-1.0 gir1.2-clutter-gst-3.0 gir1.2-cogl-1.0 gir1.2-coglpango-1.0
  gir1.2-gtkchamplain-0.12 gir1.2-gtkclutter-1.0 gir1.2-totem-1.0 gnome gnome-contacts
  gnome-control-center gnome-core gnome-games gnome-maps gnome-nibbles gnome-shell-extension-weather
  gnome-shell-extensions gnome-sushi gstreamer1.0-clutter-3.0 gthumb java-package libchamplain-0.12-0
  libchamplain-gtk-0.12-0 libcheese-gtk25 libcheese8 libclutter-1.0-0 libclutter-gst-3.0-0
  libclutter-gtk-1.0-0 libclutter-imcontext-0.1-0 libclutter-imcontext-0.1-bin
  libcluttergesture-0.0.2-0 libcogl-pango20 libcogl-path20 libcogl20 libevolution libgl1-mesa-dev
  libgl1-mesa-glx libgl1-mesa-glx:i386 libglu1-mesa-dev libqt4-opengl-dev libqt5opengl5-dev libtotem0
  lightsoff qtbase5-dev quadrapassel steam:i386 swell-foop task-gnome-desktop totem totem-plugins
The following NEW packages will be installed:
  libgl1-glvnd-nvidia-glx libgl1-glvnd-nvidia-glx:i386
0 upgraded, 2 newly installed, 56 to remove and 0 not upgraded


This is all on Stretch with locally built packages in a local repo.

Is it because libgl1-glvnd-nvidia-glx declares a conflict with libgl1,
which libgl1-mesa-glx provides perhaps?

Kind regards,
Luca Boccassi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/pkg-nvidia-devel/attachments/20170915/f113e407/attachment.sig>


More information about the pkg-nvidia-devel mailing list