Syncthing is going to be relicensed as MPLv2

This is the first post in a forum category that is closed just for contributors. I’ve done this because the topic generates more heat than actual signal, and I’m (at this point) interested what you all have to say more than the internet at large. Note that this group doesn’t cover all contributors (not everyone is registered at the forum) and any discussion here is in no way binding - any license change needs to be done formally via a Github PR. Once the discussion here has reached a conclusion, whatever it may be, I intend to move this post to the general dev topic so that it’s visible for everyone.

Hello @rumpelsepp, @marco_m, @timabell, @asdil12, @Nutomic, @cdata, @bigbear2nd, @cqcallaw, @Zillode, @pyfisch, @frioux, @bsidhom, @gilli, @mdz, @jpjp, @filoozom, @KayoticSully, @AudriusButkevicius, @Cathryne, @Rewt0r and @marclaporte.

There’s always a lot of discussion going on about the license. It’s always going to be like that - some people love MIT, some love BSD, some love GPL, and of course some couldn’t care less. I’m personally an MIT kind of person, and that was the original license. Then we moved to GPLv3 for reasons. One of the things a GPL license prevents is distribution on an App Store with DRM - that’s primarily the Apple one, but probably also a Windows one etc. This doesn’t make me particularly upset, if for no other reason then just because Go stuff doesn’t really run on iOS devices anyway, and Mac users can always install it themselves.

However it seems that from the next or so version of Go, darwin-arm will be a supported architecture and iOS apps written in Go (or with a significant Go component) are possible. I think it would be neat if we could make and distribute an official Syncthing iOS app. I also think that would mitigate the “threat” of someone else taking Syncthing and charging for it without giving anything back to the community.

To accomplish that, we could go in two directions:

  • Switch back to the MIT license. This is a fairly simple license, being pretty much “do what you like”. People can sell syncthing in any form, modify it without contributing back, and so on. It also makes it maximally useful to the open source community and may help it become established as a de facto standard. Maybe - what do I know, I’m just speculating. This is slightly simpler than any other change, bureaucratically, since we only need to relicense the contributions made under GPL, the others are all ready MIT.

  • Switch to the MPLv2 license. This is a much more involved license, considering stuff like patent grants and so on. As far as I can tell, the maximum simplification is “do what you like, but you must publish source”. So it’s still fine to sell the code, incorporate it into closed source products etc, but if you modify syncthing to do it then you must publish those changes.

We can also ignore the issue, screw the app stores and license whiners, and continue using GPLv3. This is a valid choice, there’s a bunch of stuff out there that works just fine with this model.

Personally I prefer going with either MIT or MPLv2 rather than staying with GPL at this point, but I don’t care enough to try to force it on everyone else if I’m a minority vote.

For the record, these are the (43) Github nicks who will need to approve a change to MPLv2, sorted by number of commits. (Edit; this was originally a list of email addresses.)

1484 calmh
234 AudriusButkevicius
10 cqcallaw
10 KayoticSully
9 filoozoom
7 uok
6 jedie
5 pluby
5 krozycki
4 tojrobinson
4 seehuhn
4 pyfisch
4 jpjp
4 alex2108
4 Zillode
3 snnd
3 rumpelsepp
3 peterhoeg
3 marclaporte
3 frioux
3 bigbear2nd
2 veeti
2 qbit
2 marcindziadus
2 kozec
2 bsidhom
2 Cathryne
1 tnn2
1 timabell
1 piobpl
1 philips
1 mvdan
1 gillisig
1 facastagnini
1 ceh
1 cdata
1 brendanlong
1 asdil12
1 andrew-d
1 Vilbrekin
1 Rewt0r
1 Nutomic

I would like to hear from each you who see this what you think. Something as simple as “Whatever, dude” works, as well as a four page rant on the evils of GPL, but the more constructive the better - I’m already sick of this discussion. :slight_smile:

1 Like

So I, just like you would prefer MPL2 or MIT over GPL, basically due to the app store issues. I guess I lean more towards MPL2 rather than MIT as this tries to ensure that we can port back cool features that others wrote, allowing syncthing to grow even if they have no intention of helping us out. There are ways around it, and people can still keep their stuff closed, but I guess I am fine with that.

References for those of you who don’t already know them by heart because you don’t spend your evenings reading licenses:

1 Like

You have my permission to license my one trivial contribution as you see fit.

+1 for staying GPL and screw the app store.l

I have no problem with my email address being public. It’s in the git logs anyway :wink:

1 Like

I would prefer using a copyleft license like MPLv2 or GPLv3. I wouldn’t like MIT that much.

I am fine with any of those 3 licenses.

I’m one of those that doesn’t spend my evenings reading licenses however after a “quick” glance at them all and looking at what you @calmh, have had to say, I vote for the MPLv2.

