Date: Mon, 17 Aug 2015 14:37:12 +0100 From: Emil Velikov <emil.l.velikov@gmail.com> To: =?UTF-8?Q?Michel_D=C3=A4nzer?= <michel@daenzer.net> Cc: Jonathan Gray <jsg@jsg.id.au>, x11@freebsd.org, =?UTF-8?B?SmVhbi1Tw6liYXN0aWVuIFDDqWRyb24=?= <jean-sebastien.pedron@dumbbell.fr>, =?UTF-8?Q?Fran=C3=A7ois_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>, mesa@packages.debian.org Subject: Re: [RFC] Embed the mesa version in the library/binary name Message-ID: <CACvgo52Ez6cinWP4jN_D%2BB_%2BewT6D9fnxXrjRWwkVMCzHsp2DQ@mail.gmail.com> In-Reply-To: <55D19987.7090304@daenzer.net> References: <CACvgo50jzwFtE-md_nsZSmZJNqgqBsoA72o74x9LfhffYdqm1g@mail.gmail.com> <55D19987.7090304@daenzer.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 17 August 2015 at 09:21, Michel D=C3=A4nzer <michel@daenzer.net> wrote: > On 15.08.2015 00:21, Emil Velikov wrote: >> >> * 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 > > Do I understand correctly that your proposal is for downstream packagers > to make this change? Why not upstream? > Actually it's for upstream (mesa). Firstly I wanted to check if the maintainers foresee any problems with the approach before having a lovely discussion on mesa-dev :) > >> * Why > [...] >> - In most cases, one can easily establish if the distro provided >> library is overwritten. > > How so? > Hmm indeed. Only the SONAME library is available in traces. Not sure what made me think the original library name will appear. > >> - 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. > > Not really, since ldconfig (which needs to be run after (un)installing > any shared libraries) will clobber the libGL.so.1 symlink to point to > the libGL.so.X.Y with the largest X.Y. > Archlinux and Gentoo install the libraries in a non ldconfig searchable location. I'd assume others do the same, so this shouldn't really be an issue ? > Anyway, as Stefan mentioned there are many other problems preventing > this, so this isn't really an argument against your proposal. > Yes that whole thing of switching between drivers is another (nasty) topic which I'd love to discuss, but in another thread. > >> - OpenBSD, Solaris(?) use sunos 4 style versioning -> .so.major.minor > > FWIW, that can also be satisfied by libGL.so.1.2 . IIRC we used to ship > that even on Linux, not sure when/why we switched to libGL.so.1.2.0. > Maybe a side effect of adopting automake and friends. > Bth I cannot find a case of 1.2 and I don't even think it's possible. The linker automatically makes a major.minor.rev library (on linux), even if rev is omitted in -version-number/version-info. Examples (taken from the upstream-tracker) mesa 3.4 - libGL.so.1.2.030400 // mesa version is stored in rev mesa 7.9 - libGL.so.1.5.070900 // something cause a minor bump ? mesa 9.0 - libGL.so.1.2.0 // automake Thanks, Emil
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACvgo52Ez6cinWP4jN_D%2BB_%2BewT6D9fnxXrjRWwkVMCzHsp2DQ>