Shared library version/SONAME not properly set
Netgen provides several shared libraries, e.g. nglib. However, the resultant libnglib.so does not have its SONAME set properly, which is problematic for packaging Netgen and for other applications depending on it.
There is additional CMake configuration needed to fix this. For example, there should be something that functionally does this:
set_target_properties(nglib PROPERTIES VERSION 6.2.1804 SOVERSION 6.2)
The actual implementation should replace nglib something that targets all the shared libraries, and use things like ${NETGEN_VERSION_MAJOR} as well in replacement of the concrete example above.
Is anyone intending to work on this?
As far as I can see, there were significant changes between 6.2.210x and 6.2.220x, so apparently minor version is not sufficient for a SOVERSION.
Maybe a SOVERSION not related to the version would be better? I can provide a PR for this feature, but we should have a consensus on the version format first.
@xiphmont - you may be interested in tracking this.
netgen team ?
@xiphmont - you may be interested in tracking this.
Yep, still working back up the stack.
Proposal:
- Just use an arbitrary integer number for the soversion, monotonically increasing on ABI changes
- Start with 1, to avoid any possible confusion with the current "no version"
@kkremitzki, @xiphmont - would this work for Debian, Fedora?