I am not a lawyer.
I got a request from someone today to create a version of Tasks Pro™ as a module for Mambo Server. Mambo is an open source project released under GPL.
There was talk on the WP Hackers list recently that discussed how WordPress plugins had to be released under the GPL, citing this FAQ:
If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in.
It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them.
If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, so plug-ins must be treated as extensions to the main program. This means they must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed.
If the program dynamically links plug-ins, but the communication between them is limited to invoking the `main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.
That seems to be at odds with FAQ #10 on the Mambo web site:
10. I have written a Component, Module, Template for Mambo. Do I have to release it under the GPL?
No The GPL allows you to write your own extensions for Mambo and to release those extensions under whatever license you chose.
Has anyone delved into this before? Please educate me.
I don’t think the WordPress argument is correct- let me give an example.
Company A creates plugins for Photoshop for the mac, and sells it for a price, and keeps it closed source.
Mr. GNU creates a photoshop clone, including it’s plugin api, and releases it under the GPL. The plugin that company A created can be used in this clone.
Does that mean that company A now has to give away it’s source for the plugin under the GPL license?
I don’t think so.
You bring up interesting speculation, but I don’t think it is comperable. In your case, the plugin doesn’t rely on GPL’ed code.
My understanding is that if a plugin relies on GPL code, it must be released under GPL. If I made a version of Tasks Pro that relies on Mambo’s login system, it seems to me that it would be subject to the GPL as well.
However, from the FAQ above, Mambo seems to disagree.
This GPL FAQ question relates how Mambo could have provided for proprietary modules. But the Mambo License at the doc site does not mention this. You could probably ask them why they do not include the special exception clause in their License.txt
According to Module License you could release a GPL friendly version of your software for Mambo’s use.
I think Mambo is confused about Mere Aggregation and Combining Modules
In any case, I think you should ask Mambo to be clear, and mention in their License what they claim according to your link.
The Mambo concept of module seems to be (“….a simple module using some basic API from Mambo.” ) something that uses an API to link to Mambo (from here), and I really do not know if your Program will function that way with Mambo, in which case there is a lot of grey areas.
I am not the expert though, and these are just observations based on what’s on “paper”. In summary, if Mambo says you can maintain a copyright, they should say that in their License document, says me.
I use Mambo as my website CMS and had to re-read the license to try to make some sense of this but I think I got it figured out.
There are three key clauses in the GPL that pertain here: 10, 11, and 15. They’re all confusing but I don’t think they’re contradictory.
Clause 10 basically says that if you write an extension/module/component/plug-in, etc. that works with Mambo, then you are not forced to release that extension, etc. under the GPL.
Clause 11 then addresses extensions that ARE released under GPL, which gives the people who download it “the freedom to pass on the software with or without a fee”.
Clause 15 addresses the idea we’re talking about here, if he chooses to make it so, where we have a non-GPL extension, etc.(i.e. Tasks Pro).
In this case: “Website X is using, or offering, my non-GPL Component, Module, Template without my permission, or in breach of its license…” The key is that the extension, and Mambo, have been released under different licenses.
To me this all boils down to:
A) You can create and release an extension for Mambo under any license you choose,
B) If you CHOOSE to release it under GPL, you are allowing other people to freely modify/re-distribute/sell, etc. your extension as long as they in turn allow it to be modified/re-resold, etc., according to the GPL.
C) If you CHOOSE to release your component under a more restrictive/proprietary license, then it (the extension, we’re not tlaking about Mambo itself) can only be used in accordance with the restrictions governing that license.
Just because Mambo is GPL’d, does NOT mean that the extension(s) you write for it have to be GPL’d also. You just can’t turn around and sell it together with Mambo (as a single package) without at making the Mambo code itself available under the GPL.
So, I think Alex COULD release a version of Tasks Pro that works with Mambo, charge a fee for it, and still have it protected under the license he chooses–not under GPL…
My “dos pesos”.
I agree that this seems to be what Mambo’s license says, but that seems to conflict w/ the GPL (which I believe they are bound by). If GPL does extend to plugins, Mambo’s license would seem to be at odds with this, and I think GPL wins.
The GPL does NOT apply to plug-ins:
“These requirements apply to the modified work as a whole. *If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.* But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.”
The GPL that Mambo is bound by, does not extend to plug-ins/components/etc. Tasks Pro is already separate, independent, and “not derived from” Mambo. So linking into the Mambo API shouldn’t break any GPL rules because it doesn’t even involve modifying the Mambo code, it’s just linking two completely separate packages…The main issue is how you distribute those packages–in this case–totally separately…
I think that is talking about licensing different parts of the same program, not plugins.
I’d likely need to modify Tasks Pro so that it relies on Mambo for user authentication, etc. At that point, it would likely rely on GPL code and I think it could fall under the GPL plugin FAQ quoted above. Thoughts?
Yeah, if you’re using Mambo’s user-auth, you’ve crossed the line, I think.
I’d seriously consider contacting the EFF or something.
I think you’re right Geof, the salient detail may be here:
If this is so, the only way I’d be able to share user authentication w/ Mambo or phpBB, etc. would be through a standalone solution like a LDAP server (which is the right solution in the first place, but most people don’t have one).
This link might help:
That would be the page above that I link to and quote from. 😉
I think that is a gray area because linking varies from language to language. Dynamically linked C code is very specific, but what does it mean in an interpreted language like PHP? I would argue that the FAQ doesn’t do anything to answer that kind of question.
My interpretation is that the key points are changes to the GPLed code and distribution. Think about it, if a GPL program is designed to support plugins the API may be a C API or it may involve sharing some variables (likely in PHP since reference passing is so mangled), but the point is that the original source will not have to be modified. If you don’t have to modify the source then you also don’t have to distribute the program and thus you should be free and clear.
Personally I don’t think you should depend on Mambo auth, because you have a great program that many people will want to use by itself. If you want to add an option to integrate with mambo authentication I think at worst it would be a gray area. I don’t see how anyone could complain about this, and even if they did the worst that could happen is you remove it.
This would definitely be an option if I did built it, not a new direction for the product.
Just remember that the GPL is all about the distribution of code from one party to another. So you can distribut your code however you see fit, including liscense. The GPL only applies if you distribute your code with GPLed code.
Same reason that some Linux kernal modules, which are pretty much useless from an end user prespective, are released seperatly in binary only format not under the GPL and all is cool because they are distributed seperatly.
Hope that helps.
GPL Clarification Continued
An IP lawyer was kind enough to take the time to share some knowledge with me. I was quite impressed with the way he boiled this down to something I could understand.
Here is a transcript:
Lawyer: Ok, first of all. The GPL is just a contract. I…