You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hold a referendum to move NVDA to GPL version 3 or later, similar to Dolphin and Wikipedia.
Describe alternatives you've considered
Keep NVDA at GPL version 2, using inter-process communication instead of linking to interface with libraries licensed under incompatible terms. I imagine this will have performance and/or maintenance costs.
A lot of development work to provide reasonable performance and low maintenance costs can be done in the time it will take to gather the approvals required to re-license NVDA. Given you haven't actually explored the problems involved, investigating using a separate process is the pragmatic approach.
We would first have to decide if we really wanted to move GPL 3, other notable projects such as the Linux kernel refuse to use GPL 3.
While it would be far from ideal, we could move espeak into a separate process also.
In order to do this we would need the permission of of all copyright holders. I'm not sure we want to go down this path, but we could ask copyright holders to assign copyright to NV Access https://www.gnu.org/prep/maintain/html_node/Copyright-Papers.html allowing NV Access to make changes as necessary. This would likely be a long process, and judging by the results of other projects, it's unlikely that all contributors can be contacted. Other projects seem to have reached a point where "enough" of the code copyright has been assigned.
I don't think we should do this to be able to introduce one particular library. But it is a discussion worth having in a more general sense. Could you please update the initial description to make it more general?
Rather than re-license, we could add an exception for required libraries
This concerns me, as we might need to contact all copyright holders repeatedly to add exceptions. Switching to GPL3+ would solve the incompatibilities with DMP and Espeak (in particular) and allow more open-source libraries to be used in general.
Any reason why NVDA was licensed as GPL2 (not GPL2+)?
For years, I have wondered the same thing as @codeofdusk: why was NVDA licensed
originally under GPL 2, when even at that time GPL 2 was already pretty long in
the tooth, and alternatives were available?
Having that well understood might enable this discussion to progress more
effectively.
Any reason why NVDA was licensed as GPL2 (not GPL2+)?
GPL3 was not created until 2007. However I suspect the current wording of the license (GPL 2 only vs GPL 2 or later) came from following Torvolds approach with Linux and other software. There are some good reasons to carefully consider whether to allow GPL 3, but Torvolds will do a better job of explaining than I. We would need to consider carefully if these reasons applied to NVDA, and I'm not sure we are willing to do that now.
CLA's from contributors would allow us to make that decision later. It would allow us to add library exceptions, move to GPL3 or choose a different license if it turned out that GPL 3 was not appropriate.
Activity
feerrenrut commentedon Sep 3, 2020
A lot of development work to provide reasonable performance and low maintenance costs can be done in the time it will take to gather the approvals required to re-license NVDA. Given you haven't actually explored the problems involved, investigating using a separate process is the pragmatic approach.
We would first have to decide if we really wanted to move GPL 3, other notable projects such as the Linux kernel refuse to use GPL 3.
While it would be far from ideal, we could move espeak into a separate process also.
Another alternative: Look for or create a GPL2 (or compatible) implementation of the Myers diff algorithm, there is one in xdiff I found quickly: https://github.com/git/git/blob/b06d3643105c8758ed019125a4399cb7efdcce2c/xdiff/xdiffi.c#L54
feerrenrut commentedon Sep 8, 2020
Rather than re-license, we could add an exception for required libraries: https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs
In order to do this we would need the permission of of all copyright holders. I'm not sure we want to go down this path, but we could ask copyright holders to assign copyright to NV Access https://www.gnu.org/prep/maintain/html_node/Copyright-Papers.html allowing NV Access to make changes as necessary. This would likely be a long process, and judging by the results of other projects, it's unlikely that all contributors can be contacted. Other projects seem to have reached a point where "enough" of the code copyright has been assigned.
I don't think we should do this to be able to introduce one particular library. But it is a discussion worth having in a more general sense. Could you please update the initial description to make it more general?
codeofdusk commentedon Sep 8, 2020
This concerns me, as we might need to contact all copyright holders repeatedly to add exceptions. Switching to GPL3+ would solve the incompatibilities with DMP and Espeak (in particular) and allow more open-source libraries to be used in general.
Any reason why NVDA was licensed as GPL2 (not GPL2+)?
feerrenrut commentedon Sep 8, 2020
This would be called a Contributor License agreement an example of one: https://cla-assistant.io/discourse/discourse
One simple way of doing this is with: https://cla-assistant.io/
feerrenrut commentedon Sep 8, 2020
@codeofdusk it seems you missed this bit:
IE with a CLA as per my last post.
XLTechie commentedon Sep 8, 2020
feerrenrut commentedon Sep 8, 2020
GPL3 was not created until 2007. However I suspect the current wording of the license (GPL 2 only vs GPL 2 or later) came from following Torvolds approach with Linux and other software. There are some good reasons to carefully consider whether to allow GPL 3, but Torvolds will do a better job of explaining than I. We would need to consider carefully if these reasons applied to NVDA, and I'm not sure we are willing to do that now.
CLA's from contributors would allow us to make that decision later. It would allow us to add library exceptions, move to GPL3 or choose a different license if it turned out that GPL 3 was not appropriate.
LeonarddeR commentedon Sep 10, 2020
If a license switch is considered, I think the possibility to dual license should also be taken into account.
LeonarddeR commentedon May 30, 2024
Update: Started #16633 instead
seanbudd commentedon Jul 29, 2025
Closing in favour of #18574