Re: [commons-numbers] 02/08: Added Boost license for derived works in Complex.

2020-04-01 Thread Gilles Sadowski
Hello.

Le mer. 1 avr. 2020 à 12:58,  a écrit :
>
> This is an automated email from the ASF dual-hosted git repository.
>
> aherbert pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/commons-numbers.git
>
> commit 5f0686220dfd6e94b922e076ef6809de3233cdc4
> Author: aherbert 
> AuthorDate: Wed Apr 1 09:31:16 2020 +0100
>
> Added Boost license for derived works in Complex.
> ---
>  LICENSE.txt| 44 
> ++
>  commons-numbers-complex/LICENSE.txt| 44 
> ++

My understanding of [1] is that these texts must go to the
NOTICE
file(s).

Side-note: Files "LICENCE.txt" and "NOTICE.txt" should be renamed
(cf. NUMBERS-146).

Best,
Gilles

[1] http://www.apache.org/dev/licensing-howto.html

>  .../apache/commons/numbers/complex/Complex.java| 24 +++-
>  3 files changed, 94 insertions(+), 18 deletions(-)
>
> diff --git a/LICENSE.txt b/LICENSE.txt
> index 2a5f502..2ae0957 100644
> --- a/LICENSE.txt
> +++ b/LICENSE.txt
> @@ -206,11 +206,39 @@ Class "org.apache.commons.numbers.complex.Complex" 
> contains
>  Java code partly ported from the "Freely Distributable Math Library" in C.
>  The source files contain the following notice:
>
> - * 
> - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
> - *
> - * Developed at SunSoft, a Sun Microsystems, Inc. business.
> - * Permission to use, copy, modify, and distribute this
> - * software is freely granted, provided that this notice
> - * is preserved.
> - * 
> +  Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
> +
> +  Developed at SunSoft, a Sun Microsystems, Inc. business.
> +  Permission to use, copy, modify, and distribute this
> +  software is freely granted, provided that this notice
> +  is preserved.
> +
> +
> +
> +Class "org.apache.commons.numbers.complex.Complex" contains
> +Java code partly ported from the "Boost C++ Libraries" .
> +The source files contain the following notice:
> +
> +  Boost Software License - Version 1.0 - August 17th, 2003
> +
> +  Permission is hereby granted, free of charge, to any person or organization
> +  obtaining a copy of the software and accompanying documentation covered by
> +  this license (the "Software") to use, reproduce, display, distribute,
> +  execute, and transmit the Software, and to prepare derivative works of the
> +  Software, and to permit third-parties to whom the Software is furnished to
> +  do so, all subject to the following:
> +
> +  The copyright notices in the Software and this entire statement, including
> +  the above license grant, this restriction and the following disclaimer,
> +  must be included in all copies of the Software, in whole or in part, and
> +  all derivative works of the Software, unless such copies or derivative
> +  works are solely in the form of machine-executable object code generated by
> +  a source language processor.
> +
> +  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> +  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> +  FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
> +  SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
> +  FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
> +  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> +  DEALINGS IN THE SOFTWARE.
> diff --git a/commons-numbers-complex/LICENSE.txt 
> b/commons-numbers-complex/LICENSE.txt
> index 2a5f502..2ae0957 100644
> --- a/commons-numbers-complex/LICENSE.txt
> +++ b/commons-numbers-complex/LICENSE.txt
> @@ -206,11 +206,39 @@ Class "org.apache.commons.numbers.complex.Complex" 
> contains
>  Java code partly ported from the "Freely Distributable Math Library" in C.
>  The source files contain the following notice:
>
> - * 
> - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
> - *
> - * Developed at SunSoft, a Sun Microsystems, Inc. business.
> - * Permission to use, copy, modify, and distribute this
> - * software is freely granted, provided that this notice
> - * is preserved.
> - * 
> +  Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
> +
> +  Developed at SunSoft, a Sun Microsystems, Inc. business.
> +  Permission to use, copy, modify, and distribute this
> +  software is freely granted, provided that this notice
> +  is preserved.
> +
> +
> +
> +Class "org.apache.commons.numbers.complex.Complex" contains
> +Java code partly ported from the "Boost C++ Libraries" .
> +The source file

Re: [commons-numbers] 02/08: Added Boost license for derived works in Complex.

2020-04-01 Thread Alex Herbert



On 01/04/2020 13:10, Gilles Sadowski wrote:

Hello.

Le mer. 1 avr. 2020 à 12:58,  a écrit :

This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git

commit 5f0686220dfd6e94b922e076ef6809de3233cdc4
Author: aherbert 
AuthorDate: Wed Apr 1 09:31:16 2020 +0100

 Added Boost license for derived works in Complex.
---
  LICENSE.txt| 44 ++
  commons-numbers-complex/LICENSE.txt| 44 ++

My understanding of [1] is that these texts must go to the
 NOTICE
file(s).


I interpret this using the section on 'BUNDLING PERMISSIVELY-LICENSED 
DEPENDENCIES'


Here it states that we can add the 3rd party license within the LICENSE 
file.



This page describes 'WHAT ARE REQUIRED THIRD-PARTY NOTICES?' [2]

"Apache releases should contain a copy of each license, usually 
contained in the LICENSE document. For many licenses this is a 
sufficient notice. For some licenses some additional notice is required. 
In many cases, this will be included within the dependent artifact."



So I think that we put the 3rd party notice in LICENSE and then add to 
NOTICE only if the license text has additional notice requirements. From 
reading each included licence it appears to me that the LICENSE is all 
that is required and the 3rd party works have no additional notice 
requirement.



[2] http://apache.org/legal/resolved.html#required-third-party-notices



Side-note: Files "LICENCE.txt" and "NOTICE.txt" should be renamed
(cf. NUMBERS-146).


I can do this if you like.

Alex



Best,
Gilles

[1] http://www.apache.org/dev/licensing-howto.html


  .../apache/commons/numbers/complex/Complex.java| 24 +++-
  3 files changed, 94 insertions(+), 18 deletions(-)

diff --git a/LICENSE.txt b/LICENSE.txt
index 2a5f502..2ae0957 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -206,11 +206,39 @@ Class "org.apache.commons.numbers.complex.Complex" 
contains
  Java code partly ported from the "Freely Distributable Math Library" in C.
  The source files contain the following notice:

- * 
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunSoft, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * 
+  Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+
+  Developed at SunSoft, a Sun Microsystems, Inc. business.
+  Permission to use, copy, modify, and distribute this
+  software is freely granted, provided that this notice
+  is preserved.
+
+
+
+Class "org.apache.commons.numbers.complex.Complex" contains
+Java code partly ported from the "Boost C++ Libraries" .
+The source files contain the following notice:
+
+  Boost Software License - Version 1.0 - August 17th, 2003
+
+  Permission is hereby granted, free of charge, to any person or organization
+  obtaining a copy of the software and accompanying documentation covered by
+  this license (the "Software") to use, reproduce, display, distribute,
+  execute, and transmit the Software, and to prepare derivative works of the
+  Software, and to permit third-parties to whom the Software is furnished to
+  do so, all subject to the following:
+
+  The copyright notices in the Software and this entire statement, including
+  the above license grant, this restriction and the following disclaimer,
+  must be included in all copies of the Software, in whole or in part, and
+  all derivative works of the Software, unless such copies or derivative
+  works are solely in the form of machine-executable object code generated by
+  a source language processor.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+  SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+  FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+  DEALINGS IN THE SOFTWARE.
diff --git a/commons-numbers-complex/LICENSE.txt 
b/commons-numbers-complex/LICENSE.txt
index 2a5f502..2ae0957 100644
--- a/commons-numbers-complex/LICENSE.txt
+++ b/commons-numbers-complex/LICENSE.txt
@@ -206,11 +206,39 @@ Class "org.apache.commons.numbers.complex.Complex" 
contains
  Java code partly ported from the "Freely Distributable Math Library" in C.
  The source files contain the following notice:

- * 
- * Copyright (C) 1993 

Re: [commons-numbers] 02/08: Added Boost license for derived works in Complex.

2020-04-01 Thread Gilles Sadowski
Hi.

Le mer. 1 avr. 2020 à 15:09, Alex Herbert  a écrit :
>
>
> On 01/04/2020 13:10, Gilles Sadowski wrote:
> > Hello.
> >
> > Le mer. 1 avr. 2020 à 12:58,  a écrit :
> >> This is an automated email from the ASF dual-hosted git repository.
> >>
> >> aherbert pushed a commit to branch master
> >> in repository https://gitbox.apache.org/repos/asf/commons-numbers.git
> >>
> >> commit 5f0686220dfd6e94b922e076ef6809de3233cdc4
> >> Author: aherbert 
> >> AuthorDate: Wed Apr 1 09:31:16 2020 +0100
> >>
> >>  Added Boost license for derived works in Complex.
> >> ---
> >>   LICENSE.txt| 44 
> >> ++
> >>   commons-numbers-complex/LICENSE.txt| 44 
> >> ++
> > My understanding of [1] is that these texts must go to the
> >  NOTICE
> > file(s).
>
> I interpret this using the section on 'BUNDLING PERMISSIVELY-LICENSED
> DEPENDENCIES'

AFAICT, adapting code from a (permissively-licenced) library is not a
"bundled dependency".

In my understanding, this pragraph applies instead:
---CUT---
Copyright notifications which have been relocated from source files
(rather than removed) must be preserved in NOTICE. However, elements
such as the copyright notifications embedded within BSD and MIT
licenses need not be duplicated in NOTICE -- it suffices to leave
those notices in their original locations.
---CUT---

I could be mistaken, but I think that the "Complex.java" source file
could not be distributed under two licences. If it were so, which one
does actually apply?

>
> Here it states that we can add the 3rd party license within the LICENSE
> file.
>
>
> This page describes 'WHAT ARE REQUIRED THIRD-PARTY NOTICES?' [2]
>
> "Apache releases should contain a copy of each license, usually
> contained in the LICENSE document. For many licenses this is a
> sufficient notice. For some licenses some additional notice is required.
> In many cases, this will be included within the dependent artifact."
>
>
> So I think that we put the 3rd party notice in LICENSE and then add to
> NOTICE only if the license text has additional notice requirements. From
> reading each included licence it appears to me that the LICENSE is all
> that is required and the 3rd party works have no additional notice
> requirement.
>
> [2] http://apache.org/legal/resolved.html#required-third-party-notices

This is confusing indeed.
I'd tend to think that the page that specifically addresses
the contents of both "LICENCE" and "NOTICE" should be
the common ground.  [Your interpretation of it may still be
correct, of course.  Hopefully someone else can give an
opinion.]

>
> > Side-note: Files "LICENCE.txt" and "NOTICE.txt" should be renamed
> > (cf. NUMBERS-146).
>
> I can do this if you like.

Sure, thanks.

Best regards,
Gilles

>
> Alex
>
> >
> > Best,
> > Gilles
> >
> > [1] http://www.apache.org/dev/licensing-howto.html
> >
> >>   .../apache/commons/numbers/complex/Complex.java| 24 +++-
> >>   3 files changed, 94 insertions(+), 18 deletions(-)
> >>
> >> diff --git a/LICENSE.txt b/LICENSE.txt
> >> index 2a5f502..2ae0957 100644
> >> --- a/LICENSE.txt
> >> +++ b/LICENSE.txt
> >> @@ -206,11 +206,39 @@ Class "org.apache.commons.numbers.complex.Complex" 
> >> contains
> >>   Java code partly ported from the "Freely Distributable Math Library" in 
> >> C.
> >>   The source files contain the following notice:
> >>
> >> - * 
> >> - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
> >> - *
> >> - * Developed at SunSoft, a Sun Microsystems, Inc. business.
> >> - * Permission to use, copy, modify, and distribute this
> >> - * software is freely granted, provided that this notice
> >> - * is preserved.
> >> - * 
> >> +  Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
> >> +
> >> +  Developed at SunSoft, a Sun Microsystems, Inc. business.
> >> +  Permission to use, copy, modify, and distribute this
> >> +  software is freely granted, provided that this notice
> >> +  is preserved.
> >> +
> >> +
> >> +
> >> +Class "org.apache.commons.numbers.complex.Complex" contains
> >> +Java code partly ported from the "Boost C++ Libraries" 
> >> .
> >> +The source files contain the following notice:
> >> +
> >> +  Boost Software License - Version 1.0 - August 17th, 2003
> >> +
> >> +  Permission is hereby granted, free of charge, to any person or 
> >> organization
> >> +  obtaining a copy of the software and accompanying documentation covered 
> >> by
> >> +  this license (the "Software") to use, reproduce, display, distribute,
> >> +  execute, and transmit the Software, and to prepare derivative works of 
> >> the
> >> +  Software, and to permit third-parties to whom the Software is furnished 
> >> to
> >> +  do so, all subject to the following:
> >> +
> >> 

Re: [commons-numbers] 02/08: Added Boost license for derived works in Complex.

2020-04-01 Thread Alex Herbert



On 01/04/2020 14:56, Gilles Sadowski wrote:

Hi.

Le mer. 1 avr. 2020 à 15:09, Alex Herbert  a écrit :


On 01/04/2020 13:10, Gilles Sadowski wrote:

Hello.

Le mer. 1 avr. 2020 à 12:58,  a écrit :

This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git

commit 5f0686220dfd6e94b922e076ef6809de3233cdc4
Author: aherbert 
AuthorDate: Wed Apr 1 09:31:16 2020 +0100

  Added Boost license for derived works in Complex.
---
   LICENSE.txt| 44 
++
   commons-numbers-complex/LICENSE.txt| 44 
++

My understanding of [1] is that these texts must go to the
  NOTICE
file(s).

I interpret this using the section on 'BUNDLING PERMISSIVELY-LICENSED
DEPENDENCIES'

AFAICT, adapting code from a (permissively-licenced) library is not a
"bundled dependency".

In my understanding, this pragraph applies instead:
---CUT---
Copyright notifications which have been relocated from source files
(rather than removed) must be preserved in NOTICE. However, elements
such as the copyright notifications embedded within BSD and MIT
licenses need not be duplicated in NOTICE -- it suffices to leave
those notices in their original locations.
---CUT---

I could be mistaken, but I think that the "Complex.java" source file
could not be distributed under two licences. If it were so, which one
does actually apply?


The legal docs are mainly targetted at inclusion of entire 3rd party 
works. In this case we have snippets adapted from third party works 
included into our code. So perhaps this applies [1]:


---CUT---

WHAT IS THE PROVENANCE OF SOURCE CODE FROM THE ASF?

CODE DEVELOPED ELSEWHERE, RECEIVED UNDER A CATEGORY A LICENSE, 
INCORPORATED INTO APACHE PROJECTS, DISTRIBUTED BY APACHE, AND LICENSED 
TO DOWNSTREAM USERS UNDER ITS ORIGINAL LICENSE


This code retains its external identity and is being incorporated into 
an Apache project for convenience, to avoid referencing an external 
repository whose contents are not under control of the project. The code 
retains its original license; and distribution as part of the Apache 
project explicitly calls out the license. The code retains its original 
header which refers to its own license in the distribution. If changes 
are made to the code while at Apache, the standard Apache header is 
prepended to each changed file. Additionally, any legally-required 
notices related to the code are published in the distribution.


---CUT---

So here we fall into the "If changes are made to the code while at 
Apache" section. We prepend the file with the Apache header and include 
the original license as well.


Since the original code is in a different language the source has been 
modified by necessity. I cannot find a section on software conversions.


It may be clearer to extract the relevant parts that have been adapted 
into a new source file. This can have the Apache header and then the 
original header from the original work. For the two items involved they 
can be extracted into separate files without impacting the original 
location.


I can raise this with the legal team if no-one knows any better.

[1] http://apache.org/foundation/license-faq.html#provenance





Here it states that we can add the 3rd party license within the LICENSE
file.


This page describes 'WHAT ARE REQUIRED THIRD-PARTY NOTICES?' [2]

"Apache releases should contain a copy of each license, usually
contained in the LICENSE document. For many licenses this is a
sufficient notice. For some licenses some additional notice is required.
In many cases, this will be included within the dependent artifact."


So I think that we put the 3rd party notice in LICENSE and then add to
NOTICE only if the license text has additional notice requirements. From
reading each included licence it appears to me that the LICENSE is all
that is required and the 3rd party works have no additional notice
requirement.

[2] http://apache.org/legal/resolved.html#required-third-party-notices

This is confusing indeed.
I'd tend to think that the page that specifically addresses
the contents of both "LICENCE" and "NOTICE" should be
the common ground.  [Your interpretation of it may still be
correct, of course.  Hopefully someone else can give an
opinion.]


Side-note: Files "LICENCE.txt" and "NOTICE.txt" should be renamed
(cf. NUMBERS-146).

I can do this if you like.

Sure, thanks.

Best regards,
Gilles


Alex


Best,
Gilles

[1] http://www.apache.org/dev/licensing-howto.html


   .../apache/commons/numbers/complex/Complex.java| 24 +++-
   3 files changed, 94 insertions(+), 18 deletions(-)

diff --git a/LICENSE.txt b/LICENSE.txt
index 2a5f502..2ae0957 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -206,11 +206,39 @@ Class "org.apache.commons.numbers.complex.Complex" 
contains
   Java code partly ported from the "Freely Dis

Re: [commons-numbers] 02/08: Added Boost license for derived works in Complex.

2020-04-01 Thread Gilles Sadowski
Le mer. 1 avr. 2020 à 16:27, Alex Herbert  a écrit :
>
>
> On 01/04/2020 14:56, Gilles Sadowski wrote:
> > Hi.
> >
> > Le mer. 1 avr. 2020 à 15:09, Alex Herbert  a 
> > écrit :
> >>
> >> On 01/04/2020 13:10, Gilles Sadowski wrote:
> >>> Hello.
> >>>
> >>> Le mer. 1 avr. 2020 à 12:58,  a écrit :
>  This is an automated email from the ASF dual-hosted git repository.
> 
>  aherbert pushed a commit to branch master
>  in repository https://gitbox.apache.org/repos/asf/commons-numbers.git
> 
>  commit 5f0686220dfd6e94b922e076ef6809de3233cdc4
>  Author: aherbert 
>  AuthorDate: Wed Apr 1 09:31:16 2020 +0100
> 
>    Added Boost license for derived works in Complex.
>  ---
> LICENSE.txt| 44 
>  ++
> commons-numbers-complex/LICENSE.txt| 44 
>  ++
> >>> My understanding of [1] is that these texts must go to the
> >>>   NOTICE
> >>> file(s).
> >> I interpret this using the section on 'BUNDLING PERMISSIVELY-LICENSED
> >> DEPENDENCIES'
> > AFAICT, adapting code from a (permissively-licenced) library is not a
> > "bundled dependency".
> >
> > In my understanding, this pragraph applies instead:
> > ---CUT---
> > Copyright notifications which have been relocated from source files
> > (rather than removed) must be preserved in NOTICE. However, elements
> > such as the copyright notifications embedded within BSD and MIT
> > licenses need not be duplicated in NOTICE -- it suffices to leave
> > those notices in their original locations.
> > ---CUT---
> >
> > I could be mistaken, but I think that the "Complex.java" source file
> > could not be distributed under two licences. If it were so, which one
> > does actually apply?
>
> The legal docs are mainly targetted at inclusion of entire 3rd party
> works. In this case we have snippets adapted from third party works
> included into our code. So perhaps this applies [1]:
>
> ---CUT---
>
> WHAT IS THE PROVENANCE OF SOURCE CODE FROM THE ASF?
>
> CODE DEVELOPED ELSEWHERE, RECEIVED UNDER A CATEGORY A LICENSE,
> INCORPORATED INTO APACHE PROJECTS, DISTRIBUTED BY APACHE, AND LICENSED
> TO DOWNSTREAM USERS UNDER ITS ORIGINAL LICENSE
>
> This code retains its external identity and is being incorporated into
> an Apache project for convenience, to avoid referencing an external
> repository whose contents are not under control of the project. The code
> retains its original license; and distribution as part of the Apache
> project explicitly calls out the license. The code retains its original
> header which refers to its own license in the distribution. If changes
> are made to the code while at Apache, the standard Apache header is
> prepended to each changed file. Additionally, any legally-required
> notices related to the code are published in the distribution.
>
> ---CUT---
>
> So here we fall into the "If changes are made to the code while at
> Apache" section. We prepend the file with the Apache header and include
> the original license as well.
>
> Since the original code is in a different language the source has been
> modified by necessity. I cannot find a section on software conversions.

Doesn't the code (here and there) reference papers?
In that case, I'd say that we use another library for checking
compliance but your work is a re-implementation ("from scratch")
of standard algorithms.

> It may be clearer to extract the relevant parts that have been adapted
> into a new source file. This can have the Apache header and then the
> original header from the original work. For the two items involved they
> can be extracted into separate files without impacting the original
> location.

IANAL, but IMHO that would still not count as two licences and
would not solve the issue (of which licence applies).
Also, if there was substantial adaptation work, it is certainly not
fair (to you) to misrepresent the code here as having been
developed there.

> I can raise this with the legal team if no-one knows any better.

As it is, "Commons Math" has been using your interpretation:

https://gitbox.apache.org/repos/asf?p=commons-math.git;a=blob;f=LICENSE.txt;h=d97b49ab0f0f1e6d2c991ac0496be35d8bc36ad8;hb=HEAD
However, I don't know whether matters of what goes where
(LICENCE vs NOTICE) has been clarified/changed since those
files were last edited.

Unless someone here can give a definite answer, it would be nice
to have the matter settled officially. ;-)

Thanks,
Gilles

>
> [1] http://apache.org/foundation/license-faq.html#provenance
>
>
> >
> >> Here it states that we can add the 3rd party license within the LICENSE
> >> file.
> >>
> >>
> >> This page describes 'WHAT ARE REQUIRED THIRD-PARTY NOTICES?' [2]
> >>
> >> "Apache releases should contain a copy of each license, usually
> >> contained in the LICENSE document. For many licenses this is a
> >> sufficient notice. For some licenses some additional notice is required.
>

Re: [commons-numbers] 02/08: Added Boost license for derived works in Complex.

2020-04-01 Thread Alex Herbert



On 01/04/2020 15:51, Gilles Sadowski wrote:

Le mer. 1 avr. 2020 à 16:27, Alex Herbert  a écrit :


On 01/04/2020 14:56, Gilles Sadowski wrote:

Hi.

Le mer. 1 avr. 2020 à 15:09, Alex Herbert  a écrit :

On 01/04/2020 13:10, Gilles Sadowski wrote:

Hello.

Le mer. 1 avr. 2020 à 12:58,  a écrit :

This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git

commit 5f0686220dfd6e94b922e076ef6809de3233cdc4
Author: aherbert 
AuthorDate: Wed Apr 1 09:31:16 2020 +0100

   Added Boost license for derived works in Complex.
---
LICENSE.txt| 44 
++
commons-numbers-complex/LICENSE.txt| 44 
++

My understanding of [1] is that these texts must go to the
   NOTICE
file(s).

I interpret this using the section on 'BUNDLING PERMISSIVELY-LICENSED
DEPENDENCIES'

AFAICT, adapting code from a (permissively-licenced) library is not a
"bundled dependency".

In my understanding, this pragraph applies instead:
---CUT---
Copyright notifications which have been relocated from source files
(rather than removed) must be preserved in NOTICE. However, elements
such as the copyright notifications embedded within BSD and MIT
licenses need not be duplicated in NOTICE -- it suffices to leave
those notices in their original locations.
---CUT---

I could be mistaken, but I think that the "Complex.java" source file
could not be distributed under two licences. If it were so, which one
does actually apply?

The legal docs are mainly targetted at inclusion of entire 3rd party
works. In this case we have snippets adapted from third party works
included into our code. So perhaps this applies [1]:

---CUT---

WHAT IS THE PROVENANCE OF SOURCE CODE FROM THE ASF?

CODE DEVELOPED ELSEWHERE, RECEIVED UNDER A CATEGORY A LICENSE,
INCORPORATED INTO APACHE PROJECTS, DISTRIBUTED BY APACHE, AND LICENSED
TO DOWNSTREAM USERS UNDER ITS ORIGINAL LICENSE

This code retains its external identity and is being incorporated into
an Apache project for convenience, to avoid referencing an external
repository whose contents are not under control of the project. The code
retains its original license; and distribution as part of the Apache
project explicitly calls out the license. The code retains its original
header which refers to its own license in the distribution. If changes
are made to the code while at Apache, the standard Apache header is
prepended to each changed file. Additionally, any legally-required
notices related to the code are published in the distribution.

---CUT---

So here we fall into the "If changes are made to the code while at
Apache" section. We prepend the file with the Apache header and include
the original license as well.

Since the original code is in a different language the source has been
modified by necessity. I cannot find a section on software conversions.

Doesn't the code (here and there) reference papers?
In that case, I'd say that we use another library for checking
compliance but your work is a re-implementation ("from scratch")
of standard algorithms.


The code adapted from Boost has two methods based on a paper and a third 
method based on unpublished work. So here Boost is the official source.


The code adapted from FDlibm has no paper.

Thus in both cases the original source appears to be the reference.




It may be clearer to extract the relevant parts that have been adapted
into a new source file. This can have the Apache header and then the
original header from the original work. For the two items involved they
can be extracted into separate files without impacting the original
location.

IANAL, but IMHO that would still not count as two licences and
would not solve the issue (of which licence applies).
Also, if there was substantial adaptation work, it is certainly not
fair (to you) to misrepresent the code here as having been
developed there.


I can raise this with the legal team if no-one knows any better.

As it is, "Commons Math" has been using your interpretation:
 
https://gitbox.apache.org/repos/asf?p=commons-math.git;a=blob;f=LICENSE.txt;h=d97b49ab0f0f1e6d2c991ac0496be35d8bc36ad8;hb=HEAD
However, I don't know whether matters of what goes where
(LICENCE vs NOTICE) has been clarified/changed since those
files were last edited.

Unless someone here can give a definite answer, it would be nice
to have the matter settled officially. ;-)


I'll wait to see if anyone else replies. Otherwise I'll contact legal 
for best practice advise.


As I understand it we have already made a best effort to indicate 
exactly what part of the work originated elsewhere. If you read the 
LICENSE and then the referenced code pointed out by the LICENSE it is 
clear what has derived from the 3rd party. Putting it into another file 
would certainly help. The exact header required in that separate file is 

Re: [commons-numbers] 02/08: Added Boost license for derived works in Complex.

2020-04-01 Thread Gilles Sadowski
Le mer. 1 avr. 2020 à 17:22, Alex Herbert  a écrit :
>
>
> On 01/04/2020 15:51, Gilles Sadowski wrote:
> > Le mer. 1 avr. 2020 à 16:27, Alex Herbert  a 
> > écrit :
> >>
> >> On 01/04/2020 14:56, Gilles Sadowski wrote:
> >>> Hi.
> >>>
> >>> Le mer. 1 avr. 2020 à 15:09, Alex Herbert  a 
> >>> écrit :
>  On 01/04/2020 13:10, Gilles Sadowski wrote:
> > Hello.
> >
> > Le mer. 1 avr. 2020 à 12:58,  a écrit :
> >> This is an automated email from the ASF dual-hosted git repository.
> >>
> >> aherbert pushed a commit to branch master
> >> in repository https://gitbox.apache.org/repos/asf/commons-numbers.git
> >>
> >> commit 5f0686220dfd6e94b922e076ef6809de3233cdc4
> >> Author: aherbert 
> >> AuthorDate: Wed Apr 1 09:31:16 2020 +0100
> >>
> >>Added Boost license for derived works in Complex.
> >> ---
> >> LICENSE.txt| 44 
> >> ++
> >> commons-numbers-complex/LICENSE.txt| 44 
> >> ++
> > My understanding of [1] is that these texts must go to the
> >NOTICE
> > file(s).
>  I interpret this using the section on 'BUNDLING PERMISSIVELY-LICENSED
>  DEPENDENCIES'
> >>> AFAICT, adapting code from a (permissively-licenced) library is not a
> >>> "bundled dependency".
> >>>
> >>> In my understanding, this pragraph applies instead:
> >>> ---CUT---
> >>> Copyright notifications which have been relocated from source files
> >>> (rather than removed) must be preserved in NOTICE. However, elements
> >>> such as the copyright notifications embedded within BSD and MIT
> >>> licenses need not be duplicated in NOTICE -- it suffices to leave
> >>> those notices in their original locations.
> >>> ---CUT---
> >>>
> >>> I could be mistaken, but I think that the "Complex.java" source file
> >>> could not be distributed under two licences. If it were so, which one
> >>> does actually apply?
> >> The legal docs are mainly targetted at inclusion of entire 3rd party
> >> works. In this case we have snippets adapted from third party works
> >> included into our code. So perhaps this applies [1]:
> >>
> >> ---CUT---
> >>
> >> WHAT IS THE PROVENANCE OF SOURCE CODE FROM THE ASF?
> >>
> >> CODE DEVELOPED ELSEWHERE, RECEIVED UNDER A CATEGORY A LICENSE,
> >> INCORPORATED INTO APACHE PROJECTS, DISTRIBUTED BY APACHE, AND LICENSED
> >> TO DOWNSTREAM USERS UNDER ITS ORIGINAL LICENSE
> >>
> >> This code retains its external identity and is being incorporated into
> >> an Apache project for convenience, to avoid referencing an external
> >> repository whose contents are not under control of the project. The code
> >> retains its original license; and distribution as part of the Apache
> >> project explicitly calls out the license. The code retains its original
> >> header which refers to its own license in the distribution. If changes
> >> are made to the code while at Apache, the standard Apache header is
> >> prepended to each changed file. Additionally, any legally-required
> >> notices related to the code are published in the distribution.
> >>
> >> ---CUT---
> >>
> >> So here we fall into the "If changes are made to the code while at
> >> Apache" section. We prepend the file with the Apache header and include
> >> the original license as well.
> >>
> >> Since the original code is in a different language the source has been
> >> modified by necessity. I cannot find a section on software conversions.
> > Doesn't the code (here and there) reference papers?
> > In that case, I'd say that we use another library for checking
> > compliance but your work is a re-implementation ("from scratch")
> > of standard algorithms.
>
> The code adapted from Boost has two methods based on a paper and a third
> method based on unpublished work. So here Boost is the official source.
>
> The code adapted from FDlibm has no paper.
>
> Thus in both cases the original source appears to be the reference.
>
> >
> >> It may be clearer to extract the relevant parts that have been adapted
> >> into a new source file. This can have the Apache header and then the
> >> original header from the original work. For the two items involved they
> >> can be extracted into separate files without impacting the original
> >> location.
> > IANAL, but IMHO that would still not count as two licences and
> > would not solve the issue (of which licence applies).
> > Also, if there was substantial adaptation work, it is certainly not
> > fair (to you) to misrepresent the code here as having been
> > developed there.
> >
> >> I can raise this with the legal team if no-one knows any better.
> > As it is, "Commons Math" has been using your interpretation:
> >  
> > https://gitbox.apache.org/repos/asf?p=commons-math.git;a=blob;f=LICENSE.txt;h=d97b49ab0f0f1e6d2c991ac0496be35d8bc36ad8;hb=HEAD
> > However, I don't know whether matters of what goes where
> > (LICENCE vs NOTICE) has been cla

Re: [commons-numbers] 02/08: Added Boost license for derived works in Complex.

2020-04-02 Thread Alex Herbert



On 01/04/2020 16:39, Gilles Sadowski wrote:



I'll wait to see if anyone else replies. Otherwise I'll contact legal
for best practice advise.

As I understand it we have already made a best effort to indicate
exactly what part of the work originated elsewhere. If you read the
LICENSE and then the referenced code pointed out by the LICENSE it is
clear what has derived from the 3rd party. Putting it into another file
would certainly help. The exact header required in that separate file is
what needs to be established.


Maybe you've misunderstood my reaction to the commit; I actually
wanted to avoid *overdoing* the acknowledgement, which as you
wrote, is not lacking.
In my view, the question is just where acknowledgment should go
when the permissive licence allows relicensing (provided the
original attribution notice is kept).
As a user, I'd find it quite confusing to read two different licence
texts within that LICENCE.  Does that even make sense from a
legal POV?
Common sense (IMO) would dictate that there one licence (in
LICENCE), but that downstream developers should take notice
(in NOTICE) that they might need to forward further some of the
attributions.

Regards,
Gilles


I have been reading past issues on the legal JIRA and browsed the mail 
archives. Most of the examples are about using existing code in entire 
files in the same language. I cannot find anything about code 
conversions with adaptions.


However this code is a derivative work so the original license terms 
must be followed.


I found an example of a project that incorporated a method from 
elsewhere [1] that was under a catgegory A license. This made a comment 
in the source that the method was under a different license to the rest 
of the file. The JIRA ticket has a link to the GitHub PR with the code. 
It contains this:


This method is based on `Python 2.7's fnmatch.translate`_.
The code in this method is licensed under
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2.

So I suggest:

- keep the derived work in the same location (do not move to a separate 
file)


- mark the method as licensed under the original license

- add the licenses to LICENSE and the copyright to NOTICE

This is essentially what has already been done but without the addition 
to NOTICE.


I've looked at the tomcat project for an example of how to use LICENSE 
and NOTICE. Here the various components that are derived works are 
identified and those components under a different license have the 
licences in the project LICENSE file. This would be an example of how to 
do it for the two licenses we are incorporating:




LICENSE

[standard text ...]


APACHE COMMONS NUMBERS SUBCOMPONENTS:

Apache Commons Numbers includes a number of subcomponents with separate
copyright notices and license terms. Your use of these subcomponents is 
subject

to the terms and conditions of the following licenses.


For the Commons Numbers Complex (commons-numbers-complex-x.x.x.jar) 
component:


  * Part of Complex is licensed under the Freely Distributable Math 
Library License

 and the Boost Software License

Freely Distributable Math Library License

Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.

Developed at SunSoft, a Sun Microsystems, Inc. business.
Permission to use, copy, modify, and distribute this
software is freely granted, provided that this notice
is preserved.


Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.





NOTICE

[standard text ...]


For portions of the Commons Numbers Complex component
The org.apache.commons.numbers.complex package contains derivative
work originating from the "Freely Distributable Math Library".
https://www.netlib.org/fdlibm/
Copyright 1993