davidfoerster/KaleidOK-examples

Choose a redistribution license

Opened this issue · 1 comments

While preparing a distributable package for KaleidOK I looked for a license under which we can distribute it. For this we must find a license that is compatible with all the licenses of the libraries that are distributed together with KaleidOK. At the moment we use runtime libraries with the following licenses1,2 (emphasis on the most frequently used):

  • AGPL v3 (only iText for PDF output)
  • GPL v3 (e. g. TarsosDSP)
  • GPL v2+ (e. g. Synesketch)
  • Apache License v2
  • BSD License (e. g. JOGL 2, the graphics rendering library)
  • MIT License

If we want to maintain most of KaleidOK's current functionality we're left with two options:

  1. the Affero General Public License, version 3, the most restrictive of the top of the list.

    Its additional restriction over the (non-Affero) GPL v3 are unlikely to affect the future use of KaleidOK itself3, but it makes (partial) integration into other works much more difficult because it forces them to be released under a less common and very restrictive license themselves.

  2. Alternatively we can choose GPL v3 if we remove or "decouple" the PDF export (which is not in a finished, usable state anyway).

    A possible option for decoupling is to leave the source code for PDF export in the source code repository (which doesn't include iText) but remove it and iText from the stand-alone application package.

I prefer option 2 even though it requires some work and research.


1 The list is sorted according to the “hierarchy of license compatibility”, i. e. works published under a license appearing lower on the list may be included in or used to derive works published under a license appearing higher on the list. This correlates roughly with the restrictiveness of the license.

2 There are some libraries published under LGPL variants (e. g. Processing Core and Minim) which may be bundled and redistributed (as easily separable entities with attribution and source code access) together with works under any or no license.

3 “[Compared to the GPL the AGPL] has one added requirement: if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there. The purpose of the GNU Affero GPL is to prevent a problem that affects developers of free programs that are often used on servers.” (source and example)

The prerequisite for option 2 is now implemented in d764219 and merged into master-next.