From the understanding that I am gradually gathering about the GPL it is not possible to mix licenses unless both have a special clause added to allow so. So how are the following possible?
Let's use Joomla as the basis of this example:
People develop plugin scripts that have to invoke library functionality from the Joomla core in order to function. This surely means that the plugin has to be GPL.
Said people then decide to sell the plugin scripts which I gather is fine as they are essentially selling a distribution/support service. But once purchased the end-user has every right to resell or do with it whatever they like (provided it falls under GPL terms).
Q1. So, how can people sell non-GPL licensed plugins for Joomla?
Q2. How is it acceptable to add some sort of activation system that limits use of the GPL source? Is this not going against the very goal of GPL?
Q3. How can a non-GPL licensed plugin for Joomla be restricted to non-commercial use?
Here is a response that I recently received from a non-GPL Joomla plugin vendor. They offer two varieties, non-commercial and commercial (but neither are GPL).
GPL does not mean that all associated or used software needs to be GPL. It regulates its use. We also would call "Joomla" not a product, it is open-source software under the GPL license.
Our extensions are open-source software under our own specific license terms,
In case you want to resell sites that use our extensions or the extension itself, that is not covered with our license. In case you want to use it on your own site, or sites which you create as designer for your customers, that is covered in our license.
I will not make reference to the plugin vendor at any point in this question because I do not want to make any false allegations. I am simply confused. In my experience of Joomla I have seen this situation over and over again and I have received similar responses.
I am sure that I am simply misunderstanding a fundamental aspect of the GPL, but I really want to understand it.
Added: Please note, my intent is not to sue or anything like that. I want to understand so that I can avoid the same from happening to a project that I will be releasing as open source later in the year. I just want to understand each angle.