Copyleft software license is broken when it comes to web apps
Now, we all much admire the Richard Stallman mindset and the libre/commons ideals of GNU GPL folks, they are the ones who pioneered the open source foundations by giving us things like core utils,...
Now, we all much admire the Richard Stallman mindset and the libre/commons ideals of GNU GPL folks, they are the ones who pioneered the open source foundations by giving us things like core utils, emacs, gcc, etc. at a time when proprietary solutions were having a field day with absolutely zero competition.
However, the GNU GPL software license has a few practical problems when it comes to development of web apps. I came across these while developing a PHP web framework recently. I had initially considered GPL v3 but I will have to go with a permissive license like MIT or Apache due to these issues:
- The GPL applies to your entire software as a whole including derivative works. Now what constitutes a derivative work is often highly technical but not even an attempt has been made in GPL to clarify that. That question has been left vague for some reason which is never good from a legal perspective.
- In my case, the two
require
files are in thecore
directory while a plainindex.php
lives in the root for the user to override. This index.php is included as a template or stencil which the framework's user is supposed to override with their own code. In GPL lingo, this might well cause it to be a derivative work and that will require them to "contribute" those changes back to me which doesn't make any sense at all! There needs to be an exception for included sample or example files for which the GPL shouldn't apply. - There is also a problem with GPL due to the nature of web or Internet. Another app I am developing is a bit heavy on JavaScript and contains static *.js and *.css files. The mere running of the app in a web browser will cause these files to be "distributed" through the
<link>
and<script>
tags. From GPL perspective, this becomes a technical violation as no GPL license had accompanied this distribution. And in case you minify or compress your JavaScript or stylesheets for efficiency (which is a very common practice), this violation becomes even more grave as you're technically distributing GPLed source in an obfuscated form!
The GPL badly needs to be upgraded for these scenarios. Until then, it remains a good use case for desktop or console apps which run directly on your computer and usually have a clearer boundary of what constitutes a distribution and/or derived work.