Skip to content

Update 3rd party licenses #918

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

Merged
merged 1 commit into from
Aug 26, 2019
Merged

Update 3rd party licenses #918

merged 1 commit into from
Aug 26, 2019

Conversation

marchof
Copy link
Member

@marchof marchof commented Aug 9, 2019

Fixes #916
Fixes #539

@vlsi
Copy link

vlsi commented Aug 9, 2019

Even though it is an improvement, I would suggest a couple of more items:

  1. Please include Bundle-License manifest attribute to the published jars (see https://osgi.org/specification/osgi.core/7.0.0/framework.module.html#framework.module-bundle-license )

  2. You might want to remove top-level readme.html and/or about.html. Top-level files like that make it complicated to create uberjars (e.g. if different jars have about.html file, then it is complicated to "merge").
    It would simplify the life of consumers if you put license information inside META-INF/LICENSE file (that is put both JaCoCo and the embedded licenses)

@marchof
Copy link
Member Author

marchof commented Aug 9, 2019

@vlsi As our license is EPL we follow the Eclipse best practices, which is (or was, haven't checked) about.html in the root directory. I would like to do structural changes in a separate PR.

@vlsi
Copy link

vlsi commented Aug 9, 2019

ASM license looks up to date.
I wonder however how would you enforce the license is always up to date (ASM might change years or other bits of copyright notice over time).

EPL we follow the Eclipse best practices, which is (or was, haven't checked)

It would be great if you could find a link though.

@marchof
Copy link
Member Author

marchof commented Aug 9, 2019

@vlsi Do you have a proposal to keep included 3rd party licenses up to date? I don't think ASM includes their licenses in their maven artifacts.

@vlsi
Copy link

vlsi commented Aug 9, 2019

Do you have a proposal to keep included 3rd party licenses up to date?

My proposal is everybody should include license as META-INF/LICENSE file. Then the ones who bundle third-party software can properly take those licenses and build a combined one.

That is why I ask ASM developers to include "up-to-date" license into the distributed jar files: https://gitlab.ow2.org/asm/asm/issues/317881

Otherwise everybody else have to constantly monitor if ASM upgrade requires updating of the license texts. It is way simpler to automate if jar file declares Bundle-License attribute and a copy of the license is included as META-INF/LICENSE.

As you can see in the ASM issue, almost everybody gets "bundling ASM" wrong. It is really sad that ASM devs decline inclusion of the license into asm.jar files.

The point of me raising #916 was twofold:

  1. Make JaCoCo compliant with ASM license
  2. Talking JaCoCo developers into convincing ASM devs to publish license in the binary jars :)

@vlsi
Copy link

vlsi commented Aug 9, 2019

Do you have a proposal to keep included 3rd party licenses up to date?

@marchof I see you have the similar issue with args4j: jacoco-0.8.4.zip bundles args4j, however you do not reproduce the relevant copyright notice.

@marchof
Copy link
Member Author

marchof commented Aug 10, 2019

I see you have the similar issue with args4j: jacoco-0.8.4.zip bundles args4j, however you do not reproduce the relevant copyright notice.

@vlsi It is at the very bottom of ./doc/license.html

@vlsi
Copy link

vlsi commented Aug 10, 2019

It is at the very bottom of ./doc/license.html

@marchof , I'm afraid either the file is stale or something else.
I have unzipped jacoco-0.8.4.zip, and I fail to see even a single entry for Kawaguchi

Here's what I see in license.html

args4j

args4j is subject to the terms and conditions of the MIT license..

Here's a copyright notice from args4j license:

Copyright (c) 2013 Kohsuke Kawaguchi and other contributors

Not a single file from jacoco reproduces that notice => args4j license terms are violated.

@marchof marchof force-pushed the asm-license branch 2 times, most recently from 2da6c73 to 5daef5a Compare August 12, 2019 04:28
@marchof
Copy link
Member Author

marchof commented Aug 12, 2019

@vlsi Grrr, fixed. Thanks for double-checking! I clearly see why you thinks licenses should be pulled-in automatically.

@marchof marchof changed the title Update ASM License (#916) Update 3rd party licenses (#916) Aug 12, 2019
@marchof
Copy link
Member Author

marchof commented Aug 12, 2019

@Godin Can you please have a look?

@Godin Godin added this to the 0.8.5 milestone Aug 17, 2019
Copy link
Member

@Godin Godin left a comment

Choose a reason for hiding this comment

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

We embed org.jacoco.report into nodeps JARs of org.jacoc.cli and org.jacoco.ant, about.html in the first one contains Apache License for Google Code Prettify, but not the second ones.


Also

Copyright 2011 Mike Samuel et al

appeared in a later version of Google Code Prettify - googlearchive/code-prettify@f4940f9 , but I think that we should add it too.

@Godin Godin changed the title Update 3rd party licenses (#916) Update 3rd party licenses Aug 17, 2019
@marchof
Copy link
Member Author

marchof commented Aug 18, 2019

@Godin Regarding Google Code Prettify. I wonder whether we need to add everything from the COPYING file after Line 177? Or how exactly are you proposing to add it?

@Godin
Copy link
Member

Godin commented Aug 18, 2019

@marchof I'm proposing to add only

Copyright 2011 Mike Samuel et al

followed by full text of license.

@marchof
Copy link
Member Author

marchof commented Aug 19, 2019

@Godin Fixed missing Google Code Prettify licenses.

@Godin
Copy link
Member

Godin commented Aug 20, 2019

our license is EPL we follow the Eclipse best practices, which is (or was, haven't checked) about.html in the root directory

It would be great if you could find a link though

@vlsi I think that @marchof had in mind https://www.eclipse.org/legal/epl/about.php

And this page contains several interesting points:

About files are generally only applicable for content that that is delivered as Eclipse Platform Plug-ins and Fragments

IMO we are not delivering Eclipse Plug-ins, nor Fragments, also JaCoCo arrives into Eclipse via repackaging in Orbit that makes its own about.html files. Nevertheless I'm neutral regarding files themselves, but usage of term "plug-in" was already bothering me earlier - IMO we can simply use term "distribution" everywhere.

Name of first package including version number

I tend to agree that important to have version number, because different versions can be released under different licenses. I wouldn't try to automate insertion of version, because in the absence of automatic checks anyway one need to check licenses during updates of versions, and fortunately, we do not have many dependencies, and they are not so often updated.


@marchof also regarding latest commit in this PR

remove 3 leading blanks in license text to left align license block like in other licenses

I would prefer to not do any modifications of license text including any re-formatting, because IMO with original formatting it is easier for others to verify that file literally contains text of license in terms of strings/chars and license is not modified - for example one can simply do

curl https://www.apache.org/licenses/LICENSE-2.0.txt --output Apache-2.0.txt
diff org.jacoco.cli/about.html Apache-2.0.txt

and otherwise need to use diff --ignore-space-change.


To sum-up here is what I would like to propose to do:

  1. add versions
  2. add following comment in front of
    <asm.version>7.1</asm.version>
<!--
do not forget to update versions in about.html files
and check licenses when updating versions of
third-party dependencies
-->
<asm.version>7.1</asm.version>
  1. use original formatting of Apache-2.0 license
  2. replace term plug-in on distribution

@marchof as an excuse about pickiness and addition of more comments after initial review - IMO all of the above will allow to close long-standing #539 😉

@marchof
Copy link
Member Author

marchof commented Aug 22, 2019

@Godin I restored the original white spaces of the Apache license and propose to not invest more time in this (merge it as is or close it).

Instead I would like to pick-up @vlsi idea and check how we can include the licenses in a more machine processable format in ´META-INF/´ and also partly automate this in our build instead of manually maintain redundant license information all over the place.

- Remove stale version references to ASM
- Add license to cli where ASM is shaded into the nopeds JAR
- Reproduce correct args4j license
- Add Google Code Prettify license to shaded artifacts
- Keep license texts at a centralized place
- Remove term "plug-in" from about files
@marchof
Copy link
Member Author

marchof commented Aug 25, 2019

@Godin I think I now addressed all your review comments. Can you please re-review?

I just noticed that we have more license issues in test modules. But I would prefer to discuss/fix them separately.

@Godin
Copy link
Member

Godin commented Aug 25, 2019

I just noticed that we have more license issues in test modules. But I would prefer to discuss/fix them separately.

Not sure to understand what do you mean, because we don't distribute JARs of test modules 😉 so I'm fine with postponing discussion about them.

I think I now addressed all your review comments.

Seems so 👍 I'll merge in few minutes.

Are you ok to close #539 together with this?

@marchof
Copy link
Member Author

marchof commented Aug 25, 2019

Are you ok to close #539 together with this?

Sure!

@Godin Godin merged commit 5d7c476 into master Aug 26, 2019
@Godin Godin deleted the asm-license branch August 26, 2019 16:41
@jacoco jacoco locked as resolved and limited conversation to collaborators Oct 11, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Please comply with ASM license when re-distributing ASM Consistent license infos
3 participants