favreau / bullet

Automatically exported from code.google.com/p/bullet
0 stars 0 forks source link

Bullet SOVERSION increments with every release #581

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Is there a particular reason that the bullet library SOVERSION is tied to the 
full bullet version?  In Linux distributions, a change in a library's SONAME 
requires all libraries linked to the bullet shared libraries to be rebuilt.  
The way things stand, these rebuilds are needed for every new bullet release.  
These rebuilds shouldn't be required for minor or bugfix releases where the ABI 
does not change enough to warrant re-linking all dependent binaries.

If the minor releases are indeed ABI compatible (i.e., 2.78 and 2.79 introduce 
no major changes in library ABI,) then may I suggest making the SOVERSION equal 
to the major bullet release version (2), or decoupling the SOVERSION from the 
release number altogether and incrementing it manually when there is indeed an 
ABI-breakage. 

Original issue reported on code.google.com by richmat...@gmail.com on 21 Dec 2011 at 8:13

GoogleCodeExporter commented 9 years ago
Dynamic linking is not a supported feature, some people contributed it but 
there is no maintenance.

Unless you volunteer to maintain SOVERSION, it will not be fixed (but 
incremented every release)

Why do you want to dynamically link against Bullet? 
Newer versions will break behaviour, which is usually unwanted for games etc, 
that is why static linking is the preferred way.

Original comment by erwin.coumans on 7 Jan 2012 at 7:49

GoogleCodeExporter commented 9 years ago
After doing a little more research, it turns out that the ABI did change and 
that a SOVERSION bump was appropriate 
(http://upstream-tracker.org/versions/bullet.html)

As far as dynamic linking goes, from a distribution packaging standpoint, it 
helps with the maintenance burden (I'm the current maintainer of the bullet 
package in Fedora.)  If a security or bugfix update for a library is released, 
only the package providing the shared libraries needs to be updated.  Any 
packages depending on that library will pick up the new one automatically, so 
they don't need any extra maintenance. 

From now on, I'll probably just update bullet in the development branch, and 
leave stable releases at whatever version they have when released unless 
there's a compelling reason to do otherwise.

Original comment by richmat...@gmail.com on 17 Jan 2012 at 2:13

GoogleCodeExporter commented 9 years ago
Thanks for the feedback and your help, and sorry for the lack of support for 
dynamic libraries.

Let's close the issue (and open it, once someone is interested in investigating 
time/support for this)

Original comment by erwin.coumans on 23 Jan 2012 at 9:53