With the release of FlashMQ version 1.5.0 comes a change in license to a more permissive one. Before 1.5.0, the code was licensed under the Affero General Public License version 3. The primary reason was for ‘network copyleft’, meaning that hosting is considered distribution, which comes with the requirement of making changes to the source code available even when binaries aren’t distributed, but only hosting services are offered. However, the GPL 3 family has various problems that make deployment harder, so the choice was made to switch to a more permissive license, the Open Software License 3.0.
The problems with the (A)GLP3 for FlashMQ were:
- The GPL is too strict (or purposefully ambiguous) in considering linking a derivative work (requiring the combined work to be GPL). This is not only problematic for the plugin interface, but also for the use of OpenSSL.
- The requirement of providing ‘installation information‘ prohibits deployment on embedded systems.
To the first point: our view is that linking is a technical implementation of making two programs work together. Had the plugin interface been HTTP, the GPL would not have considered it a combined work. This makes no sense. To quote Lawrence Rosen about the OSL 3: “The verbs used in § 1(b) [“translate, adapt, alter, transform, modify, or arrange”] reflect the kinds of activities that we generally do to create derivative literary or other expressive works, and those things—not functional linking—create Derivative Works as defined in this license”.
To the second point: the GPL3 prohibits so-called Tivoization, by requiring that Installation Information is provided with distribution of the software on a User Product. One can argue over whether open source software should be allowed on locked-down hardware (or software that is burned in a ROM for that matter), but the GPL3 way of getting around that is very misleading. You can allow a license exception, but others are allowed to remove that license exception, so they can fork your project and you can’t take the changes back. This is very much the antitheses of open source. I recommend watching Linus Torvalds’ view on GPL3.
- FlashMQ is still open source.
- FlashMQ is still network copyleft.
- FlashMQ can be installed on computer equipment without allowing the user to change it. Providing changes to the source code is still required.
- Plugin developers/users have more assurances their work is not considered a derivative work of FlashMQ and so can be distributed in binary form, or not distributed at all for hosted environments.