ncbi-vdb icon indicating copy to clipboard operation
ncbi-vdb copied to clipboard

Installs static libs instead of shared libs, for example lib/libncbi-vdb.a.2.11.0

Open yurivict opened this issue 3 years ago • 5 comments

Version 2.11.0 installs static libs instead of shared libs:

lib/libkdf5-static.a
lib/libkdf5.a
lib/libkdf5.a.2 
lib/libkdf5.a.2.11.0
lib/libkdf5.so
lib/libkdf5.so.2
lib/libkdf5.so.2.11.0
lib/libncbi-ngs-c++-static.a
lib/libncbi-ngs-c++.a
lib/libncbi-ngs-c++.a.2
lib/libncbi-ngs-c++.a.2.11.0
lib/libncbi-ngs-static.a
lib/libncbi-ngs.a
lib/libncbi-ngs.a.2
lib/libncbi-ngs.a.2.11.0
lib/libncbi-vdb-static.a
lib/libncbi-vdb.a
lib/libncbi-vdb.a.2
lib/libncbi-vdb.a.2.11.0
lib/libncbi-vdb.so
lib/libncbi-vdb.so.2
lib/libncbi-vdb.so.2.11.0
lib/libncbi-wvdb-static.a
lib/libncbi-wvdb.a
lib/libncbi-wvdb.a.2
lib/libncbi-wvdb.a.2.11.0
lib/libncbi-wvdb.so
lib/libncbi-wvdb.so.2
lib/libncbi-wvdb.so.2.11.0

This issue is similar to issue https://github.com/ncbi/ngs/issues/33 in the ngs project.

OS: FreeBSD 12.2

yurivict avatar Apr 12 '21 09:04 yurivict

What problems does to cause?

klymenko avatar Apr 12 '21 14:04 klymenko

For example, here

lib/libncbi-wvdb-static.a
lib/libncbi-wvdb.a
lib/libncbi-wvdb.a.2
lib/libncbi-wvdb.a.2.11.0

all libs are static. There is no need to install same static library under different file names. Symbolic links are usually used with shared libraries. There is no need to symlink static libs.

yurivict avatar Apr 12 '21 16:04 yurivict

Hi @yurivict - I would point out that your interpretation of the utility of the static links does not seem to take into account application linking at build time, which in some cases that we use will include a library's version, e.g. gcc -o app -lncbi-wvdb.2.11.0 ...

In our build system, we treat library names and versions separately from the static or shared nature of the package.

So while you say there is no need because you assume the only use of symlinks is for the runtime link editor, we use them during the build. Which begs the question, what problem is it creating for you?

kwrodarmer avatar Apr 12 '21 17:04 kwrodarmer

So while you say there is no need because you assume the only use of symlinks is for the runtime link editor, we use them during the build. Which begs the question, what problem is it creating for you?

It doesn't cause any particular problems so far except it looks broken to anybody used to look at shared library names. For example:

-rwxr-xr-x    1 root  wheel      30440 Feb 24 17:14 libdaemon.so.0.5.0
lrwxr-xr-x    1 root  wheel         18 Feb 24 17:14 libdaemon.so.0 -> libdaemon.so.0.5.0
lrwxr-xr-x    1 root  wheel         18 Feb 24 17:14 libdaemon.so -> libdaemon.so.0.5.0
-rwxr-xr-x    1 root  wheel        933 Feb 24 17:14 libdaemon.la
-rw-r--r--    1 root  wheel      40986 Feb 24 17:14 libdaemon.a
-rwxr-xr-x    1 root  wheel     184416 Feb 24 17:14 libnghttp2.so.14.20.1
lrwxr-xr-x    1 root  wheel         21 Feb 24 17:14 libnghttp2.so.14 -> libnghttp2.so.14.20.1
lrwxr-xr-x    1 root  wheel         21 Feb 24 17:14 libnghttp2.so -> libnghttp2.so.14.20.1
-rw-r--r--    1 root  wheel     309662 Feb 24 17:14 libnghttp2.a
-rwxr-xr-x    1 root  wheel      77344 Feb 24 17:14 libtasn1.so.6.6.0
lrwxr-xr-x    1 root  wheel         17 Feb 24 17:14 libtasn1.so.6 -> libtasn1.so.6.6.0
lrwxr-xr-x    1 root  wheel         17 Feb 24 17:14 libtasn1.so -> libtasn1.so.6.6.0
-rw-r--r--    1 root  wheel     139760 Feb 24 17:14 libtasn1.a

-- symbolic links are used for shared libraries, also in conjunction with shared library SONAMEs.

yurivict avatar Apr 12 '21 17:04 yurivict

symbolic links are used for shared libraries, also in conjunction with shared library SONAMEs

Yes.

It doesn't cause any particular problems so far except it looks broken to anybody used to look at shared library names.

We'll take it into consideration. Thank you for your feedback.

kwrodarmer avatar Apr 12 '21 17:04 kwrodarmer