Bristol-Braille / canute-ui

User interface for the Canute electronic Braille reader.
http://bristolbraille.co.uk
GNU General Public License v3.0
36 stars 6 forks source link

Switch to GPLv2 #166

Open pachpict opened 6 years ago

pachpict commented 6 years ago

I've been told by a few screen reader developers that they are contractually forbidden from contributing to GPLv3 projects, but GPLv2 is fine. It looks like the FSF still approve the use of GPLv2;

"First of all, it is important to note that upgrading is a choice. GPL version 2 will remain a valid license, and no disaster will happen if some programs remain under GPLv2 while others advance to GPLv3."

In short, we can get contributions from more of our commercial partners if we switch to GPLv2, so we should do so.

rbubley commented 6 years ago

Just in case you need your contributors to consent to a change of license, you have mine.

kasbah commented 6 years ago

Two things to consider:

  1. We currently make use of PyQt which is licensed GPLv3 so to continue to make use of that we need to stay GPLv3 compatible i.e. could only switch to "GPLv2 or any greater version"
    • This only affects the emulator so could make a GPLv2 licensed version with this function disabled.
    • We can also switch back to PySide a.k.a "Qt for Python" as I hear they have updated that and it's more permissively licensed (I previously switched away from it as it hadn't been updated for Python 3.6)
  2. One of the reasons for the GPLv3 was the emergence of tivoization. You should consider whether it's a significant risk and/or potential problem that a competitor or partner makes modified versions of the canute-ui software and sells devices with it on it but doesn't release the source code for these modifications doesn't provide a way for the user to change the software on the device.

I think with @rbubley chiming in we do have all copyright holders (i.e. BBT & @rbubley) agreement for a license change so just let me know where you come down on either:

  1. Stay GPLv3
  2. Move to GPLv2+ but stay with PyQt (meaning effectively we are GPLv3+, note the +)
  3. Move to dual licensed: GPLv2 without emulator & GPLv3 with emulator (seems confusing)
  4. Move to GPLv2 and switch to PySide (seems like wasted work and we could run into future licensing incompatibilities if we want to make use of GPLv3 licensed libraries)
pachpict commented 6 years ago

"Move to GPLv2+ but stay with PyQt (meaning effectively we are GPLv3+, note the +)"

Did you mean to write, "... effectively we are GPLv2+ ..."

If that's the case then I think we should adopt that option.

kasbah commented 6 years ago

No, GPLv3+ since PyQt is GPLv3 so anyone copying the project when it includes the emulator is bound by GPLv3 and not at all by GPLv2.

rbubley commented 6 years ago

A variant of @kasbah’s option (3) is used by various other GPLv2 projects - e.g. ffmpeg:

If this approach were adopted, the project would be GPLv2, and would then need to be distributed by default without PyQT turned on, however the user would be able to specify an installation flag that installed PyQT and enabled the emulator — but this installed version would then not be redistributable.

pachpict commented 5 years ago

We should hear more from screen reader developers over the summer, so this is being added to the post-release milestone.