FS#74364 - [mesa-amber] Wrong library filenames breaks GLX
Attached to Project:
Arch Linux
Opened by Eduardo Escobar (eduardoeae) - Wednesday, 06 April 2022, 00:58 GMT
Last edited by Toolybird (Toolybird) - Friday, 26 May 2023, 05:47 GMT
Opened by Eduardo Escobar (eduardoeae) - Wednesday, 06 April 2022, 00:58 GMT
Last edited by Toolybird (Toolybird) - Friday, 26 May 2023, 05:47 GMT
|
Details
Apps using GLX fails because libraries and symlinks are
named "amber" instead of "mesa" in mesa-amber (21.3.8-4)
Example log of glxinfo: [code] name of display: :0 Error: couldn't find RGB GLX visual or fbconfig [/code] All the libraries are called libGLX_amber.so when they should be libGLX_mesa.so |
This task depends upon
Closed by Toolybird (Toolybird)
Friday, 26 May 2023, 05:47 GMT
Reason for closing: Fixed
Additional comments about closing: mesa-amber 21.3.8-5
lib32-mesa-amber 21.3.9-5
Friday, 26 May 2023, 05:47 GMT
Reason for closing: Fixed
Additional comments about closing: mesa-amber 21.3.8-5
lib32-mesa-amber 21.3.9-5
Symlinking to libGLX_mesa appears to solve the "amber" problem
Symlinking all the libGLX_amber.so* libraries to libGLX_mesa.so* fixed it.
Maybe this is a libglvnd bug?
Qt issued a fatal error: Could not initialize GLX
Qt tried to load plugins from:
/opt/Mathematica/SystemFiles/Libraries/Linux-x86-64/Qt/plugins
/opt/Mathematica/SystemFiles/FrontEnd/Binaries/Linux-x86-64
Creating the symlinks described above fixes the problem for me.
After I extended the package-section of PKGBUILD with the mentioned symlinks, removed the "amber"-stuff
| cd "${pkgdir}/usr/lib"
|
| for F in {EGL,GLX}
|
| do
| mv lib$F"_amber.so.0.0.0" lib$F"_mesa.so.0.0.0"
| ln -sv lib$F"_mesa.so.0.0.0" lib$F"_mesa.so.0"
| ln -sv lib$F"_mesa.so.0" lib$F"_mesa.so"
| done
|
| rm -v *amber*
re-built and installed the package, the problem has been solved.
Apparently libglvnd is missing amber in its database but you can force it by exporting:
__GLX_VENDOR_LIBRARY_NAME=amber
| option(
| 'amber',
| type : 'boolean',
| value : false,
| description : 'Configure LTS build to coexist with Mesa >= 22.0'
| )
The flag "amber=true" used in the PKGBUILD is meant for two different versions of mesa coexisting. Currently (in archlinux) mesa and mesa-amber conflict each other.
They should remove the flag or rebuild the packages to coexist adding a message at install about exporting that variable.
| libEGL.so.1.0.0
| libGL.so.1.2.0
| libGLESv2.so.2.0.0
| libvulkan_intel.so
| libvulkan_lvp.so
| libvulkan_radeon.so
and its symbolic links, but not a libEGL_mesa.so.0.0.0 or libGLX_mesa.so.0.0.0.
In result, the installation of the package fails due to conflicting files owned by libglvnd, i.e.
| mesa-amber: /usr/lib/libEGL.so exists in filesystem (owned by libglvnd)
| mesa-amber: /usr/lib/libEGL.so.1 exists in filesystem (owned by libglvnd)
| mesa-amber: /usr/lib/libGL.so exists in filesystem (owned by libglvnd)
| mesa-amber: /usr/lib/libGL.so.1 exists in filesystem (owned by libglvnd)
Where have I to add a missing "amber" in the "libglvnd"-database to try that solution?
Changing glvnd=auto to "true" uses the system glvnd. Otherwise mesa builds without support for glvnd and all the others vendors, with libGL.so being straight mesa (the same library called libGLX_mesa.so if glvnd is present)
Changing vulkan-drivers=auto to "" disables the vulkan drivers (not supported by old hardware anyway) like repo's mesa-amber does.
"Where have I to add a missing "amber" in the "libglvnd"-database to try that solution?"
These rules seem to be in /usr/share/glvnd/egl_vendor.d/ for EGL but nowhere for GLX
https://bbs.archlinux.org/viewtopic.php?pid=2083244#p2083244