Mutter incorrectly links against libGLESv2.so instead of libGLESv2.so.2
Affected version
mutter-3.36.2-1.fc32.x86_64 libglvnd-gles-1.3.1-1.fc32.x86_64 libglvnd-devel-1.3.1-1.fc32.x86_64
Bug summary
In the file meson_options.txt, the default mutter build (at least in the gnome-3-36 branch) sets gles2_libname to the string "libGLESv2.so", which in some distributions (Fedora) is a symlink provided by development files (libglvnd-devel). Compare this with the setting for opengl_libname, which is set to "libGL.so.1", provided by a base (not-development) package (libglvnd-glx in the case of Fedora 32).
The consequence is that in the absence of the development package (the common case for non-developers and for Live ISOs), the symlink is missing, and this in turn breaks the GLES 2.0 fallback when it is necessary and requested by Mutter.
Steps to reproduce
- Install GNOME-Shell and Mutter on a machine that requires the GLES 2.0 fallback (an Intel gen3 machine), or otherwise force the GLES fallback
- Remove the libGLESv2.so symlink or remove the development package that provides it.
- Attempt to start GNOME-Shell.
What happened
Fail screen, unable to start.
What did you expect to happen
Mutter should start normally with GLES 2.0 fallback.
Relevant logs, screenshots, screencasts etc.
The following appears in the system logs: jun 03 13:21:00 karlalex.palosanto.com gnome-shell[1961]: Unable to initialize Clutter: Unable to initialize the Clutter backend: no available drivers found. jun 03 13:21:00 karlalex.palosanto.com gnome-shell[1961]: Unable to initialize Clutter.