On Tuesday, February 25, 2014 3:50:06 PM UTC-5, Amy Stephen wrote:
On Tuesday, February 25, 2014 11:24:09 AM UTC-6, Hannes Papenberg wrote:
Ok, could someone clear this up for me? So far I could not find an
explanation why we should switch to LGPL with the framework. I mean, I
read lots of explanations why it is not a big issue, but so far I could
find nothing regarding why we should do it in the first place.
Most frameworks are licensed using a permissive license, like MIT. The GPL is a barrier for many since it forces any application that uses the framework to also be GPL. Changing to LGPL brings the licensing better inline with other framework offerings. Ultimately, this should help developers use and contribute to the Joomla Framework.
Obviously, there are other areas that improvements will be needed, but current licensing is one challenge.
Not to be argumentative, but the above is not quite accurate. There are accepted, court proven interpretations of some of the clauses of the GPL. However, "force any application to also be GPL" is not one of those.
GPL was designed for compiled programs, not interpreted languages like PHP.
A C program may use a number of function calls. Some are defined in the application created by the developer, and some can be imported from other libraries. In those days, it was very common that when you used functions from some other library - when you compiled the program you would use the compiler options which embedded the library in the executable. Since this involves **copying** code, it clearly falls under the terms of the GPL which are applied when you distribute[give to others] a compiled program which contains code which was licenses under the GPL.
This is called "static linking".
Since having everyone create their own function to do standard things, like printing text to the screen, ends up causing lots of conflict - C programmers involved in writing the GCC compiler[that's the GNU C Compiler, distributed under the GPL] created libraries of these standard functions and put them in the compiler. In order to convince everyone to use them, they created the LGPL which has an exception for precisely this sort of thing.
There is another form of linking called "dynamic linking" where instead of including the compiled library in your application - you just assume it exists and try to use the functions. If it doesn't, an error occurs.
There is much debate over whether or not using dynamic linking with a library licensed under GPL means your application must also be GPL. Richard Stallman and the GNU Foundation believe it does. Linus Torvalds disagrees. There is not one single court case where this issue that has been decided by a judge. Note: **decided** by a judge is the only way for the decision to be used as precedent for other cases. If the case is settled[as most are] that settlement doesn't "prove" anything.
So how does the above apply to a PHP library? Well, unless the PHP library is distributed as compiled code[for example, the Phalcon PHP Framework], none of it applies. A PHP program is not compiled, it is distributed as source code.
So why LGPL rather then GPL? Mainly because of the *perception*. GPL is perceived as being "viral" and LGPL is perceived as being "permissive".
At the end of the day, it really should not matter or cause problems with framework development. As long as we keep short headers such as:
* Part of the Joomla Framework Twitter Package
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
A place the actual license text in a seperate file such as:
It is easy to update these things to swap one license for the other. Just change the LICENSE file and the @license lines and your done.
Note: I want the license changed to LGPL because it provides better clarity of the copyright owners intention on how the license should be handled. It does not make any legal difference which one is used[I invite anyone to prove me wrong with a link to a court case which was *decided* by a *judge*. Please note that cases mentioned by the GNU Foundation are generally flawed. These cases generally have a large number of different allegations of breach of license. The ones that the *judge* actually ruled on have nothing to do with this particular matter. Just because they "won" the case doesn't mean every single allegation was "proven".