nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.09k stars 628 forks source link

change the license to MIT #15958

Closed paxcoder closed 9 months ago

paxcoder commented 9 months ago

Is your feature request related to a problem? Please describe.

people need to opensource their work instead of just simply providing info that they took code from NVDA, which hampers innovation, and commercial products based of of this.

Describe the solution you'd like

change the license to more permissive, e.g. MIT

Describe alternatives you've considered

change the license to apache license or similar

Additional context

not every programmer wants to opensource their work, MIT provides more elastic solution.

josephsl commented 9 months ago

Hi,

To help us better understand the rationale, could you provide us with a summary of advantages and drawbacks of using various open-source licenses such as GPL, MIT, and Apache licenses? Also, keep in mind that NVDA code itself is licensed under GNU GPL 2, with dependencies and add-ons licensed differently (think carefully about this point because changing licenses is not easy).

Thanks.

paxcoder commented 9 months ago

So, MIT is more easier to understand than apache license. But apache has some good clauses in it, maybe apache is better suitable?

josephsl commented 9 months ago

Hi,

Examples please.

Readability (textual, legal, utility, suitability) could be a starting point for discussing change of licenses. However, readability should not be the only factor when choosing to relicense NVDA under a different license. Committing to a specific free and open-source license requires lots of thinking from developers (sometimes a discussion of philosophy comes in), users, code observers (including other organizations and companies), potential developers, and others who might be interested in reading and using NVDA source code for various reasons. Also:

  1. Developing NVDA and other screen readers communicates commitment to understanding the disability culture and community. While this may not impact license discussions much, it can create implications such as code reuse that can introduce ableism at the source code level.
  2. NVDA source code is just one part of the picture when discussing NVDA as a screen reader and a culture. We have add-ons, third-party dependencies, and other tools and mindset that assumes GNU GPL 2 terms and thinking, more so when treating NVDA add-ons as derivative works of the screen reader (any code from add-ons that use NVDA API must be licensed the same as NVDA i.e. GNU GPL 2). While the NVDA community is connected by the idea of equal access to technology and this technology licensed under GPL 2, members and related communities (such as language communities) are decentralized. Relicensing NVDA under a different license for the sake of readability can create effects felt throughout the NVDA community, and for some, across disability culture.

Thanks.

paxcoder commented 9 months ago

So, more permissive licenses are better, because they allow for more flexibility for developers. e.g. add-on devs might opt in to make add-ons with some code they don’t want open sourced, which makes innovation speed up, and some devs might be more willing to contribute if the license will be less strict, even I might try to do so.

josephsl commented 9 months ago

Hi,

In theory, yes. However, getting a project to move from a copyleft (or a restrictive) open-source license such as GNU GPL to a permissive one such as MIT license require coordination throughout the community and checking with licenses from NVDA's dependencies, some of which include Python itself, eSpeak, liblouis, requests (available on PyPI), to name a few. Sure, not going through a hassle of getting add-on source code available under the terms of GPL may speed up innovation, but the speed of innovation itself cannot be quantified easily, more so when talking about a project with contributions from multiple people with varying views on licenses coming from countries with varying copyright laws (as part of switching licenses, the project must contact contributors and ask for permission to switch their code to a different license; this is made a bit more complicated because English is not the first language for many contributors and most are not trained in the legal aspect of free and open-source licenses).

Therefore, if we are to change from GNU GPL 2 to MIT, rather than starting with readability and speed of innovation, we must look at untangling dependencies and their licenses. Then comes justification that can lead to coordination across the community and getting folks onboard with license change (for a real example, see Liblouis discussion on changing licenses). Ultimately, you must build a case that will effectively persuade NV Access because that's the organization that coordinates NVDA development activity and is the licensor (NV Access is also a licensee of various dependencies that are licensed under a variety of licenses, some of which may not ease switching from copyleft to a permissive license without looking for replacement dependencies). In other words, when we prioritize speed of innovation and readability, we are going to miss important points of this discussion: copyright, contribution, licensing, and the processes and the thinking involved. You are right in that removing barriers is important to innovation, but that must also be balanced with consequences and processes, and just prioritizing innovation can be a big barrier (in my honest opinion).

Hope this helps. Thanks.

paxcoder commented 9 months ago

Yeah, we need to make sure all contributors, or at least most of them, are ok with the change. And that nvaccess is ok too. But we might at least try.

josephsl commented 9 months ago

Hi,

Based on our discussion so far, what do you think is the first step? I'm doing it like this for a reason.

Thanks.

paxcoder commented 9 months ago

First, check dependencies, and their licenses. Then, ask nvaccess themselves. Then: ask the other contributors.

josephsl commented 9 months ago

Hi,

Okay, let's do that (the reason for asking you to list the next steps is to make sure that we are on the same page and for you to understand the consequences of our suggestions).

Thanks.

