I have deliberately used the strongest possible licence (GNU Affero GPL v3) to ensure ViGraph remains Free Software forever.
Without overriding the much more accurate legal text in the AGPL, if you are using ViGraph for your own projects, even commercial ones, and even if you add to it, you'll be fine. If you want to distribute your changed version to anyone else (for free or paid) then you need to publish your changes - ideally, pass them back to me so I can add them for others to use as well!
If you want to offer a commercial software product or service based on ViGraph, it's possible under AGPL, but it will give you some headaches. Talk to me to see if we can partner commercially on it.
If you want to embed ViGraph in a physical product (say, a laser controller or mixing desk), again, you can do it under very strict conditions (you would be required to publish any modules you add, and to enable users to build and replace the firmware). But it would probably be much more effective to talk to me about a commercial licence and support package.
Paul Clark
We have to be careful about the licences of external libraries used in ViGraph modules for compatibility with GPL/AGPL.
(please check licence compatibility and expand this section for each external library used in modules)
Used in
modules/audio/sdl-{in,out}
modules/audio/wav-in
modules/bitmap/sdl-out
modules/bitmap/image-in
SDL2 uses the Zlib licence which is GPL-compatible.
Used in
modules/audio/alsa-{in,out}
modules/midi/alsa-{in,out}
The ALSA Project library is under LGPL-2.1, which is GPL-compatible.
Used in modules/dmx/ola-{in,out}
The Open Lighting Architecture library is under LGPL-2.1 (or later), which is GPL-compatible.
Used in modules/audio/pitch-shift
The SoundTouch library is LGPL2.1, which is GPL compatible.
Used in modules/iot/mqtt-{in,out}
The Eclipse Mosquitto project has the following licence:
This project is dual licensed under the Eclipse Public License 1.0 and the
Eclipse Distribution License 1.0 as described in the epl-v10 and edl-v10 files
Making use of the EDL option (which is basically new-BSD), allows us to link with our AGPLv3 code.
Used in modules/time-series/web-fetch
for HTTPS support.
The OpenSSL library has two possible licences:
-
Before 3.0.0, a dual OpenSSL and SSLeay licence, with advertising requirements, which is incompatible with GPL.
-
From 3.0.0, the Apache Licence v2.0, which is GPLv3-compatible.
The current Linux build makes use of the standard libssl-dev package which is currently 1.1.1. However, we make use of the 'part of the operating system' exemption, which is fine unless ViGraph ever becomes part of the main OS
For Windows, it is trickier, because we need to distribute the OpenSSL DLL. An update to OpenSSL 3.0.0 is in progress which will solve this.
But in any case, although I don't want to pollute things with an explicit licence exemption which will become moot anyway, as the primary copyright owner I am entirely happy for anyone to link the ViGraph code with OpenSSL, and as far as I know there is no issue in the other direction.
Used in desktop
for Windows.
QT is used only to provide the menu and basic 'about' window in the Windows desktop version. It is dual-licensed with LGPLv3/GPLv3 for Open Source use, which is obviously fine. If you want to distribute ViGraph as a closed-source product under a commercial licence from me, you will also need to obtain a QT commercial licence.
Used in Windows build for
modules/midi/winmm-{in,out}
(winmm)obtools/libs/net
(wsock32, iphlpapi)desktop
(ole32, comctl32, oleaut32, uuid)
These wrapper libraries are provided as part of MinGW, under a MIT-style licence, which is GPL-compatible.
The underlying DLLs are of course installed as part of Windows and need not, and should not, be distributed.