I like GPLv3 the most, because no one can take the code, close it down and sell it. MPL also sounds good. Though I wouldn’t oppose a change back to MIT if a majority wants that.

I’m also putting the license change for syncthing-android on hold until this is decided.

3 Likes

I am ok with any of the licenses proposed by @calmh for my trivial contributions.

I vote MPLv2 but would be fine with any of these three.

Hey Jakob. My 2 cents, in order of priority: MPL2, MIT, GPL. Any choice you make is fine :smile:

Hi Jakob & all!

Thanks for bringing this up.

My preference would have been to keep MIT as it was in the beginning. But then, as now, I support whatever the project leadership thinks is best. This was the thread:

I was part of a team that moved Bootstrap from Apache to MIT for easier inclusion in (L)GPL web apps. Over 350 committers had to agree and in the end, we couldn’t reach some people, and some commits had to be rewritten: Migrate to MIT License · Issue #2054 · twbs/bootstrap · GitHub → Not fun. Syncthing is still young. The longer we go, the harder it will get to make such changes. If we are to make a change (and I prefer that we do), let’s do it now, even if that means rewriting some commits. It’s much easier to move in one direction (towards GPLv3) than the other (MIT) because you can say the project is now license X, and it includes all this previous code of a more permissive license. This being said, we see that licenses are a touchy subject and some get an uneasy feeling when a project changes it. So ideally, we would stick with this license for foreseeable future.

The most important thing is that Syncthing can be deployed to all kinds of platforms and it becomes a universal solution to sync anything with anything. So an official iOS app will be a big win. Down the road, I would love to be able to buy a phone / tablet / TV / hard drive / NAS / router / whatever with Syncthing pre-installed. I am not worried about some trying to close up the code. Code evolves and especially for a P2P app, it’s in everyone’s interest to upstream and keep in sync with the community.

The license shouldn’t make it unduly difficult to include code we may want to include. I am not aware if this is or not a real issue, but just mentioning it in case.

Aral Balkan reported being OK with MPLv2 or MIT:

So this reduces friction to collaboration. I realize projects have different goals, and code bases will diverge more & more over time, but even if we only get a few fixes, it’s a good thing. And we can hope for more.

Ideally, all downstream projects (installers, wizards, system trays, etc.) would use the same license to minimize any potential friction of collaboration or transfer. I expect they will all follow suit, if asked.

So all in all, slight preference for MIT, all fine with MPLv2. Let’s get this done and get back to making Syncthing even more awesome!!

Best regards,

M :wink:

Some related links: http://www.dwheeler.com/essays/floss-license-slide.html (MPL 1.1 not 2 on the current chart) Discussion of license implications (GPL, LGPL, MPL2, MIT, iOS, App Stores)

Syncthing seems to have been under real threat of being forked at least once (thinking of ind.ie), and I hope that the license Syncthing uses enables Syncthing to benefit equally from important or novel changes made to the fork.

Your stewardship of this project has been excellent and fun to watch. I’m not a lawyer, but I trust your judgement with regards to switching to a more permissive license. If MPLv2 makes the most sense to you, let’s switch to it.

Ignoring app stores would IMHO be an unwise move, hence +1 for MPLv2 from me. MIT would be fine as well. In either case: thanks for starting this discussing and involving even the small contributors :smile:

1 Like

Cool. So far I’m hearing a consensus that says MPLv2 is acceptable – some do have a preference for MIT or GPL instead, and again some have objections to MIT or GPL, but no one has voiced an objection to MPLv2 so far.

Fully agreed. This project will change license at most once more, and then never again under my leadership at least. :wink:

I’m contra MIT (doens’t protect the freedom of the work), slightly contra MPL and pro GPL. I’m just not entirely sure who will help defending us with a MPL license (in constrast to GPL and FSF).

If we stick to GPLv3, we should initiate a contribution agreement, similar to owncloud (https://owncloud.org/contribute/agreement/) or chatsecure (https://github.com/ChatSecure/ChatSecure-iOS/blob/master/CONTRIBUTING.md). This would allow us to distribute the ST core to the appstore without problems.

We could do GPLv3 + CLA, yes. That would require setting up a recipient for the CLA though (a foundation or corporation of some kind) and is generally more work than I feel up to. So for practical reasons I kind of ignored that option in the original proposal, even though it’s certainly a possibility…

I am contra MIT as it doesn’t protect the freedom. If somebody want’s to sell his own syncthing like program he could implement his own based on the MIT licensed protocol. I personally prefer GPL and I would screw the app store (or do that GPLv3 + CLA thing until apple experiences an epiphany).

I am also ok with MPLv2 even though I am a bit worried about that scope thing. But I am not a lawyer and I think you will go in the right direction.

It sounds like most who are active on the forum and have an opinion have chimed in and I find that there is no significant opposition to changing to MPLv2, and I think it would be good for us to do just that. I’m going to open this up, and start the relevant bureaucratic processes…

1 Like