-
-
Notifications
You must be signed in to change notification settings - Fork 15.5k
multimc: rectify meta.license #110539
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
multimc: rectify meta.license #110539
Conversation
Huh... I saw your document and you do point up some interesting things. Yeah, I don't think we have a good standard nowadays to point up licenses when the package itself is a monolith that includes its own dependencies in it. Now that I think of it, some other packages probably have a similar issue, like Babashka (since we distribute the uberjar, not compile from source). But also, IANAL, if all dependencies are compatible with the license of the project itself so the whole project ends up with the license of the most restrictive license. If some of the licenses is incompatible, well, this is a problem of the project and theoretically you can't use it in a legal way. From the list of licenses you put:
LGPL should be compatible with GPL, and or later should be compatible with later versions, so for the whole GPL part The Apache 2.0 and GPL 3.0 license seems to be compatible (https://www.apache.org/licenses/GPL-compatibility.html), but in one way only. That is, GPL 3.0. So the whole result as a whole should be also licensed as GPL 3.0 I think, and in the end I think the license is But as I said, IANAL. |
Thank you! By all means, everybody criticize my proposal I invite you to.
I respectfully disagree because my understanding of the rules when it comes to combined works in this context is that you can link (for some definition of link) a library under LGPL (respectively classpath exception'd) with a program, and that program is allowed to be anything while the library stays protected. In fact that's the reason the LGPL exists as opposed to the GPL. So different pieces of a project can be covered by different copyleft and non-copyleft licenses. In other words and using a source that's not a court but more authoritative than me:
And to me it seems like the GPL'd pieces of the project (which I enumerated in the doc) are properly isolated from the rest of the project enough so that the combined work does not need to be GPL'd thanks to the linking exceptions. It could be GPL'd since Apache is non-copyleft and since your citation seems to indicate that, but it doesn't need to. This is also the apparent position of upstream, so if anything we should reflect that.
No disagreement there. OFL covers a font-icon set hybrid according to upstream so again, each piece its license.
same |
This is their COPYING file https://github.com/MultiMC/MultiMC5/blob/develop/COPYING.md. Please take a look at this instead of doing it yourself. If it is not correct please contact upstream and ask them for clarification instead of assuming. |
91af9ac
to
3982974
Compare
I redid the PR while sticking strictly to COPYING.md. I don't believe I need clarification from upstream. |
I don't want to start to much bikesheeding but we should add a comment here I think. Maybe with a link to the license file? So many licenses look suspicious and if someone looks at this in the future they have a point of reference. |
3982974
to
4d200a3
Compare
That's reasonable. Although this raises the issue that the link is to the develop branch, not the current release. On that note, the current release has a gpl2classpath component in it (pack200) but the next one won't have any. (also if #110439 goes in) |
pkgs/games/multimc/default.nix
Outdated
@@ -33,7 +33,16 @@ in mkDerivation rec { | |||
Allows you to have multiple, separate instances of Minecraft (each with their own mods, texture packs, saves, etc) and helps you manage them and their associated options with a simple interface. | |||
''; | |||
platforms = platforms.linux; | |||
license = licenses.lgpl21Plus; | |||
license = with licenses; [ | |||
# Per https://github.com/MultiMC/MultiMC5/blob/develop/COPYING.md |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# Per https://github.com/MultiMC/MultiMC5/blob/develop/COPYING.md | |
# Per COPYING.md in source tree |
could be the comment
# Per https://github.com/MultiMC/MultiMC5/blob/develop/COPYING.md | ||
asl20 | ||
lgpl21Plus | ||
lgpl3Plus |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgpl3Plus | |
lgpl3Plus | |
gpl2Classpath |
As I mentioned, true until the next version bump
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also this is a claim based on the COPYING file for that version not on my own analysis.
Not authoritative source, but AFAIK linking GPL with LGPL turns everything in GPL: https://softwareengineering.stackexchange.com/a/342158
Huh... Ok, this kinda makes sense. Traditionally GPL code would infect LGPL code, but since the GPL part have the linking exception maybe this isn't true. I still think that LGPL parts would needs to be licensed as a GPL with linking exception, but maybe I am reading it too much. |
4d200a3
to
91f82e5
Compare
Rebased and adapted to current MMC version in master. |
I marked this as stale due to inactivity. → More info |
Motivation for this change
Metadata should be best-effort accurate. The license field for multimc does not meet that standard imho.
Things done
Look at the derivation's copyright notice to figure out what's in it in terms of licenses. Write an explainer.
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)