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 Sun Microsystems, Inc.

The org.apache.commons.numbers.complex package contains derivative
work originating from the "Boost C++ Libraries" <boost/math/complex>.
https://www.boost.org/
Copyright 2005 John Maddock 2005.

----

So a small change to what we have already done. Anyone reading the notice will find out enough information to be able to track down what part of the code is not under the APL.

Thoughts on this?

Alex


[1] https://issues.apache.org/jira/browse/LEGAL-417



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to