On Fri, 11 Jan 2019 at 14:55:00 +0000, George B. wrote:
> I installed steam package (on amd64) and it automatically brought in a
> bunch of i386 libs, but [not] enough as the app did not start due to missing
> libGL.so.1 library file.

Which Nvidia proprietary driver packages did you have installed?
(You can use "dpkg-query -W | grep -E 'libgl1|nvidia'" to get a list of
relevant packages, and then use /var/log/apt/history.log to see which
ones you only installed while solving this)

What is the exact error message you got?

> I had to manually install libgl1-nvidia-glvnd-glx:386 to get it to work
> (the amd64 version of the package was already installed).

The problem we have here is:

If we don't add a dependency on Nvidia proprietary drivers, then people
in your situation will sometimes end up with only the amd64 Nvidia driver
installed, but not the i386 Nvidia driver. You do have *an* i386 OpenGL
implementation (the i386 OpenGL implementation from Mesa is in steam's
dependencies), but it's the wrong one for your hardware (and installing
the amd64 version of the Nvidia proprietary driver disables the Mesa
drivers), so it won't work.

However, if we add a dependency on Nvidia proprietary drivers, then people
whose hardware doesn't actually use those drivers will accidentally
install them when they install Steam. Apart from the Nvidia driver
being proprietary code some of which runs as root, the mechanisms used
to choose between the Nvidia and Mesa drivers are quite elaborate, so
we shouldn't apply the extra complexity of those mechanisms to systems
that don't have the hardware that would benefit from them.

I feel as though a dependency on an Nvidia driver by steam is the wrong
dependency: there's nothing special about Steam that makes it require
Nvidia drivers, it just needs *some* working OpenGL driver. Unfortunately,
there's no way to write "if you have glx-alternative-nvidia then you
must also have nvidia-driver-libs:i386" as a dependency.

I think part of the problem might be that if you installed the Nvidia
driver before you enabled the i386 foreign architecture, then the
nvidia-driver-libs Recommends on nvidia-driver-libs-i386 is unsatisfiable
at the time that you installed nvidia-driver-libs, and apt leaves that
Recommends broken even after you add the i386 foreign architecture and
nvidia-driver-libs-i386 becomes available.

Perhaps the least bad solution would be for Debian's /usr/games/steam
wrapper script to detect the broken situation (amd64 Nvidia driver, but
no i386 Nvidia driver) and try to use PackageKit to fix it...

    smcv

Reply via email to