ramoncorominas commented 9 months ago
    @paxcoder I'm not sure that a more permissive license could lead to more innovation when it comes to a long established open source project. Maybe some developers would only be interested in contributing if they can close their code, but I know many developers taht would stop contributing to an open source project if it starts closing parts of its code, which will in turn lead to fewer contributors and less innovation.
mwhapples commented 9 months ago

Speaking as a developer I do feel some of the restrictions of the GPL forcing the hand of anyone building upon work under the GPL. However it is this forcing the hand which as a open source contributor I appreciate, if I volunteer my time to create something free for others, then anyone who wants to build upon that should also play by the same rules. If someone wants to close off their work they are free to, just not with GPL work.

mwhapples commented 9 months ago

Regarding readability I agree the GPL is not particularly readable. However it is a common enough license that many should understand it. However changing to a more permissive license isn't really the answer to readability as you are also giving up some of the protection of the GPL for contributors. It would be better to suggest an equivalent license to the GPL which is more readable.

mwhapples commented 9 months ago

Is there any solid examples where the GPL has prevented anyone doing what they want to with NVDA or is this hand waving speculation that it may be a problem? With a solid example then it may make it easier for those responsible for making/approving such a change of license deciding whether that would be something they want to see happen. Personally at this point I would not want to see NVDA move from a strong copyleft license.

Brian1Gaff commented 9 months ago

Would that not muddy the waters and mean that people might shy away from using the code in case it contains a part under another licensing agreement?

Brian

-- @. Sent via blueyonder.(Virgin media) Please address personal E-mail to:- @., putting 'Brian Gaff' in the display name field. ----- Original Message ----- From: pax To: nvaccess/nvda Cc: Subscribed Sent: Saturday, December 23, 2023 6:43 PM Subject: [nvaccess/nvda] change the license to MIT (Issue #15958)

Is your feature request related to a problem? Please describe. people need to opensource their work instead of just simply providing info that they took code from NVDA, which hampers innovation, and commercial products based of of this.

Describe the solution you'd like change the license to more permissive, e.g. MIT

Describe alternatives you've considered change the license to apache license or similar

Additional context not every programmer wants to opensource their work, MIT provides more elastic solution.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

mwhapples commented 9 months ago

That I think is a very valid point. If NVDA were to depend upon a GPL library, then whilst NVDA can use a different GPL compatible license which may be more permissive, that greater permissiveness may not be possible to realise. In short the GPL obligations of that dependency would still need to be respected, unless that dependency could be removed. As the GPL is one of the OpenSource licenses with the highest obligations, it is highly likely that by complying with the GPL other OpenSource licenses of dependencies will be met. So yes GPL might make it simple to ensure compliance with licenses of dependencies. The simpler language of more permissive licenses may be out weighed by the complication of needing to ensure compliance with licenses of dependencies. Does NVDA have any GPL dependencies? NOTE: Even with GPL to be legally safe one should still be checking the licenses of dependencies.

mwhapples commented 9 months ago

With regard to dependencies of NVDA, espeak NG is licensed under GPL 3 or higher. Espeak NG might be simple to unpick by those who want to be free of that GPL dependency.

paxcoder commented 9 months ago

The problem is when you want to publish an add-on that isn’t GPL for some reasons.

paxcoder commented 9 months ago

Ah, espeak ng, we should try to talk with these folks there too, to make them switch licenses too.

mwhapples commented 9 months ago

There are examples of where NVDA has been connected with proprietary software, two examples are the Acapela voices http://www.acapela-nvda.com/ and the eloquence and vocalizer voices by CodeFactory https://www.nvaccess.org/product/eloquence-and-vocalizer-expressive-add-on-for-nvda/ Do you have any solid examples where developments have actually been blocked by the GPL? Why would it require MIT rather than something which offers better protection to the NVDA core like LGPL or MPL?

zstanecic commented 9 months ago

Hi,

That is not the problem. add-ons from:

https://actlaboratory.org

are nt gpl.

One of these are commercial.

-- Ta wiadomość e-mail została sprawdzona pod kątem wirusów przez oprogramowanie antywirusowe Avast. www.avast.com

paxcoder commented 9 months ago

You can, but you need to give away the python code, and allow people to legally use it.

ramoncorominas commented 9 months ago

@paxcoder Do you have a real example of this problem or are you just theorizing that someone, someday, will be blocked by the current license?

Adriani90 commented 9 months ago

There are other commercial addons out there or at least they are bundled with commercial software, for example the Unicorn DVC remote solution from access4u. Babbage has also stuff like that in their portfolio. No one restricts you to bundle your commercial software with an NVDA addon which is available open source. I strongly disagree with an license change, simply because of the philosophy of the community and of NV Access which is to give blind people access to Windows at no more costs than sighted people. We should never sacrifice the open source nature of this project. If you want to make money with your addons development, you can sell commercial software providers your consultancy and programming skills and make them bundle the nvda addon with their software package rather than asking vulnerable groups of people impacted by bad accessibility to pay for it. make parts of your addon source code available and everyone is happy. By doing this you contribute to a more sustainable work for better accessibility, and you even support more innovation because your addon and your consultancy services inspire also others to develop new things.

Emil-18 commented 9 months ago

I agree with @Adriani90. Changing licence may potentialy lead to things like add-ons costing mony, or virus add-ons, because they are allowed to be closed source.

beqabeqa473 commented 9 months ago

I don't see a point of this discussion.

If you want to make your addon paid, license non-derivate work with another license and nvda derivative will be gpl. I cannot see real points in this issue and think it should be closed.

On 12/25/23, Emil-18 @.***> wrote:

I agree with @Adriani90. Changing licence may potentialy lead to things like add-ons costing mony, or virus add-ons, because they are allowed to be closed source.

-- Reply to this email directly or view it on GitHub: https://github.com/nvaccess/nvda/issues/15958#issuecomment-1868621033 You are receiving this because you are subscribed to this thread.

Message ID: @.***>

-- with best regards Beqa Gozalishvili Tell: +995593454005 Email: @.*** Web: https://gozaltech.org Skype: beqabeqa473 Telegram: https://t.me/gozaltech facebook: https://facebook.com/gozaltech twitter: https://twitter.com/beqabeqa473 Instagram: https://instagram.com/beqa.gozalishvili

XLTechie commented 9 months ago

To me, the feature request here doesn't seem attached to the reasons given.

If the objective is to allow add-ons not to be licensed with the creaky old GPL version 2, then why not request that the GPL2 requirement be removed from add-ons? Why request that the whole of NVDA re-license as something else?

The reasons given do not warrant such a drastic change, and many downsides have been presented.

At least if the question is whether to be more permissive in add-on licensing, then that should be the feature requested, not an entire re-licensing.

I too vote for closure, though I would be open to arguments for lowering the bar on add-on licensing. In a separate, more targeted, issue.

A blessed Christmas to all!

Adriani90 commented 9 months ago

It is legally not possible to have an addon that injects code in the software with a totally different license. It can have derivative licensing but still it needs to be based on GPL. Just because a license is old this doesn‘t mean it is bad or so. I am closing this discussion as per comments above.

josephsl commented 9 months ago

Hi,

I'm reopening it as this is a discussion that should involve NV Access folks.

One more thing to consider: giving away code that you wrote is not solely based on license obligations - it comes from a person's heart and thinking. Why was NVDA licensed under GPL 2 in the first place? Ask us and we can tell you sotries of commercial software, ableism, costs, and ongoing tech-based discrimination, to name a few. Remember my earlier comment about committing to disability culture? This is why: by licensing NVDA under GPL, people writing derived works such as add-ons are asked to contribute back to the community they are part of. Do you think closing Python code can speed up innovation? That depends, although I must warn you that tools exist to decompile Python bytecode.

If you do need to close off code that would interface with NVDA for various reasons, I must tell you that the answer (based on GPL terms) is "impossible". As you know, GPL states that licensees can ask licensors (developers, in this case) for a copy of the source code, and licensors must give access to their code upon request (these days, this is met by posting source code online in places such as GitHub); this extends to derivative works such as add-ons as we discussed numerous times. If you would like to create a different screen reader based on NVDA and wish to change licenses, then that's fine if NV Access okays this, but as I and others said, you must be willing to untangle dependencies and license terms.

So far, the sentiment on here is closing this proposal. However, I'm reopening it to hear NV Access staff's opinions.

Thanks.

thgcode commented 9 months ago

I am sorry, but I am against the license move. Many things on my job were made easy because (in theory and in practice) if someone wants, they can modify all of NVDA's code to make it operate in the way they want, if someone needs a fix, in theory the users themselves can code it directly and not wait to a closed source update. Other screen readers do not offer this possibility. After the license move, if someone wants, nothing will stop them from making another commercial screen reader based of all the code NVAccess and the contributors worked so hard for years, or open the possibility for NVDA itself to become closed source. And worse, if we wanted to change something in the commercial code, we will not be able to, because it is closed. In my oppinion, NVDA should remain GPL, to stay on the hands of its users. Also it could create a community split, those who prefer the closed source forks of NVDA and those who don't, and we would be encouraging all the things that happened before the creation of NVDA, blind and visually impaired people needing to pay more to use computers.

LeonarddeR commented 9 months ago

I have some experience with licensing issues surrounding NVDA, and can tell you that choosing a more permissive license only encourages parties to benefit even more from the fact that NVDA is open source, without offering anything in return. For example, someone can just fork NVDA, gain money from it and pocket the profits. While gaining profit from a product is perfectly valid, it is against the philosophy behind NVDA. For example, several paid add-ons in the NV Access store need to offer their python code under the GPL, because the GPL doesn't allow them to close the source of their add-on. Going more permissive means that they no longer have to bother about their code being open.

I would personally not bother NV Access about this, especially given some people, including myself, will never agree with a more permissive license change.

LeonarddeR commented 9 months ago

I'm reopening it as this is a discussion that should involve NV Access folks.

I agree with @Adriani90 that this can be closed. If this needs to be a discussion, lets make it one!