netgen icon indicating copy to clipboard operation
netgen copied to clipboard

Shared library version/SONAME not properly set

Open kkremitzki opened this issue 5 years ago • 5 comments

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.

kkremitzki avatar May 21 '20 22:05 kkremitzki

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.

StefanBruens avatar Jul 14 '22 10:07 StefanBruens

@xiphmont - you may be interested in tracking this.

StefanBruens avatar Jul 14 '22 10:07 StefanBruens

netgen team ?

luzpaz avatar Aug 24 '22 11:08 luzpaz

@xiphmont - you may be interested in tracking this.

Yep, still working back up the stack.

xiphmont avatar Aug 24 '22 16:08 xiphmont

Proposal:

  1. Just use an arbitrary integer number for the soversion, monotonically increasing on ABI changes
  2. Start with 1, to avoid any possible confusion with the current "no version"

@kkremitzki, @xiphmont - would this work for Debian, Fedora?

StefanBruens avatar Aug 24 '22 16:08 StefanBruens