To actually install old mesa, I'd suggest downloading this glvnd and this mesa. First downgrade glvnd, then mesa. I'm reasonably confident this should work, though please report back either way.
]]>Edit: Actually, having just looked at the dates myself, it looks like libglvnd didn't exist back when that version of mesa did. It seems mesa split out into the mesa and the libglvnd packages . I'm not actually sure of the best route forward in this case. If you were to remove libdlvnd it'll try to remove lots of other packages including mesa so if you recurse it'll want to remove all of the things that depend on mesa too at the very least. I know you can combine install and sync operations, but I don't know if you can combine remove and upgrade operations (seems you can't, if I construct such a command line it complains at me). Perhaps instead you need to use --overwrite options to make the -U succeed, then remove libglvnd, then check you've still got the conflcting files and re-U-ing your mesa file if not. But yeah, removing libglvnd on an uptodate system is likely to be problematic, since it'll want to knock out xorg-server and libreoffice at the very least. A simpler method overall might be picking an old mesa version from after the libglvld split, which is likely to remove a lot of these hurdles.
]]>Packages (1) mesa-19.0.0-1.0
Total Installed Size: 53.65 MiB
Net Upgrade Size: -34.99 MiB
:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [######################] 100%
(1/1) checking package integrity [######################] 100%
(1/1) loading package files [######################] 100%
(1/1) checking for file conflicts [######################] 100%
error: failed to commit transaction (conflicting files)
mesa: /usr/include/EGL/egl.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/EGL/eglext.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/EGL/eglplatform.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GL/gl.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GL/glcorearb.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GL/glext.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GL/glx.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GL/glxext.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GLES2/gl2.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GLES2/gl2ext.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GLES2/gl2platform.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GLES3/gl3.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GLES3/gl31.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GLES3/gl32.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GLES3/gl3ext.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/GLES3/gl3platform.h exists in filesystem (owned by libglvnd)
mesa: /usr/include/KHR/khrplatform.h exists in filesystem (owned by libglvnd)
mesa: /usr/lib/pkgconfig/egl.pc exists in filesystem (owned by libglvnd)
mesa: /usr/lib/pkgconfig/gl.pc exists in filesystem (owned by libglvnd)
mesa: /usr/lib/pkgconfig/glesv2.pc exists in filesystem (owned by libglvnd)
Errors occurred, no packages were upgraded.