[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[RFC] Embed the mesa version in the library/binary name



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: