snestracker icon indicating copy to clipboard operation
snestracker copied to clipboard

Possible licensing woes

Open OPNA2608 opened this issue 4 years ago • 6 comments

I've taken a look at the dependencies, and noticed some licensing worries I wanted to mention to you. Mind you though, IANAL myself.

wla-dx

WLA-DX is afaict licensed as GPL2-only. Unlike jdksmidi which uses the "or later" wording in its source files, WLA-DX doesn't. I'm unsure whether or not a git submodule constitutes as an inclusion of the project into this project's tree, but if it is it'd be a violation of the licensing terms.

A workaround to this might be to remove the submodule and just try to run it from PATH, or relicensing snestracker as GPL2-only.

pcx2snes

This project doesn't seem to have any license at all attached to it. Technically, this makes it pretty much unfree, since it's not your own code. You'd have to seek clarification from the author Neviksti himself on what license his project falls under and somehow make these licensing terms clear in the project itself. Until then including it in your project seems like another licensing violation to me.

A workaround might again be to remove the submodule and just assume it's available in the PATH.

unrar

The inclusion of unrar makes me very worried. It's classified all-around as a non-free and GPL-incompatible project, the fact that you build it, ship it as part of a finished build and seemingly depend on it at runtime sounds like a severe licensing problem to me.

I'd recommend dropping unrar completely and only using 7zDec (also making sure to build 7z without the unrar components). I think detecting the presence of unrar at runtime and calling out to it via the system shell could be okay as well, if cumbersome.

Again though, IANAL.

OPNA2608 avatar Jun 12 '20 14:06 OPNA2608

First, thanks for putting time and effort into snestracker. I appreciate it!

Licensing has been a bit of a daunting task, personally.

wla-dx ✅ (EDIT: filed issue on vhelin/wla-dx)

After a brisk walk through their source, it would seem all files reference the main LICENSE file, whose stanza near the bottom has the "or later" string which would suggest it is GPL3 compatible.

pcx2snes ✅ (emailed Neviksti / Kevin)

Although I recall corresponding with Neviksti over email a long time ago (12+ years?), I did not think to ask him to open source it. ~~I'll shoot him an email about it!~~ I sent him an email :)

Either way, it turns out that it is not necessary to package pcx2snes in snestracker. It's not purposefully being used at the moment, but will export visual assets for Demo Roms that run your custom music.

I feel Neviksti might say "You're still using that?" 😃

unrar ✅ (will phase out / replace)

First let me mention why snestracker even uses unrar (and 7zDec). For whatever reason, packs of spc files are predominantly packaged in these formats. I support them only for convenience.

unrarlib v0.4.0

It is possible to become compatible with GPL when unrar is switched to unrarlib v0.4.0, as mentioned in http://www.unrarlib.org/faq.html (see license). I also checked that its GPL includes the "or later" string to be compatible with GPL3.

This switch would bring the functionality directly into snestracker, rather than having to call an external program.

I'll file an issue about migrating to this library. I'll monitor it for some time and if nothing, I will have to decide whether to implement it myself, remove unrar altogether, or relicense snestracker.

(IANAL probably means I Am Not A Lawyer)

bazz1tv avatar Jun 13 '20 04:06 bazz1tv

Based on some discourse in #snestracker it seems I may have misread the wla-dx license. For now I will relicense my fork of wla-dx as GPL3.

I have also submitted my bug fixes and enhancements upstream tonight so that ville/wla-dx may enjoy them.

I would rather not hassle them about their license. But I may just make them aware of the situation and if they have any guidance or suggestions.

bazz1tv avatar Jun 13 '20 05:06 bazz1tv

Bump, any progress on this? The unrar and wla-dx licenses (and to a minor degree pcx2snes missing any licensing statement) are still the biggest blocker for including it in any meaningful package manager, see https://github.com/NixOS/nixpkgs/issues/81815#issuecomment-667345267.


For now I will relicense my fork of wla-dx as GPL3.

You can't do that. Your fork would still contain code submissions under the original license, which is GPL2-Only and does not permit being relicensed to a later GPL version.

OPNA2608 avatar Sep 29 '20 08:09 OPNA2608

Hi OPNA, there has not been any progress on this, I am sorry to say! Please continue to understand that I value your desire to package SNES Tracker, and your continuing participation in the SNES Tracker community.

Here's what I'm thinking: Unrar being packaged internally to the software is a definitely issue. So that needs to be addressed by me. Barring a complete overhaul of the build system, I can either rid unrar altogether, or conditionally do something or other if it is present or detected, or built with some sort of compile-time definition.

WLA-DX is not actually packaged internally. It is a submodule, and you have to actually run a command to fetch that software. So, what you could do, OPNA, is have (if you don't already), a wla-dx package, that the SNES Tracker one depends on. And yeah, let me know if that's an issue for you or if that would help. Once again, WLA-DX is only needed at build time for SNES Tracker. It is not currently a run time dependency. The only problem I have with removing it completely is that I may need to put it back in as a runtime dependency based on the how the program progresses.

Regarding pcx2snes, I still have not received word from Kevin Neviksti (the author), but I believe the software was offered public domain. At any rate, it is not yet required that this software be shipped with SNES Tracker. SNES Tracker is still in its initial development stages in my opinion, and things that need cleaning, this being one of them. However, when/if demo ROMS are exported from the tracker, this might want to be included. Just thoughts for now.

I'm doing the best I can to balance the juggling act, of improving the software, and getting it to a point that satisfies you. I'm not sure if SNES Tracker is truly where it needs to be for existing in package managers, but that's just my opinion. I'll definitely set some time aside to work these details out. Sorry for the long message, buddy.

bazz1tv avatar Oct 15 '20 02:10 bazz1tv

I got a reply from Neviksti, the pcx2snes author, allowing me license it appropriately.

Screenshot_20201031-015641

(Hope you're doing well too, Kevin! :)

bazz1tv avatar Oct 31 '20 20:10 bazz1tv

I'm unsure whether or not a git submodule constitutes as an inclusion of the project into this project's tree

the submodule itself doesn't ship the remote code, but any builds (or the .zip download github offers, though the question there is whether that's your or github's liability, since afaik you can't just turn that off in a project) would.

nonchip avatar Nov 10 '20 08:11 nonchip