mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
28.58k stars 2.92k forks source link

LGPL relicensing #2033

Closed ghost closed 5 years ago

ghost commented 9 years ago

FAQ

See also VLC's LGPL relicensing FAQ.

Reasons

The reason is mostly that the player got turned into a library (libmpv), and the associated problems of a GPL lib for a library user. Here's a detailed list of reasons why this is desirable, alternatives, and some discussion:

We will ask mpv, MPlayer, and mplayer2 developers for their agreement. We will probably skip contributors who contributed documentation or website changes only (MPlayer has extensive documentation in multiple languages, all in the main code repository). We will also skip developers who have contributed only to now-removed code (such as vo_svga.c or libswscale).

We will also ask people who have contributed single patches a long time ago, as long as their code was used as base for further developments. It's important and appreciated that these people give their agreement as well.

So far I think it's ok to relicense a source file if:

Further, some projects which have gone through relicensing claim there is a threshold above which relicensing can be done without the rest of the developers agreeing:

Relicensing plan

The actual relicensing will be done as follows:

Other arguments pro-LGPL: https://github.com/mpv-player/mpv/issues/2033#issuecomment-249429195 https://github.com/mpv-player/mpv/issues/2033#issuecomment-249426616

MPlayer developers status: https://github.com/mpv-player/mpv/issues/2033#issuecomment-249416217

MPlayer thread: http://lists-archives.com/mplayer-dev-eng/39326-relicensing-mplayer-or-parts-of-it-to-lgpl.html

VLC LGPL switch reasons & FAQ (yes, they mostly apply to us too): https://www.videolan.org/press/lgpl.html

VLC reasons against GPLv3 (also mostly applies to us): http://www.videolan.org/press/2007-1.html

d3xter commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later

markun commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later

czarkoff commented 9 years ago

I waive my copyright on all my contributions to mpv, mplayer2 or MPlayer.

ghost commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later.

mathstuf commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later.

ainstushar commented 9 years ago

xI agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later.

AoD314 commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later

CrimsonVoid commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later

rcombs commented 9 years ago

@czarkoff Love the sentiment, but not all jurisdictions have a concept of waiving copyright; would you mind explicitly stating that you agree to the relicensing? You could mention also allowing a CC0 license if you prefer something as close to public-domain as you can get while being jurisdiction-portable.

czarkoff commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later

Hereby I explicitly permit to use my contributions to or whatever copyrightable assets I possess in mpv, mplayer2 and MPlayer under CC0 license 1.0 universal. I give an explicit and irrevocable permission to other copyright holders to relicense aforementioned assets in the future without asking my concent or notifying me of such change.

Yomi0 commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later.

... I'm pretty sure I only corrected a misspelling in a comment somewhere.

jozzse commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later.

ghost commented 9 years ago

... I'm pretty sure I only corrected a misspelling in a comment somewhere.

True, but it's simpler to just get permission from everyone involved, instead of deciding whether to get permission on a case-by-case basis.

masand commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2 or later

giselher commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later

hsimons commented 9 years ago

108/120 = 90%

ghost commented 9 years ago

Thanks for the summary. (The MPlayer part is going to be much harder...)

ghost commented 9 years ago

As someone told me, "ghost" is not a real user, but is used by github to replace accounts that have been deleted. bugmen0t is apparently a login on bugmenot.com.

hsimons commented 9 years ago

I suggest you add to the project README that all new code commuted from now is under the LGPLv2.1, so that you don't have to get new developers' consent later on. Also, the code contributed by the deleted account (now called ghost) will have to be rewritten, because his account is now deleted and even if the author wanted to agree with this re-licensing, there is no way for him to prove that he was the owner of the deleted account. Same for the bugmen0t guy.

ghost commented 9 years ago

Good idea. I've added some wording.

Also, the code contributed by the deleted account (now called ghost) will have to be rewritten, because his account is now deleted and even if the author wanted to agree with this re-licensing, there is no way for him to prove that he was the owner of the deleted account. Same for the bugmen0t guy.

Yep, this code will either have to be removed, or remain GPL forever. This will probably happen a lot with MPlayer code.

Most of bugmen0t's changes affect ao_oss or the build system, so we don't have to care much. (If it gets serious, we could add a --enable-lgpl configure option, which would not compile ao_oss.c.)

deu commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later

richardpl commented 9 years ago

I agree that my past contributions to mpv, mplayer2 or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later.

brunogm0 commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later

jhawthorn commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later

jubalh commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2 or later.

onceking commented 9 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2 or later.

theshortcut commented 9 years ago

I agree that my past contributions to mpv, mplayer2 or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later.

jmglogow commented 9 years ago

I agree that my past contributions to mpv, mplayer2 or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later.

ghost commented 9 years ago

@bugmen0t: so are you a real person, or was your login available on bugmenot.com?

mathstuf commented 9 years ago

http://bugmenot.com/view/github.com

ghost commented 9 years ago

http://bugmenot.com/view/github.com

Yeah, but we don't know if this worked at some point. Now that he actually posted again, it seems somewhat unlikely that he isn't a single person, but I'd still like confirmation.

bugmen0t commented 9 years ago

This is a shared account. I'm not the original author of that code. I don't know how this works legaly to relicensing. Better rewrite this part of the code. I will remove the relicensibg agreement message. Sorry.

bugmen0t commented 9 years ago

I think the original author doesn't use this github account anymore, it' old. The login and pass used to be hosted on bugmenot as a public account. It's on bugmenot.com/view/gist.com now.

