epruesse / SINA

SINA - Reference based multiple sequence alignment
https://sina.readthedocs.io
GNU General Public License v3.0
42 stars 4 forks source link

GPL software linking against non-free library #68

Open tillea opened 5 years ago

tillea commented 5 years ago

Hi, I wanted to package SINA for Debian since it is needed by some QIIME2 module. However, I realised that it is linking against non-free software (libARB). Do you see any chance to either replace this by some free alternatives or talk to the ARB authors to free at least this part of their code (I talked to the ARB authors several times and know that it might be hard to free the whole software - but may be its possible in parts?) Kind regards, Andreas.

epruesse commented 5 years ago

Hi Andreas,

There are license exceptions in place:

From http://bugs.arb-home.de/browser/trunk/arb_PUBLIB_LICENSE.txt

The ARB libraries listed above may be used by projects distributed under the Gnu public
license (GPL) under the following conditions:

And there is this: https://github.com/epruesse/SINA/blob/7fcd906f2317261285609d4bea3180ebf41f563f/src/align.cpp#L18-L26

Thus far, I have been assuming that, although not ideal, this suffices. The catch on the ARB side is that the current software maintainers/authors have to research contributors/owners of a pretty old code base with a "event horizon" at "we got CVS" level to be able to grant extra license. They had decided that this was indeed possible for the parts I use from within SINA, but not for the whole ARB code base.

As of 1.6, SINA doesn't need the PT server part any more. However, it still relies on libARBDB and libCORE. It would be possible to remove that, but it would loose that format, which is without alternative for annotated, random access to large MSAs.

I'd happily come up with an alternative - but I'd need grant money to do so.

Do you think the license exceptions suffice?

tillea commented 5 years ago

Hi Elmar,

On Sat, Mar 30, 2019 at 08:01:48AM -0700, Elmar Pruesse wrote:

There are license exceptions in place:

From http://bugs.arb-home.de/browser/trunk/arb_PUBLIB_LICENSE.txt

The ARB libraries listed above may be used by projects distributed under the Gnu public
license (GPL) under the following conditions:

And there is this: https://github.com/epruesse/SINA/blob/7fcd906f2317261285609d4bea3180ebf41f563f/src/align.cpp#L18-L26

I admit that's all a bit complex.

Thus far, I have been assuming that, although not ideal, this suffices. The catch on the ARB side is that the current software maintainers/authors have to research contributors/owners of a pretty old code base with a "event horizon" at "we got CVS" level to be able to grant extra license. They had decided that this was indeed possible for the parts I use from within SINA, but not for the whole ARB code base.

I understood that its to hard for the whole ARB code base. However, having all code that is needed to create the two libraries you need to link against under say LGPL would be a real step forward. In this case I would package this separately and also link the ARB package in Debian against these libraries that could then go into Debian main.

As of 1.6, SINA doesn't need the PT server part any more. However, it still relies on libARBDB and libCORE. It would be possible to remove that, but it would loose that format, which is without alternative for annotated, random access to large MSAs.

I admit for the purpose as dependency of QIIME2 it would possibly not harm very much if only one format out of others is not supported. If we could go for the moment with a configuration option that could build SINA without the ARB libraries as a temporary solution until there is some better solution for the ARB libraries, that would be helpful.

I'd happily come up with an alternative - but I'd need grant money to do so.

I wish you good luck to seek for grant money. (Debian is absolutely not in the position to provide this.)

Do you think the license exceptions suffice?

I'd need to discuss with ftpmaster if the other options I suggested are not possible. Kind regards, Andreas.

epruesse commented 5 years ago

Please discuss with ftpmaster.

I can't change the ARB license or the way it's handled. I have permission to distribute SINA under GPL even while linking to ARB, and I've added permission to SINA's license to distribute even linked to ARB. If there are wording concerns I will happily incorporate advice into the SINA side of the license. If need be, I'd consider re-licensing SINA to MIT or BSD if that makes things easier.

I can't take the libARBDB out at this time as it would have to be replaced by some random access alignment database. It wouldn't be a big challenge to implement, but it would cost time. I just don't have that month that it would take.

Building libARBDB and libCORE separately from ARB under a different license is something you would have to take up with the people maintaining ARB. I wouldn't consider it without their explicit blessing, and I can't take the load of maintaining it as another project (time again).

epruesse commented 5 years ago

ping @tillea - Any news?