Hey guys,
Kudos for getting ARB's library components to build separately! I hope
that's not going to become to much of a maintenance hassle. The libs
aren't developed to be separate. There have been ABI changes at minor
levels (including code compiled dependent on C++11/C++14/C++17 flags in
the compiler IIRC). I'd recommend requiring exact version matches. SINA
detects available API at compile time (see sina/m4/arb.m4) and is
compatible with ARB 5, ARB 6.0.x and 6.1.x so far.
When I tried to build SINA with new libarb, I got:
configure:16724: error: in `/<<PKGBUILDDIR>>':
configure:16726: error: Required libraries found missing:
ARB PROBE library (PROBE_COM/client.a)
ARB HELIX library (SL/HELIX/HELIX.a)
Check whether those files have any symbols in them. IIRC there was an
issue with the Debian libarb-dev package where the symbols where
stripped from the static libs, making them useless. I think I filed a
bug report at some point, just didn't have time to mess with it and come
up with a patch.
The client.a (and in some versions common.a) files contain the RPC
client code for connecting to the ARB servers (PT server and Name
server). The framework is called AISC. IIRC those components are covered
by the free license. I'm not sure about HELIX.a. If necessary, I can
make that part of SINA optional.
That's good news in so far that these libraries are inside libarb-dev
package in
/usr/lib/x86_64-linux-gnu/arb/PROBE_COM/client.a and
/usr/lib/x86_64-linux-gnu/arb/SL/HELIX/HELIX.a
So that's probably a configuration issue.
The code detecting the location for ARB's static/dynamic libs is in
sina/m4/arb.m4. Since ARB does not comply with FHS, the locations vary a
lot depending on distribution mechanism - it's been tough to get that
right and every time I change something it breaks under some condition.
I will be happy to help or accept patches though. Also, if you want to
add that file to the libarb-dev package, I'm happy to add whichever
license you think is most suitable.
The libAWT.so and libWINDOW.so libraries contain the ARB windowing
toolkit and are the parts requiring X11 and motif. Only the GUI driven
components of ARB depend on those (the ARB PT server e.g. does not).
They are not required for SINA.
You are also very welcome to take anything from the Bioconda arb package
("arb-bio" due to name space collision with the arbitrary precision math
library). The files are here:
https://github.com/bioconda/bioconda-recipes/tree/master/recipes/arb-bio.
For those packages, I split ARB into libarbdb-dev (static libs),
libarbdb (ONLY libARBDB.so, libCORE.so and arb_tcp.dat to avoid X11
dependency), arb-bio-tools (non-X11 dependent binaries such as PT
server) and arb-bio (the rest). I'm not certain how the Debian setup is
currently, but since the aim is to package Qiime2, avoiding X11 would
probably be nice.
Thank you all for your awesome efforts! Please feel free to open issues
at SINA's github for anything I can do upstream. I'm sorry that I can't
help with the ARB license itself.
best,
Elmar