hsimons commented 9 years ago

Should I remove or keep bugmen0t on the list?

Jessidhia commented 9 years ago

I agree that my past GPL contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later, or, at your option, MIT License/BSD-2 clause License.

I don't see the need to relicense the 2-clause BSD code (e.g. Parse::Matroska) to LGPL, as it's more permissive than LGPL, but I could be convinced.

Hopefully I didn't miss anything above.

ghost commented 9 years ago

I don't see the need to relicense the 2-clause BSD code (e.g. Parse::Matroska) to LGPL, as it's more permissive than LGPL, but I could be convinced.

I'm only aiming to relicense GPL code. LGPL compatible licenses are ok.

bugmen0t commented 8 years ago

Hey, I just heard about this.

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later.

lucy commented 8 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2 or later.

ghost commented 8 years ago

@bugmen0t: sine you are a shared account, it's impossible to know what person or pull request you represent, and thus relicensing is impossible. We will probably have to remove your code (and that of your co-users) if it gets into the way of relicensing.

rrooij commented 8 years ago

@wm4 Aren't licensing issues irrelevant when someome has not a single identity? I don't know how this works but it seems madness to rework all changes that it made because a throwaway account was used.

Dolphin had similar issues as far as I can remember. I'm not sure, but not everyone had to agree with the license change for it to successfully happen.

grigorig commented 8 years ago

Another thing to consider is the threshold of originality. A trivial change (e.g. typo correction, non-functional change such as spacing/indenting) is not actually copyrightable.

ghost commented 8 years ago

Opinions how many contributors need to agree vary. I know Mozilla considered 95% of the source code has to be covered, while VLC assumed 99.9%. Since this is open source, and the license change is rather inoffensive (GPL to LGPL; for a project that wasn't a library originally, but which could be used by closed source programs through slave mode), I'd say it's not so important to get full coverage.

But in the end, there could always be someone appearing who wasn't asked or who didn't respond, and who says he doesn't agree with the license change. How do you handle this if the contribution was anonymous? Just because it was anonymous, it doesn't mean the copyright is void.

amosonn commented 8 years ago

I think if someone deliberately posted code anonymously, which is the case with the bugmenot account, then that reasonably waives their claim to copyright. On Dec 16, 2015 5:50 PM, "V. Lang" notifications@github.com wrote:

Opinions how many contributors need to agree vary. I know Mozilla considered 95% of the source code has to be covered, while VLC assumed 99.9%. Since this is open source, and the license change is rather inoffensive (GPL to LGPL; for a project that wasn't a library originally, but which could be used by closed source programs through slave mode), I'd say it's not so important to get full coverage.

But in the end, there could always be someone appearing who wasn't asked or who didn't respond, and who says he doesn't agree with the license change. How do you handle this if the contribution was anonymous? Just because it was anonymous, it doesn't mean the copyright is void.

— Reply to this email directly or view it on GitHub https://github.com/mpv-player/mpv/issues/2033#issuecomment-165152088.

mathstuf commented 8 years ago

Berne Convention says that any expression is automatically under copyright. The real thing that would make it ignorable isn't that it isn't copyrighted, but that it's basically unenforceable. How would someone actually prove that they were the one to contribute that code on that day using the account?

haasn commented 8 years ago

But in the end, there could always be someone appearing who wasn't asked or who didn't respond, and who says he doesn't agree with the license change. How do you handle this if the contribution was anonymous? Just because it was anonymous, it doesn't mean the copyright is void.

What I want to know is the consequences of rewriting affect code in the event this happens, rather than necessarily right now. Since I'm operating under the assumption that literally nobody will care about the exact legal status of these (e.g. bugmen0t's) contributions in practice, the best course of action might just be to assume it's reasonable to include them in the relicensing and reconsider if anybody actually ever contests it.

Unfortunately, what I don't know is how stringent any relevant punishments would be in the event that somebody does decide mpv breaks some form of law, or rather, how lax our “well, we'll fix that then” period would be. (I also have no clue how that would even be enforced in a many-faceted multi-contributor project spanning a large number of international borders...)

Also, I think it's fair to assume that after a sufficient period of time and activity, anybody who is simultaneously e.g. a prehistoric contributor of MPlayer/mplayer2 code and still cares about the status of this codebase will have heard about the LGPL licensing issue. At some level we're going to have to rely on the fact that “everybody we can no longer identify or reach no longer cares” if we want anything to get done at all.

ghost commented 8 years ago

Some more contributors with github accounts who were not mentioned yet: @presto8: for a change in ipc.c @dilaroga: videotoolbox @zekica: a fix in vf_vavpp.c

ghost commented 8 years ago

On side note, the Dolphin/Mozilla assumption seems to be incorrect for us.

I've also started a thread on the MPlayer developer mailing list: http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2015-December/073259.html Of the people who replied, 3 agreed to relicense their changes, and 1 didn't answer this question - of those 4. 3 claim it's very hard to impossible, and I guess I have to agree with them. I don't even know how to map the svn handles to email addresses, and I'd have to harass people for commits they've done over a decade ago.

Anyway, I've made another step with relicensing mpv/mplayer2-only source files: 8a9b64329c0e387dc59a1fca477a43c50f59ff34

zekica commented 8 years ago

I agree that my contributions are relicenced under LGPL v2 (whether or not they are copyrightable).

zekica commented 8 years ago

I agree that my contributions are relicenced under LGPL v2 or later (whether or not they are copyrightable).

presto8 commented 8 years ago

I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to the GNU Lesser General Public License (LGPL) version 2.1 or later.