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

Adding a license #94

Closed
po5 opened this issue May 15, 2023 · 19 comments
Closed

Adding a license #94

po5 opened this issue May 15, 2023 · 19 comments

Comments

@po5
Copy link
Owner

po5 commented May 15, 2023

I haven't had anyone request this, but it makes sense to have one.
Let's do it properly and get everyone's approval for GPLv3. 👍

@christoph-heinrich @natural-harmonia-gropius @qwerty12 @hooke007 @leiserfg @Hill-98 @dyphire

@hooke007
Copy link
Contributor

I have no objection.

@N-R-K
Copy link
Contributor

N-R-K commented May 15, 2023

Let's do it properly and get everyone's approval for GPLv3.

Doesn't that mean any (UI) script that uses thumbfast will need to be GPL-ed too? Not an issue for me, but perhaps you might also want to consider MPL (FAQ) which is still copyleft, but unlike GPL it isn't "viral".

@po5
Copy link
Owner Author

po5 commented May 15, 2023

I hadn't considered that, seems like there are conflicting opinions on this issue online.
Seems like MPL would have the same issue?

1.10. “Modifications” means any of the following: a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software

The license requires that Modifications (as defined in Section 1.10 of the license) must be licensed under the MPL and made available to anyone to whom you distribute the Source Code. However, new files containing no MPL-licensed code are not Modifications, and therefore do not need to be distributed under the terms of the MPL, even if you create a Larger Work

Since UI scripts are typically single files and it's a large burden otherwise, that'd be an issue.

The obvious solution is explicitly licensing the client examples under CC0.
No uncertainties, and the main software can use any license.

@N-R-K
Copy link
Contributor

N-R-K commented May 15, 2023

Seems like MPL would have the same issue?

MPL applies to only the files that are under MPL. So for example, I can even bundle an MPL file with my proprietary software:

mpl.c
proprietary.c

In this case, only modification to mpl.c would be subject to the copyleft, not proprietary.c. This is not the case for GPL, as it's "viral" (i,e your entire project needs to be GPL-ed if you use a GPL component).

@hooke007
Copy link
Contributor

Doesn't that mean any (UI) script that uses thumbfast will need to be GPL-ed too?

Why other scripts using thumbfast's "API" need to be GPL-ed?

@N-R-K
Copy link
Contributor

N-R-K commented May 15, 2023

Doesn't that mean any (UI) script that uses thumbfast will need to be GPL-ed too?

Why other scripts using thumbfast's "API" need to be GPL-ed?

See: https://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL

@hooke007
Copy link
Contributor

Is thumbfast a library?

@N-R-K
Copy link
Contributor

N-R-K commented May 15, 2023

Is thumbfast a library?

It certainly is in the way we traditionally use that word. I.e it provides an API for actual application (UI scripts in this case) to do things as opposed to being an end user application by itself.

The gpl faq talks about dynamic/static linking, which isn't relavant for lua. But AFAIKU the concept still applies.

But of course, I'm not a lawyer, so if thumbfast switches to GPL, I'll just err on the safer side and switch mfpbar to GPL as well (it's currently AGPL, which isn't compatible with GPL AFAIK since it adds additional restrictions EDIT: GPLv3 is compatible with AGPL (but not GPLv2 AFAIK)).

But if it uses MPL, then I won't have to worry about it since I do not modify the thumbfast.lua file (and MPL applies file wise, not entire project wise like GPL).

@hooke007
Copy link
Contributor

hooke007 commented May 15, 2023

I think po5 should have the final say on how it is positioned and obviously it must be clear. The api it provides should not 'pollute' other scripts (or even those frontends which may use thumbfast) if possible.

Ref: uosc is using gplv3, and it provides the api of menu and translation which is used by many other scripts...

@Hill-98
Copy link
Contributor

Hill-98 commented May 15, 2023

If thumbfast is a library and uses the GPL, the scripts that use it don't follow the GPL, because they don't bundle and distribute it, thumbfast is installed manually by the user as an optional feature, and the way other scripts use thumbfast can't be called For "Link" or API.

If you write a Bash Shell script and run a program that uses the GPL, is your Bash Shell script also GPL? lol...

@AndersonTorres
Copy link

Why GPL3+ to begin with?

@AndersonTorres
Copy link

If you write a Bash Shell script and run a program that uses the GPL, is your Bash Shell script also GPL? lol...

It already happens on compiled languages. Aegisub source code is BSD but it links against GPL libraries, therefore the runtime binary is GPL.

@christoph-heinrich
Copy link
Contributor

it links against GPL libraries, therefore the runtime binary is GPL.

Linking something and calling an executable are very different. As long as other scripts only depend on thumbfast and not ship with it, their license wont be affected by the license of thumbfast afaik. But you know, not a lawyer and all that...

I'm fine with making the license GPLv3.

@Hill-98
Copy link
Contributor

Hill-98 commented May 16, 2023

@AndersonTorres Other scripts do not depend on thumbfast, because it just accepts messages, and the provider of this message can be any script.

@po5
Copy link
Owner Author

po5 commented May 16, 2023

the provider of this message can be any script

Yup, see jellyfin-mpv-shim and marzzzello/mpv_thumbnail_script#40 this is why the API usage example should just be CC0.

@jalil-salame
Copy link

Did discussion end on this?

Just ran into issues installing thumbfast on NixOS because it needs you to allow "unfree" packages (this includes packages without a license), not a blocker, just annoying, but it seems to be a problem with MPV scripts in general (a lot lack licenses).

@po5 po5 closed this as completed in 6f1d92d Jun 4, 2023
@christoph-heinrich
Copy link
Contributor

I'm somewhat worried that you're going to get yourself in legal trouble if your playing so loose with license stuff.

  1. Not everyone here gave their consent for the MPL-2.0
  2. I've seen some GPLv2 code in your GPLv3 projects, however they are not compatible

I'm fine with MPL-2.0, and I'm also fine with you using my code (I would appreciate asking though, particularly when the licenses are not compatible). I'm just worried that you might end up stepping on the wrong persons foot at some point, that's all.

@po5
Copy link
Owner Author

po5 commented Jul 26, 2023

If someone wants to ruin the fun, I'm sure there will be more people mad at that person than me. None of us are getting paid and do it for the love of it. No lawyers are involved, or we wouldn't get anything done.
If there actually is code in my projects that violates licences please submit an issue in the appropriate repo, a quick glance at my repos only shows references to "GPLv2 or later", GPLv3 or WTFPL projects.

@christoph-heinrich
Copy link
Contributor

Like I said I'm fine with you using it, so I won't open an issue about it and there is no need to change anything because of me.
memo uses parts of quality-menu, which is GPLv2 only. I only noticed it when looking into that uosc menu bug and I didn't look further because I don't really care, I just thought I should say something before you accidentally find yourself in hot water.

BTW I never thought I had any use for a "recently played" script, but it turned out to actually be useful 😄. Thanks for your work (not just memo but also other projects).

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

No branches or pull requests

7 participants