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 might violate Pack200's license #1876

Closed
zebMcCorkle opened this Issue May 2, 2017 · 5 comments

Comments

Projects
None yet
2 participants
@zebMcCorkle

zebMcCorkle commented May 2, 2017

System Information

MultiMC version: All

Operating System: All

Summary of the issue or suggestion:

I kinda threw away most of the template since this is a legal issue, not a technical one, and the template made no sense whatsoever. Here's the relevant discussion from the Discord:

[11:45 AM] zebMcCorkle: Quick question since I'm on the go and can't check for myself: is Pack200 statically or dynamically linked?
[11:46 AM] zebMcCorkle: Or something else?
[11:46 AM] peterix: hmm... lemme check
[11:46 AM] peterix: add_library(unpack200 STATIC ${PACK200_SRC})
[11:46 AM] peterix: it's static
[11:47 AM] peterix: should that be dynamic?
[11:48 AM] peterix: I plan to get rid of it at some point and put it in a separate binary along with the other forge hacks
[11:49 AM] peterix: but making it shared is way easier
[11:49 AM] peterix: https://github.com/MultiMC/MultiMC5/blob/develop/libraries/pack200/CMakeLists.txt
[11:51 AM] zebMcCorkle: How does that play well with licensing? Not a lawyer, but I don't know if the classpath exception lets you statically link your Apache project to it
[11:51 AM] peterix: neither am I, but I agree that it's a bit weird
[11:52 AM] peterix: I'm honestly not sure about it
[11:53 AM] zebMcCorkle: Just read up on it, looks like it's probably fine if it's dynamically linked according to https://softwareengineering.stackexchange.com/a/326325
[11:55 AM] peterix: @zebMcCorkle if it's a problem, the way the library is built should be easy to change to shared. I can't really fix it retroactively in old releases tho
[11:56 AM] zebMcCorkle: I'll try to patch it in the Debian package, then pull request it to you.
[11:56 AM] peterix: it might need some extra work on windows, everywhere else it should be just replacing STATIC with SHARED on that one CMake line
[11:57 AM] peterix: should
[11:57 AM] Nikky: why is pack200 a issue there ? it seems to work fine on other distros ..
[11:58 AM] peterix: it's used in a mix of pack200 and xz
[11:59 AM] peterix: and has to handle bogus data
[11:59 AM] peterix: that is, failure is expected
[12:00 PM] peterix: essentially, forge has its own format
[12:01 PM] peterix: pack200 + xz + some magic on top that would make xz fail
[12:03 PM] peterix: it's one of those nasty things I'm trying to get rid of.

@peterix peterix added the multimc: bug label May 2, 2017

@peterix

This comment has been minimized.

@peterix

This comment has been minimized.

Member

peterix commented May 2, 2017

Question is: is making it a shared library sufficient?

I'll assume 'yes' for now.

@zebMcCorkle

This comment has been minimized.

zebMcCorkle commented May 2, 2017

That's what I'm doing right now for the Debian package, from my understanding the Classpath exception makes the GPL very similar to the LGPL except it's not C (or C++) centric.

peterix added a commit that referenced this issue May 4, 2017

@peterix

This comment has been minimized.

Member

peterix commented May 4, 2017

Alright. That should be done properly across platforms now.

I'll go through the other libs and do the same wherever necessary.

peterix added a commit that referenced this issue May 5, 2017

peterix added a commit that referenced this issue May 6, 2017

GH-1876 Fork and update quazip
* It is added as a new submodule: https://github.com/MultiMC/quazip/tree/multimc-1
* Its build system has been entirely replaced to remove the existing issues with it
* It now has working unit tests
* No more patches needed
* It has a static linking exception in its license now, but we use it shared anyway

peterix added a commit that referenced this issue May 6, 2017

GH-1876 replace ColumnResizer with a newer, BSD-3 licensed version
Also, keep licensing info only in one file.
The COPYING.md is now a resource and rendered to HTML in the About dialog.

peterix added a commit that referenced this issue May 22, 2017

GH-1876 Clarify license of GroupView
The LGPL code that came from KDE has been removed back in 2014.
It was replaced with a different implementation, made in
a separate repository.

See commits:
a17caba
b82eb58
@peterix

This comment has been minimized.

Member

peterix commented May 22, 2017

I believe everything is now cleared up. It took a bit of digging in old history.

@peterix peterix closed this May 22, 2017

peterix added a commit that referenced this issue Oct 25, 2017

GH-1876 Fork and update quazip
* It is added as a new submodule: https://github.com/MultiMC/quazip/tree/multimc-1
* Its build system has been entirely replaced to remove the existing issues with it
* It now has working unit tests
* No more patches needed
* It has a static linking exception in its license now, but we use it shared anyway
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment