irungentoo / toxcore

The future of online communications.
https://tox.chat/
GNU General Public License v3.0
8.74k stars 1.26k forks source link

GPL Exception #1064

Closed urras closed 8 years ago

urras commented 9 years ago

In order to publish Antidote in the Apple app store and Test Flight, Toxcore needs to make a GPL exception. However, we need permission to add an exception from the following people who have contributed to Toxcore:

The exception can be viewed here If you hereby agree to these changes, say so in this thread.

irungentoo commented 9 years ago

Can we just just agree not to send takedown notices for our code if someone makes a Tox iOS app and provide all their source code for it under a GPL compatible licence?

kyconny commented 9 years ago

Can we just just agree not to send takedown notices for our code if someone makes a Tox iOS app and provide all their source code for it under a GPL compatible licence?

Because THAT has worked before. https://github.com/github/dmca/blob/master/2014-09-05-CraftBukkit.md

zetok commented 9 years ago

@irungentoo that wouldn't work with people who would install (get) Antidote, and thus would be entitled to receive copy of core's code and stuff.

Edit: also there may be people who could contribute to core, and then, provided that they would have malicious intentions, pursuit legal action against Antidote...

Proplex commented 9 years ago

The intent of Tox, and any of its side projects, is to get a secure and private instant messaging service in the hands of the masses. In order to do that, we need a presence in the Apple App Store, otherwise we're just a niche product wasting our time. Unfortunately, Apple has banned applications using the GPL after RMS brought up incompatibility issues, and we're now caught in a Catch-22 situation. Tox remains, and will remain, committed to a free-as-in-freedom program; however, we need to make an exception in order to reach a large chunk of smartphone and tablet usage.

I'll admit that we jumped the gun on this version of the exception; and we're currently in the process of revising the license to better suit everyone's needs. There are two ways we can go about this revision. Either list the exception for iOS applications to be published on the Apple App Store only, or for the Antidote application only. The issue with the latter is that we're not guaranteed Antidote will ever be completed, and it would also require everyone authorize a new iOS client every time someone wants to publish one, which really hinders developer interest in iOS development.

So, I'm looking for community opinion. Which path should we take, and why? Are there options you want to propose? Or is there a better idea altogether? I'm all ears. (I ask that people keep their commentary civil, and please only use one account to state your opinion. Otherwise you risk hurting the project for no reason other than personal gain)

Side note: Tox on the Apple App Store is imperative. We'd be crazy to even think Apple would make an exception for us, and that won't even stop someone from attacking Antidote (or future iOS applications) by means of a restrictive iTunes license (the basis of incompatibility of GPL).

Thank you, and happy Toxing!

tycho commented 9 years ago

Said incompatibility is due to it being GPLv3, no? i.e. the "Tivoization" clause? Why not relicense under GPLv2? This would avoid the compatibility issue.

im-grey commented 9 years ago

This seems civil. Would the Apple Store be okay with that?

On 2014-09-17 15:36, irungentoo wrote:

Can we just just agree not to send takedown notices for our code if someone makes a Tox iOS app and provide all their source code for it under a GPL compatible licence?

Reply to this email directly or view it on GitHub [1].

Links:

[1] https://github.com/irungentoo/toxcore/issues/1064#issuecomment-55947841

zetok commented 9 years ago

@Proplex Well my opinion on exception..

Basically I'm against whole exception idea, but I reckon that Tox has to gain popularity (particular case includes ios users).

The reason why I'm being against it is that allowing something other than GPLv3 provides a way to exploit Tox by 3rd parties for their purposes and their gain, and that in no way implies that Tox would get anything from it. That's what I'm afraid of, and the most of the reason why I'm against it.

What I'm asking for is as strong as possible protection from any form of abuse that could harm Tox if (when?) there will be an exception.

Proplex commented 9 years ago

@tycho @im-grey The GPLv2 is still incompatible with the Apple App Store.

@zetok I wish that as well. One possible idea would be for Tox to fork Antidote and apply the exception to our fork only while leeching from upstream. We'd have to make sure @dvor is okay with it; it is a harsh and selfish move.

EDIT: We would need permission from dvor to do such a thing, since we would need to relicense his code. I've edited my above statement accordingly.

mahkoh commented 9 years ago

The more interesting question is who decides what projects gets an exception. @stqism has said that he wants every contributor to sign the Canonical CLA (with Canonical replaced by "The Foundation"). I've picked the first few results from Google that talk about this CLA:

If this happens then tox will always be under the control of "The Foundation" and no fork will ever be able to have clients on iPhone and co.

dvor commented 9 years ago

One possible idea would be for Tox to fork Antidote and apply the exception to our fork only while leeching from upstream. While we don't have to, I'd want to make sure @dvor is okay with it, since it is a harsh and selfish move.

So, on every new version of Antidote and every little fix:

And every other project for iOS/WP/etc would have to do the same?

It is quite messy and strange, but if there will be no other way to put Antidote in the AppStore - well, than it is okay.

Proplex commented 9 years ago

@dvor We're trying to see if there are better ways of doing it; I was just thinking of one possibility. I was thinking of something a little different than what you detailed, but the concept is the same. I'm currently away from my desktop, so I'll summarize it more in-depth when I return.

iShift commented 9 years ago

And again - now main aim and question is -exception in GPL for Antodote.

Look at vlc example, vlc team make some steps to bring vlc to App Store (solve same problem)

Let's be honest with yourself: near 40% smartphones - iphones, 40 - android, 10% - another platform, I can be wrong with % but apple is big piece in smartphones pie.

All (!) main IM have client in App Store, I hope all of us want the same - spread tox to the world, bring it to regular people.

In the end - please, think about all, after that decide you (developers) should think about trusting or not trusting foundation.

iShift commented 9 years ago

Small adding: (github mobile client can't edit previous post)

joshuagay commented 9 years ago

Hello, after reading rough this thread I just wanted to clear-up a couple potential points of confusion you may be having. This is in addition to the information we, the FSF, have already provided to you (via a separate email).

Exception to the GPL vs an additional permissions alongside the GPL

This conversation starts out with the statement: "In order to publish Antidote in the Apple app store and Test Flight, Toxcore needs to make a GPL exception."

This isn't necessarily true. There are two options as I see it:

1) You, the copyright holders, grant on a case by case basis the permission to distribute Toxcore via the Apple App Store. This would be an exception to the terms of the GNU GPL. (This is how "selling exceptions" works).

2) Write an exception to your terms for everyone that allows people to redistribute Toxcore via the Apple App store. How that is written is something you should probably get legal advice on. The FSF can not provide you (or anyone) with legal advice (it is against the law for us to do so) -- we can give you general information about how the GPL works (which we have done via an email).

This is not a "linking" exception being considered (as the term usually applies)

Another point raised on this thread is that the kind of exception you would write would need to be similar to a "linking exception." But, it doesn't sound like you are discussing a linking exception, or at least not in the normal way that term applies. Usually a linking exception assumes that a person is not distributing the work itself but they are distributing a work that dynamically links to that work. But, as far as I can tell, what you are actually discussing is that people would distribute a single combined work. That is, you couldn't assume that Toxcore is already installed on the target computer, but that an individual would be distributing the combination of Toxcore + some-other-stuff (e.g., Antidote).

Anyhow, it sounds like you have a hard decision on your hands. If you have any more questions (keeping in mind that we can't give legal advice), please do not hesitate to ask. We are here to help in whatever way we can.

Best of luck!

Josh

Joshua Gay
Licensing & Compliance Manager
Free Software Foundation

urras commented 9 years ago

@mahkoh In case it was not already clear, @stqism was not being serious.

mahkoh commented 9 years ago

That may or may not be the case. If he no longer plans to do this then that's certainly a step in the right direction.

stqism commented 9 years ago

@mahkoh Things said in our offtopic channel are rarely factual.

urras commented 9 years ago

Please don't discuss this here, @stqism and @mahkoh

schuetzm commented 9 years ago

Just for completeness: I retract my agreement, too. (The reason I agreed so quickly is because my contributions were rather trivial, and I find all that licensing stuff a nuisance that I don't really want to deal with. Should have put more thought into it in this case, I guess.)

iShift commented 9 years ago

... also don't forget about @stal888 and Poison future for them - Mac App Store with another one Exception

ameenross commented 9 years ago

Mac App Store

Right. That's what I was thinking. They're separate app stores, so an exception just for the iOS app store won't cut it to be "apple-compatible", right?

iShift commented 9 years ago

Solution is - Mozilla Public License Version 2 AND GNU General Public License Version 2 or later

Like in VLC http://www.videolan.org/vlc/download-ios.html

ameenross commented 9 years ago

Dual licensing. It definitely seems to be the easiest solution.

iShift commented 9 years ago

dual license only for apple apps stores not for all stuff

ameenross commented 9 years ago

Hmm, your example is VLC for iOS, which is the app (comparable to Antidote in this case). What's more to the point is how they handled the licensing of their core libraries.

ameenross commented 9 years ago

Looks like libVLC uses the LGPL: https://github.com/videolan/vlc/blob/master/include/vlc/libvlc.h#L12 There's a press release about the license change here: http://www.videolan.org/press/lgpl-libvlc.html

iShift commented 9 years ago

https://github.com/irungentoo/toxcore/pull/1066

ameenross commented 9 years ago

I just cobbled up a few resources for the LGPL and iOS app store issue. These look kinda hopeful, but don't seem to address the distributing issue. (I can't help but wondering though, don't the distributing clauses in the software license override the limited distribution clause in the App store EULA and not the other way around? What if a developer wants to limit distribution of their app to 1, don't they face the same conflict?)

aitjcize commented 9 years ago

np

aaannndddyyy commented 9 years ago

The copyright holders have to right to do whatever they want with the code. they can also decide to hand it over to some people granting them one license and to others granting them another. So in general you want GPL. Fine. Release under GPL almost everywhere. Add a amendment to the license file that a certain license is granted to certain people and GPL for all others. Now, what you grant to others should not make it possible for them to turn the code into closed source software they can develop. Alas, I don't know what the Appstore requires, but if it doesn't require source, then simply grant them to distribute the unchanged binary and allowing for appstore users to use the binary for any purpose they see fit, except for reverse-engineering and changing it. If they require source, give them source but don't grant them to change it. i.e. who wants GPL rights needs to comply with GPL rules, who doesn't want to do that can get an unmodifiable copy of the sources plus the right to compile and distribute binaries only linked to other things that allow for the same : either free distribution or unchangeable. Thus they cannot make derivative works and close source them, and yet need not have the GPL

urras commented 9 years ago

So, I've kind of simplified the exception at https://github.com/urras/idontknow/blob/master/GPL_EXCEPTION.txt. If you want to add anything to it or modify it, please don't hesitate to send a PR. Also, criticism and recommendations are more than welcome.

aaannndddyyy commented 9 years ago

something along the lines of "In addition, your software may be be released on the Apple AppStore including libtoxcore. In that case libtoxcore can be distributed linked with software of any license, provided that (a) the rest of the software is also released under the GPLv3 or higher simulateneously and upon request, and (b) no changes are made to libtoxcore" should suffice. The "unchanged" part is important so that it doesn't get modified and turned into closed source. Because of that, the only thing allowing changes is GPL which then is passed on to the changes.

urras commented 9 years ago

@aaannndddyyy Does it not already make that clear?

stal888 commented 9 years ago

No changes as in source, or no changes as in source + binaries?

Apple encrypts binaries on the App Store, so it’s important to make that distinction.

On 22 Sep, 2014, at 08:03, aaannndddyyy notifications@github.com wrote:

something along the lines of "In addition, your software may be be released on the Apple AppStore including libtoxcore. In that case libtoxcore can be distributed linked with software of any license, provided that (a) the rest of the software is also released under the GPLv3 or higher simulateneously and upon request, and (b) no changes are made to libtoxcore" should suffice. The "unchanged" part is important so that it doesn't get modified and turned into closed source. Because of that, the only thing allowing changes is GPL which then is passed on to the changes.

— Reply to this email directly or view it on GitHub.

urras commented 9 years ago

I'll be creating another issue soon regarding this matter, this time using the revised exception at https://raw.githubusercontent.com/urras/idontknow/master/GPL_EXCEPTION.txt. Toxcore contributors listed in the initial post are highly encouraged to read over the exception. If you have anything you want to add or change, please either mention it in this issue or create a PR in https://github.com/urras/idontknow with your revised version.

urras commented 9 years ago

Look, I'm not going to create the issue if everyone isn't on-board with this. Incoming CC list:

@mannol @irungentoo @aitjcize @FullName @Martijnvdc @tycho @stal888 @tux3 @notsecure @cgar @nurupo @maksqwe @JFreegman @czarkoff @saneki @schuetzm @K0K0 @redwire @tylerb @Jman012 @pyruvate @jin-eld @exonity @palistov @lobiCode @Bahkuh @BtbN @kc1212 @Ansa89 @Garydos @kyconny @dubslow

I need you to tell me if there is anything that needs to be changed in the exception draft at https://github.com/urras/idontknow/blob/master/GPL_EXCEPTION.txt

mahkoh commented 9 years ago

A) On demand, you make the source code of Your Software available under the terms of any open source license that is compatible with the GNU GPL.

There is no such license.

TheLastProject commented 9 years ago

@9415: We all hate Apple's App Store, but would you rather force iOS users to use completely insecure, proprietary chat systems? Giving iOS users access to Tox is obviously the lesser of two evils.

ghost commented 9 years ago

@9415 Hello neeh

urras commented 9 years ago

Sorry @9415, I didn't see @ittner in the list of contributors. I'll add him to the list as soon as possible. @mahkoh Forgot to change that. Thanks for pointing it out.

Proplex commented 9 years ago

Hey guys, just want to drop by and remind everyone to use only one account when expressing their opinions on the license exception. Sockpuppeting isn't cool, and it only serves to hurt the project in the long run. We have, and will continue to, report any account we feel is a puppet.

This is a serious issue and we ask that everyone takes it as serious as we are.

aaannndddyyy commented 9 years ago

"permission use Toxcore in Apple iOS applications ", ok, so the devs of the iOS applications may use toxcore, but they may not redistribute the resulting work, neither may iOS user use it. There is absolutely no mention of passing on rights. "All distributions of Your Software prominently advertise condition A) of this exception." this part implicitly allows for distribution, but always better to do it explicitly in legl texts. And what is the end user allowed to use it for? And "on demand" means if someone releases something and tox project was unaware of it and hence sent no such request, and the developer then becomes unavailable (dead, was anon and cannot be found, ...) you cannot send him such a request, Now, have the rights to distribution been passed on to the AppStore? The license is not very clear. In any case, if so, it can go on distributing it, because it is not "theri" software, so they need not provided the source but only the now unavailable original devs, who, beause of being unavailable, never get any request and therefore never need to disclose their code. Et voilà closed source. (Even though in stasis)

Just my two cents. And sorry for interfering in your discussion despite not being a tox dev.

urras commented 9 years ago

@aaannndddyyy Please don't be sorry, you've raised some really important points. Can you make the changes to the exception and create a PR in https://github.com/urras/idontknow so that we can review it?

aaannndddyyy commented 9 years ago

