Copyright licenses are just lists of terms of use. Pure GPL or giving up on the “freedoms” it offers are not the only options.
There are some precedents which had serious legal scrutiny for adding exceptions to GNU licenses. Nokia did so when they owned Qt - they had the LGPL with exceptions for static linking and instantiating C++ templates if I remember correctly.
If Ind.ie intends to sell versions of the software on public app stores, why not make this explicit in the license, rather than rely on dual licensing through copyright ownership?
Although I’m not a big fan of the GPL, it seems to be the majority preference of the contributors here, yet there does seem to be a general desire to allow public app store distribution. Even though iOS can’t run the Go version of Syncthing, the MIT Swift port is surely going to want to be able to look at the implementation of future features and protocol changes too, so I think the license will need to match in the long run /cc @dapperstout.
How about adding an exception to the Syncthing license and mirror that in Pulse? e.g.
GPLv3 with unmodified app store binary distribution exception.
This source code is licensed under the GNU GPLv3 with an exception to allow distribution on public app stores. You can submit a binary built from a GPL licensed version of the source code, which has been published publicly online, to a public app store for distribution. The app store owner and/or operator can process that binary in their standard way (including internal distributions, re-packaging and even adding DRM mechanisms) and distribute it via their app store without complying with the terms of the GNU GPLv3.
For the avoidance of doubt, no other exceptions to the standard terms of the GPLv3 are granted by this license and the app store owner and/or operator gets no additional rights to use the project in source code form.
That ought to cover it.
FWIW, additional things to help with abuse on the app stores while giving everyone the same rights to the code as you (more for Ind.ie than Syncthing):
- Trademark the project name. You can then enforce forks not using it to lure in unwary downloaders.
- Use a different license for graphical assets that the code picks up dynamically - anyone distributing your work as-is without re-designing the UI then violates your copyright.
I don’t think you have to worry about people selling just Syncthing on the Mac App Store - I don’t think it’d pass review and if it does you can always provide an official package that’s free… then no-one’s going to download the paid version. This is why the GPL is supposed to only mean free as in freedom but always ends up meaning free as in beer too. If Ind.ie wants to sell Heartbeat then the dual licensing route makes more sense there, although paid apps and broad adoption don’t really go hand in hand - a donation model might be better.
Hope that helps,
Mark