Zoran Isailovski
... a passionate pythonista with an obsession for everything lean and clean
Contributions to MoinMoin:
Cheers
Messages to me
Welcome, Zoran!
Maybe add some more content to this page, e.g. what you use moin for, contact details, etc.
Your MoinUploadsCenter seems to be a useful extension, but you maybe want to check your license, I have slight doubts it is GPL-compatible (and you are using moin GPL code from your code).
-- ThomasWaldmann 2007-08-14 07:59:57
Thx for your hint Thomas, I wasn't aware of that. I will change the license to Apache License, Version 2.0, which is listed as GPL-compatible.
If—which I have not checked—your code includes or is based on code that has been licensed to you under the terms of the GPL, you must license the derived work under GPL exclusively if you publish it. See http://www.gnu.org/licenses/old-licenses/gpl-2.0.html:
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
-- MartinBayer 2007-08-14 22:06:30
Even if http://www.gnu.org/licenses/license-list.html explicitly states that code under a "GPL compatible License" may be combined with code under GPL, and the Apache License is listed there, I don't view my code as "containing or beeing derived from" moin's code, except in the abstract sense that it is structured according to rules imposed by moin's plugin API.
-- ZoranIsailovski 2007-08-15 16:52:24
To make a long story short: If you don't use code that has been licensed to you under the GPL, you surely are not bound to the terms of that license.
But to avoid misunderstandings:
1. Gnu.org states that Apache License, Version 2.0 is compatible with version 3 of the GPL, but not compatible with GPL version 2. MoinMoin is licensed under the terms of the GPL, either version 2 of the License, or (at your option) any later version. So you probably opt implicitly for a license under the terms of GPL version 3 here.
2. But even if on gnu.org it says that a license is compatible with the GPL, where "compatible" means that you can combine a module which was released under that license with a GPL-covered module to make one larger program, this surely does not mean you don't have to follow the terms of either license any longer. It only means that—according to the FSF—you may change the license of one part to match the requirements of the GPL part.
3. This is because the GPL has a very strong "copyleft". It is very clear on that point: You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
This means, as soon as GPL licensed code is used for a work (which means the new work is based on or includes GPL licensed code), the resulting work must be licensed under the GPL ("copyleft"). This applies also to works that combine third-party code, if one of the original works was licensed under GPL; which means that in that case the licenses of the other parts switch to GPL (which must be used for the resulting work as a whole due to copyleft). That is why the license has to be "compatible": it must (at least implicitly) allow that the code can be re-licensed under the terms of the GPL.
-- MartinBayer 2007-08-15 16:07:22So what is the conclusion of it all? You seem to be quite versatile about this subject, so maybe you can help me understand... The GPL refers to code containing or being derived from code under GPL, not explicitly to using that code (in the sense of calling upon it). In the case of a plugin, the situation becomes IMHO even more obscure, because it is actually the host app that makes the call to the plugin. Taken literarily, the plugin is then being used by the host app... (The fact that the GPL is a "science of it's own" and so difficult to fully understand is partially a reason why I do hesitate to apply it - though that would certanly save me some discussions.) -- ZoranIsailovski
The GPL covers only the copying, distribution, and modification of a program (or of its source code, respectively). But it makes no restrictions whatsoever to the act of running a program. Accordingly, I meant use not as in "usage" (= running the program), but as in "utilization" (= modify or combine the code).
Thus, if you don't "use" GPL licensed code for your code, which means every single line has been written by you yourself, or derives from sources that are not covered by the GPL, you don't have to worry about the GPL's terms. This applies also for cases in which your program calls a GPL'ed program (think of a frontend)—remember, the mere act of running a program is not subject to GPL license terms. But as soon as you combine your work with a GPL licensed program, thus forming a work that is based on either work, "copyleft" steps in, with the consequence that the resulting work must be licensed as a whole under GPL exclusively when being published.
If you think your work is not a (stand-alone) program, but a library, you might want to check the LGPL (GNU Lesser General Public License), which has a weaker "copyleft", but is guaranteed to be fully compatible with the GPL, as it is explicitly allowed to re-publish LGPL'ed code under the terms of the GPL. This means that LGPL licensed code can easily be integrated into a GPL licensed program (but not vice versa).
-- MartinBayer 2007-08-17 14:09:19Ok, this makes things somewhat more clear, thanks. I conclude: As long as a plug-in is only calling moin code, and is distributed on it's own, it does not need to be GPL. However, in order to allow for some future MoinMoin distribution to include that plug-in, the plug-in needs to have a license compatible with GPL, so that it can be re-published under GPL and re-packaged with MoinMoin. Right? -- ZoranIsailovski (BTW: How can I insert a time stamp like yours w/o typing it?)
Zoran, I just wanted to let you know how cool it is to post a comment, question or issue late night New York time and than wake up the next morning and find a response or even a solution already available. I really like your RatingSystemForMoin now. It's easy to use and has IMHO all relevant features. I'm looking forward to see it used in the MoinMoin wiki and maybe integrated in the distribution later on. And don't let you ever get demotivated by bitchy users -- AnkeHeinrich 2007-11-11 02:19:23