"This software is primarily released und the terms of the Gnu Public License version 3, or at your descretion, any higher version.

Note: The following amendment only applies as long as Apple's AppStore's Terms are incompatible with the GPLv3:

Alternatively, in case you are developing a Apple iOS application to be distributed via Apple's AppStore which is not exclusively licensed under the GNU General Public License version 3, you can freely use Toxcore and link against your software and distribute it via Apple's AppStore under a license not compatible with GPLv3, provided that:

Thing is: where do they send the code to?

This one does not modify the GPL but is a dual licensing. However you grant the other license ONLY for distribution via AppStore and only as long as they don't change their terms. In case they one day change their terms and they are no longer a problem for GPL, then only the versions already released are still on the other license, but all updates or new releases would then be automatically GPL.

Am not saying making an exception for them is good or bad. You should think well about if you want to make these concessions. I put "a free license compatible with" in parentheses, so you decide whether any is good or it needs to be GPL itself. The last sentence is also important, otherwise, even though the developper could not change the sourcode, he could well release it afterwards under a different license which then grants another developper to change it.

Feel free to use this in parts, entirely, or not at all. I'm sure it's also full of typos. ;) And I might not have used full name of GPL

SafwatHalaby commented 9 years ago

Forgive my ignorance, could someone explain and/or post some related links about what this is all about? Why is a GPL exception needed?

dvor commented 9 years ago

@wiseoldman95 Apple's AppStore isn't GPL compatible. If we want to have an iOS client for Tox, we need a GPL exception.

urras commented 9 years ago

@aaannndddyyy Instead of "you do not make any changes to Toxcore's sourcecode", what about "any changes you make to the source code of Toxcore must be made public under The GNU General Public License v3.0", or something to that effect?

aaannndddyyy commented 9 years ago

@urras: they can contribute changes directly to upstream. They receive the code already under GPL via github or whatever. So for their upstream contributions they can use the GPL. Since all upstream Toxcore code would bear that dual license, they can then distribute they new modified code as before. So basically it doesn't matter. So feel free to change it to your wording. Both do in effect the same: prevent that changed/improved code be released only as non-free. In fact, with GPL only, you cannotr force the dev to release anything, but with this second license you can even enforce it, so I think you have a good pont here. However, if you just say "must be made public under GPL" then what does public mean? it could be some niche forum where they post it. What about requiring them to submit it to some special place/entity like Tox Foundation? Hoping they don'T cease to exist or turn evil. The good thing with gpl is that anybody who happens to find a sourcecoe copy can modify it and redistribute the changes. The problem with releasing under non-free and obliging them to release under GPL too, is that if you get your copy on one place and would liike to enjoy the freedom, you first must look for the other copy under the free license.

Another idea: If the problem is that AppStore prohibits certain USES of the software, which clashes with GPL's freedom, a novel approach would be not to use GPL in that case (so that there is no such clash) but allowing RE-distribution of the code under GPL. So everyone who gets any copy can also modify and redistribute it. Sounds perfect. However, that's not a full solution yet. Because the one redistributing it might also want to distribute via AppStore again, so GPL is of no use for him. So the idea would be to have a license that is somewhat forwardlooking.

à la

What do you think?

aaannndddyyy commented 9 years ago

in the above what you read under "à la" is what the end user should get. and refers only to toxcore. the rulings about the rest of the app's code should be as in my previous post. instead of either GPL or the very same, rather enforce the dual license approach as in the original code - for consistency and so that other iOS devs can then make use of it again if it ends up upstream.

aaannndddyyy commented 9 years ago

this way it should be useable with AppStore (which was the goal) and made sure that there is always a FREE version of the program (which is the philosophy of the project as a whole, if I'm not mistaken), AND that this one is in fact AVAILABLE for everyone who's got a copy of the source no matter where he found it. Plus the Foundation need not speand time searching for where app devs may have releasesd the enforced gpl-ed code, but will get it sent directly or via github. :)