rafat / ctsa

A Univariate Time Series Analysis and ARIMA Modeling Package in ANSI C. Updated with SARIMAX and Auto ARIMA.
https://code.google.com/p/ctsa/
Other
57 stars 25 forks source link

Included third party works under a different license? #10

Open bavay opened 5 months ago

bavay commented 5 months ago

Although the code is under a BSD 3- Clause license, there is a components_copyright directory containing other licenses' texts: LGPL, the BSD-like license of MINPACK and the ACM Software License Agreement. The later is not free software as it excludes commercial use.

Are such licenses relevant to CTSA? MINPACK was in Fortran, a C/C++ version was created under the same license, but it is not clear to me if some of it made its way into CTSA. Regarding the ACM Software License Agreement, I have no idea what could be impacted... And I'm not sure which parts would be LGPL.

In order to users to comply with the licenses, it would be nice to clarify if the whole code is BSD 3- Clause or if some parts are under one of these additional 3 licenses (we are integrating CTSA into an LGPL library, so it is important for us to know if the use of ctsa should be restricted to non-commercial works as well as if the advertisement clause only applies to ctsa or also to another code).

rafat commented 5 months ago

Mathias,

I have mentioned all the copyrights/licenses in the code itself (check the individual C files).

I believe there is only one function with LGPL license https://github.com/rafat/ctsa/blob/559e0db1bbffcadacf404890407fc22f4c084cf3/src/dist.c#L756

The main issue is with ACM Fortran codes back from the 70s/80s some that I translated to C back then.

https://github.com/rafat/ctsa/blob/559e0db1bbffcadacf404890407fc22f4c084cf3/src/erfunc.c#L3

https://github.com/rafat/ctsa/blob/559e0db1bbffcadacf404890407fc22f4c084cf3/src/polyroot.c#L4

You'll also have to check the copyright status of algorithms like AS154 but they're used by every commercial and non-commercial Time Series analysis software. Basically, everything I have coded is under BSD-3 license. I had discussions with a few knowledgeable people back then and they all suggested that I add the other licenses as the software open-source licensing area is very murky legally.

Rafat

On Wed, Mar 13, 2024 at 1:38 AM Mathias Bavay @.***> wrote:

Although the code is under a BSD 3- Clause license, there is a components_copyright https://github.com/rafat/ctsa/tree/master/components_copyright directory containing other licenses' texts: LGPL, the BSD-like license of MINPACK and the ACM Software License Agreement. The later is not free software as it excludes commercial use.

Are such licenses relevant to CTSA? MINPACK was in Fortran, a C/C++ version was created under the same license, but it is not clear to me if some of it made its way into CTSA. Regarding the ACM Software License Agreement, I have no idea what could be impacted... And I'm not sure which parts would be LGPL.

In order to users to comply with the licenses, it would be nice to clarify if the whole code is BSD 3- Clause or if some parts are under one of these additional 3 licenses (we are integrating CTSA into an LGPL library, so it is important for us to know if the use of ctsa should be restricted to non-commercial works as well as if the advertisement clause only applies to ctsa or also to another code).

— Reply to this email directly, view it on GitHub https://github.com/rafat/ctsa/issues/10, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAI3ROYUQGEXCJCQ7ABTCFDYX5OCFAVCNFSM6AAAAABES45MPCVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE4DENJYGA2DQMA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

bavay commented 5 months ago

Hi Rafat,

Thanks for your quick answer!

I see the ACM Fortran code ported to C as problematic: simply porting a piece of code into another language is a derivative work, so it remains under its original license. Luckily, the ACM license allows modifications and redistribution, but unfortunately only for non-commercial uses (contrary to GPL or BSD variants). There is even a thread from the R community on this topic: thread . The same happens with ACM TOMS 419 (polyroot). On the positive side, there are other versions that are either MIT or LGPL: toms708 and toms419.

In dist.c, I've seen at least two functions that are LGPL. Here it might be possible to get the agreement of the original authors to release under a dual license LGPL - BSD-3 clause (otherwise the LGPL license "contaminates" the BSD code).

If this is of any interest to you, for now I can offer to add SPDX license identifiers to all files (it's one line of comment at the top of each file) so it gets clearer...

Mathias PS: the library we are integrating ctsa into is MeteoIO.

rafat commented 5 months ago

Hi Mathias,

Please feel free to add license identifiers to the files. Also, your library looks really cool and I hope the licensing issues are all sorted out soon.

Rafat

On Wed, Mar 13, 2024 at 11:10 PM Mathias Bavay @.***> wrote:

Hi Rafat,

Thanks for your quick answer!

I see the ACM Fortran code ported to C as problematic: simply porting a piece of code into another language is a derivative work, so it remains under its original license. Luckily, the ACM license allows modifications and redistribution, but unfortunately only for non-commercial uses (contrary to GPL or BSD variants). There is even a thread from the R community on this topic: thread https://stat.ethz.ch/pipermail/r-help/2012-February/303771.html . The same happens with ACM TOMS 419 (polyroot). On the positive side, there are other versions that are either MIT or LGPL: toms708 https://people.sc.fsu.edu/~jburkardt//f77_src/toms708/toms708.html and toms419 https://people.sc.fsu.edu/~jburkardt/f77_src/toms419/toms419.html.

In dist.c, I've seen at least two functions that are LGPL. Here it might be possible to get the agreement of the original authors to release under a dual license LGPL - BSD-3 clause (otherwise the LGPL license "contaminates" the BSD code).

If this is of any interest to you, for now I can offer to add SPDX https://spdx.dev/ license identifiers to all files (it's one line of comment at the top of each file) so it gets clearer...

Mathias PS: the library we are integrating ctsa into is MeteoIO https://meteoio.slf.ch.

— Reply to this email directly, view it on GitHub https://github.com/rafat/ctsa/issues/10#issuecomment-1995130992, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAI3RO2PB2NM6D7IZ4MMSVLYYCFPBAVCNFSM6AAAAABES45MPCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJVGEZTAOJZGI . You are receiving this because you commented.Message ID: @.***>

bavay commented 5 months ago

Hi Rafat,

I've contacted John Burkardt (who provides the alternative implementations) and he provided me with some explanations:

For me it is now the evening, I'll let it for now but I'll first make a merge request with the SPDX identifiers tomorrow. And it seems that quite soon all of ctsa could be free software, without any non-free licenses!

Mathias PS: just for reference, although we don't really need it at this point: an interesting list of various erf / erfc implementations