Re: Licensing and pip questions

James Scholes

This has nothing to do with hardware virtualisation, and for add-on users it's most likely irrelevant. This is only of any use to add-on developers who wish to use external Python packages which aren't included in NVDA (or stdlib modules which are removed during the build process).


James Scholes

On 14/09/2020 at 1:52 pm, Shaun Everiss wrote:
What would be needed for me to use pip and run an environment.
If you mean hardware virtualisation, my workstation has it.
Actually, to anyone that has an hp computer, it may need to be enabled in bios but you do have the support most likely.
I have seen this in a 6th generation system in bios as I was configuring it with friends helping for someone.
So its possible it will be about in every hp computer.
On 15/09/2020 4:48 am, Joseph Lee wrote:
As for Pip and virtual environments, unlikely as NVDA must be run as a dedicated binary for those who do not have resources to run Python, let alone virtual environments. It might be possible to create such a scenario on newer Windows 10 releases, but since many users are still on older Windows releases (even older Windows 10 feature updates), this coming to fruition is quite unlikely.

-----Original Message-----
From: <> On Behalf Of Omer Zak
Sent: Monday, September 14, 2020 12:49 AM
Subject: Re: [nvda-addons] Licensing and pip questions

On Sun, 2020-09-13 at 23:42 -0700, Joseph Lee wrote:
Regarding licensing question, as some may say that add-ons are
derivatives of NVDA, they must be licensed under GPL 2 as NVDA itself
is licensed under GPL 2. One possible workaround could be stating in
your add-on file headers that the add-on is licensed under GPL, or
perhaps GPL 2 or later. Note that not all dependencies NVDA uses are
licensed under GPL, so one must be careful of that. More info can be
found in NVDA license file (NVDA menu/Help/License).
Thanks for the reference to the license file.

I remember seeing mentions of proprietary plugins/add-ons.
It is my understanding from reading the above that those plugins work via the exception to GPLv2 which permits use of such plugins under certain conditions.

So I understand that my own plugin has to be licensed under GPLv2, but I'll be allowed to license few data files under GPLv3+ (they contain materials from GPLv3+ licensed projects).

As for including external modules, you must include them manually as
part of your add-on (Resource Monitor comes with Psutil for this very
Looks to me to be prohibitively heavy-weight.

Did anyone request a NVDA feature which would work like the following:

1. NVDA runs inside a virtualenv.

2. When installed, plugins may request that certain modules be installed from PyPI via pip.

3. A module in NVDA manages dependencies of modules installed via pip in behalf of add-ons, and blocks uninstallation of pip-installed modules unless all add-ons needing them have been uninstalled.


-----Original Message-----
From: <> On Behalf Of Omer Zak
Sent: Sunday, September 13, 2020 9:50 PM
To: NVDA Addons Mailing List <>
Subject: [nvda-addons] Licensing and pip questions

I apologize if the following questions are FAQs but I did not find
answers in any NVDA documentation that I know of.

I'll appreciate being pointed at answers in NVDA's documentation if
any, rather than getting direct answers to my questions.

1. What is the policy concerning licensing of NVDA add-ons?
Does NVDA require that all its add-ons be released under GPLv2+, or am
I allowed to release my add-on under GPLv3+ ("GPLv3 or later")?

2. I want my add-on to use a module from PyPI.
When developing, I can build a virtualenv and use 'pip install' to
install the add-on module in the virtualenv.
However, in end-user's NVDA installation I have no access to his
How to build my add-on to ensure that the end-user will have that
module in his system?
The key to making programs fast is to make them do practically nothing.
Mike Haertel (original author of GNU grep) My own blog is at

My opinions, as expressed in this E-mail message, are mine alone.
They do not represent the official policy of any organization with which I may be affiliated in any way.

Join to automatically receive all group messages.