[RFC] Embed the mesa version in the library/binary name
- To: mesa@packages.debian.org, Jonathan Gray <jsg@jsg.id.au>, x11@FreeBSD.org, Jean-Sébastien Pédron <jean-sebastien.pedron@dumbbell.fr>, François Tigeot <ftigeot@wolfpond.org>, riastradh@netbsd.org, Matthew Green <mrg@NetBSD.org>, Jan de Groot <jgc@archlinux.org>, Andreas Radke <andyrtr@archlinux.org>, Igor Gnatenko <ignatenkobrain@fedoraproject.org>, Stefan Dirsch <sndirsch@suse.de>
- Subject: [RFC] Embed the mesa version in the library/binary name
- From: Emil Velikov <emil.l.velikov@gmail.com>
- Date: Fri, 14 Aug 2015 16:21:10 +0100
- Message-id: <[🔎] CACvgo50jzwFtE-md_nsZSmZJNqgqBsoA72o74x9LfhffYdqm1g@mail.gmail.com>
Hello all,
My name is Emil and I'm the person breaking^w fixing mesa's build
amongst others.
A while back I had this idea of renaming the libraries provided by
mesa to include the actual version number. Prior to doing anything
"crazy" I've decided to seek your feedback.
* What
The idea is to rename (ideally) all of the versioned libraries.
Unversioned ones such as radeonsi_dri.so will remain as is.
Note: the soname and symlinks will stay to avoid breaking compatibility.
* How
While I haven't fully decided on the exact approach I'm thinking of
something like:
libGL.so.1.0.0 -> libGL.so.11.0 or libGL.so.110.1 or libGL.so.11.01
Other suggestions and ideas are welcome but please keep the version to X.Y
* Why
A number of reasons:
- The binary driver by Nvidia has been using this approach for years.
- It provides quick and easy feedback in traces
- In most cases, one can easily establish if the distro provided
library is overwritten.
- Allows multiple binaries to coexist, making the dynamic switching
between libGL.so.110.1, libGL.so.11.2.0 (mesa), libGL.so.352.14
(nvidia) libGL.so.XX.Y (another vendor) a little bit easier.
- OpenBSD, Solaris(?) use sunos 4 style versioning -> .so.major.minor
How does this sound, do you foresee any pros/cons with the above
proposal ? Any and all input is greatly appreciated, but please try to
keep your replies technical and constructive.
If there are any concerns wrt the required updates (of the
build/packaging recipes) I'm willing to help out.
As I'm not sure how many of you follow mesa-dev, would you be OK if I
CC you in distro related~ish topics.
Some (not so crazy) examples:
- libEGL.so has additional dependency (via libdl) of X
- OpenCL only works with render node devices, kernel vY or later is required
- Mesa's new library libfoo.so should be shipped with libbar.so
Thanks
Emil
Reply to: