Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KAFKA-12602: Fix LICENSE file #10474

Merged
merged 5 commits into from
Apr 6, 2021
Merged

Conversation

vvcephei
Copy link
Contributor

@vvcephei vvcephei commented Apr 5, 2021

Fixes the LICENSE files that we ship with our releases:

  • the source-distribution license included wrong and unnecessary dependencies
  • the binary-distribution license was missing most of our actual dependencies

Committer Checklist (excluded from commit message)

  • Verify design and implementation
  • Verify test coverage and CI build status
  • Verify documentation (including upgrade notes)

@vvcephei vvcephei force-pushed the kafka-12602-add-licenses branch from 8ab5c77 to 519434f Compare April 5, 2021 03:55
Copy link
Contributor Author

@vvcephei vvcephei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi all,

This is in response to the issues raised in the mailing list:
https://lists.apache.org/thread.html/r2df54c11c10d3d38443054998bc7dd92d34362641733c2fb7c579b50%40%3Cdev.kafka.apache.org%3E

I'm way out of my league here, but someone has got to take a stab at fixing this situation. Please make no assumption that I know what I'm doing and let me know if anything seems wrong.

A few specific questions:

  • Note my questions regarding the copyright line in BSD and MIT... It doesn't seem necessary to include copyright notices with a binary dependency, since (AFAIK) copyright applies to the text of the source code, not the compiled program code. But that's based on a very sketchy understanding of the legal foundations here.
  • Many of our dependencies list multiple licenses. I think this means we can just pick which one we want to use. Is that right? I preferred to use Apache2 where available, and otherwise to minimize the number of new licenses that we pull in (under the assumption that that will help our users analyze their legal standing).

In addition to those specific questions, I hope at least one reviewer can double-check the dependencies and their licenses to make sure I didn't make any typos.

Also, we should include some automation as well, at least to check that we keep this list updated when we add/update dependencies. I've sunk a ton of time into this, though, so I'll just file a ticket to do that for the next release(s).

@@ -200,350 +200,3 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

------------------------------------------------------------------------------------
This distribution has a binary dependency on jersey, which is available under the EPLv2
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't belong in the source-distribution license.

You may add additional accurate notices of copyright ownership.

------------------------------------------------------------------------------------
This distribution has a binary dependency on zstd, which is available under the BSD 3-Clause License as described below.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a binary dependency.

SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

------------------------------------------------------------------------------------
This distribution has a binary dependency on zstd-jni, which is available under the BSD 2-Clause License
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't belong in the source-distribution license.


You may add additional accurate notices of copyright ownership.

-------------------------------------------------------------------------------
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything below this line is correct, to the best of my knowledge. I would greatly appreciate anyone double-checking me here.


---------------------------------------
Eclipse Distribution License - v 1.0
see: licenses/eclipse-distribution-license-1.0
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These files are also included in this PR.

@@ -967,7 +967,7 @@ project(':core') {
compression = Compression.GZIP
from(project.file("$rootDir/bin")) { into "bin/" }
from(project.file("$rootDir/config")) { into "config/" }
from "$rootDir/LICENSE"
from "$rootDir/LICENSE-binary" rename {String filename -> filename.replace("-binary", "")}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I verified that we get the binary license bundled as LICENSE when we run ./gradlewAll releaseTarGz

@@ -0,0 +1,8 @@
Copyright <YEAR> <COPYRIGHT HOLDER>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like we might have to bring in a complete copy of this license for each dependency, since their copyright lines are obviously different. Is that right? It seems a bit excessive.

I took a look at Hadoop, and it's not what they do, but that's no guarantee of correctness.

@@ -0,0 +1,9 @@
Copyright <YEAR> <COPYRIGHT HOLDER>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto here.

licenses/MIT Outdated
@@ -0,0 +1,7 @@
Copyright <YEAR> <COPYRIGHT HOLDER>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto here as well.

@ijuma ijuma requested a review from ewencp April 5, 2021 15:12
@vvcephei
Copy link
Contributor Author

vvcephei commented Apr 5, 2021

Hey @ableegoldman and @mimaison ,

Since you're also both blocked on this, would you mind giving these changes a double-check?

@@ -0,0 +1,14 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😂

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I'm a little embarrassed to have this in our dependencies. ¯_(ツ)_/¯

Copy link
Member

@ableegoldman ableegoldman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To the extent of my understanding, this LGTM. I've seen some places assert that you need the exact licensing text word-for-word of each dependency, while others indicate that it's fine to combine common licensing with slight textual differences into a single one, provided it doesn't lose any information in the original licenses. But it certainly doesn't hurt to list each copy, better safe than sorry I guess.

Thanks again for all your help in sorting this out

Copy link
Contributor

@ewencp ewencp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Note my questions regarding the copyright line in BSD and MIT... It doesn't seem necessary to include copyright notices with a binary dependency, since (AFAIK) copyright applies to the text of the source code, not the compiled program code. But that's based on a very sketchy understanding of the legal foundations here.

BSD specifically calls out preserving copyright in both source and binary forms. Binaries are copyrightable, otherwise proprietary software wouldn't be protected.

  • Many of our dependencies list multiple licenses. I think this means we can just pick which one we want to use. Is that right? I preferred to use Apache2 where available, and otherwise to minimize the number of new licenses that we pull in (under the assumption that that will help our users analyze their legal standing).

For dual licensed files, yes, we can choose which license to use (which can e.g. come into play re: ability of Apache to redistribute it). As long as they are acceptable licenses for Apache, it also doesn't hurt to mention both for the sake of downstream user's freedom to choose a license that works best for them.

LICENSE-binary Outdated
limitations under the License.

------------------------------------------------------------------------------------
This distribution has a binary dependency on jersey, which is available under the EPLv2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jersey is EPL or GPL2+classpath, you might be able to simplify this with GPL2+classpath (which is basically LGPL just from before LGPL existed). Also, what is the difference between this, where we put the license here vs everything below?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oy, I meant to strip off these extra license texts from the bottom of the Apache2 license. I must have gotten a couple and missed the rest.

@vvcephei vvcephei merged commit ff77864 into apache:trunk Apr 6, 2021
@vvcephei vvcephei deleted the kafka-12602-add-licenses branch April 6, 2021 20:08
vvcephei added a commit that referenced this pull request Apr 6, 2021
Fixes the LICENSE files that we ship with our releases:
* the source-distribution license included wrong and unnecessary dependencies
* the binary-distribution license was missing most of our actual dependencies

Reviewers: A. Sophie Blee-Goldman <ableegoldman@apache.org>, Ewen Cheslack-Postava <ewencp@apache.org>, Justin Mclean <jmclean@apache.org>
ableegoldman pushed a commit that referenced this pull request Apr 8, 2021
Fixes the LICENSE files that we ship with our releases:
* the source-distribution license included wrong and unnecessary dependencies
* the binary-distribution license was missing most of our actual dependencies

Reviewers: A. Sophie Blee-Goldman <ableegoldman@apache.org>, Ewen Cheslack-Postava <ewencp@apache.org>, Justin Mclean <jmclean@apache.org>
mimaison pushed a commit that referenced this pull request Apr 8, 2021
Fixes the LICENSE files that we ship with our releases:
* the source-distribution license included wrong and unnecessary dependencies
* the binary-distribution license was missing most of our actual dependencies

Reviewers: A. Sophie Blee-Goldman <ableegoldman@apache.org>, Ewen Cheslack-Postava <ewencp@apache.org>, Justin Mclean <jmclean@apache.org>
@jlprat jlprat mentioned this pull request May 14, 2021
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants