AGPL licence
|
3 posts
|
I am considering learning and using Frog CMS for my new web design company. It seems to be the CMS I was looking for. But I am not sure about the implications of the AGPL licence. From what I understand, the difference between the GPL and the AGPL is that with the AGPL, I have to make the source code of the websites I sell to my clients available to EVERYONE. Don’t get me wrong, I am generally a GPL advocate. But this AGPL variation, if I understand it well, is a big show stopper for any serious company. I mean, I would be happy to collaborate in the Frog CMS project (I still have to test it to see how I like it), but I just can’t consider putting a link of the kind “The source code of this website is available here” in the footer of the websites I sell to clients. It is THEIR website, and I wouldn’t want to impose anything of this kind. Am I getting something wrong? From what I see (from the thread “Live sites running Frog CMS”), no one has offered any source code. |
|
1493 posts
|
I’ll make a stab at this one, Antoine, although I’m not the most knowledgeable about license types/implications! As I understand it, what is AGPL’ed is the source code, and these are the files that include the AGPL License “header”, like this:
What you are producing using Frog CMS is not part of its code base. The license on your site is no more part of AGPL than the copyright of a book I write using MS Word is governed by its license terms. Should you alter the source code of Frog, the license stipulates that your code must be released under the same license terms. I think I have that right — but I am open to correction! There is a nice explanation of AGPL 3.0 that I found helpful, although obviously it is one person’s take on things. My understanding is that Paragraph 13 is the specifically “Affero” bit, which pertains to software over networks. The Wikipedia AGPL page is worth a look too. It would be good to hear from some of our Frog-using Web-pro’s, but in the meanwhile, I hope that helps. |
|
1493 posts
|
One more thing…
But Frog CMS is not “their” software. You, the developer, provide software (Frog) which bears a certain license (AGPL), but the website is not the software. Again an analogy to supplying, say an Access database: you supply the software (Access) which has a license (MS EULA — horror!), but the database tables/queries/reports/frontend/backend are not the software. In both cases the buyer/client is bound by the terms of the software, but what is produced with it is not bound. Does that make sense? Is it right?! :) |
|
1493 posts
|
One last ;) thing. You can check this thread and see the last two posts. They come from the core developer (mvdkleijn) and the project owner (philippe) respectively, and the interpretation there looks like the one I’m offering here! |
|
3 posts
|
From the nice explanation:
And from the AGPLv3 preamble:
The way I see it, if I use Frog CMS on a website, I have to give a link to the source code. If not, what is be the difference between GPL and AGPL ? I also wonder why is Frog under AGPL instead of normal GPL, do you know the reason? In my understanding, in the GPL, when you publish a software, you have to give access to the code. And in the AGPL, in addition to the GPL obligations, when you give access to a service of the software (example: a web page rendered with Frog), you have to give access to the source code. |
|
3 posts
|
Thanks David for you answer by the way :P I really hope you are right. |
|
1493 posts
|
From the Affero section:
But as long as you don’t modify any of the files with the AGPL header, I think you are fine. I think that is the point of the other thread I referenced above. Any other takes on this? It is certainly NOT the intent that the AGPL should be a “show-stopper” for using Frog, of course!! |
|
3 posts
|
Hmm, yes, I see your point! Hehe, I think I’ll try to learn how to use it now. |
|
291 posts
|
First of all I want to say I am not GPL advocate. I prefer non-restrictive, non-viral licenses such as MIT or BSD. AGPL license actually CAN be showstopper. As long as you are happy default features of Frog everything is ok. However if you change how Frog or AGPL licensed plugin behaves problems start. License says the following:
Meaning, if you change something you must make source available to download. Which brings me to another problem (which I did not think about earlier). Because AGPL is viral it forces most of the plugins to be AGPL. Consider the following code which is found on most of Frog plugins:
Frog PluginController is AGPL licensed. Your plugin which subclasses will be considered derivative work and becomes AGPL too (so it seems I need to change licenses of my plugins). Have you modified someones plugin? Bad luck. Now you have to make it available for download or rewrite the plugin from scratch. Still if you write plugin from scratch but you use Frog plugin API by subclassing the PluginController the new plugin becomes AGPL too. Because it is derivative work you must make the source code available. Imagine if you have some internal system which you want to access from Frog. Writing a plugin is great option. However if you do not want to give details of your system to public (by publishing the source code) you cannot extend any Frog code. This means you can not use Frog plugin API. Also Google does not allow AGPL licensed projects to be hosted in Google Code. |
|
651 posts
|
@tuupola Let’s do this the other way around then… lets assume here that neither AGPL nor (L)GPL are valid options. What do you suggest as an alternative? For me, the MIT and especially the BSD licenses are unacceptable. They would allow anyone (including companies) to
That to me personally is not acceptable. |
|
1493 posts
|
And just for info, here are the Google Code license options currently available:
|
|
291 posts
|
There is reason why successfull projects (including Radiant) are MIT / BSD licensed. They give freedom to programmer to do they want. All your points are true except this:
MIT nor BSD license do not allow this. Frog is actually violating Radiant’s MIT licensed code by removing the copyright notes of original author. MIT license allows you to relicense to some other license but not remove the original copyright.
Looking at code most of Frog admin JavaScript code is taken from Radiant. License is changed from MIT to AGPL (which is legal). Removing original authors copyright is violating MIT license. If thinking the relationship between Radiant and Frog. What Frog has done is:
Copying here is debatable since it is a port. Clearly Frog is rebranded Radiant. Radiant license allows this. However Frog changing license to AGPL effectively takes away right for Radiant to take back any bugfixes / improvements made to Frog. If Radiant would take any code from Frog it would force Radiant to AGPL. This is problem of viral and restrictive licenses. Perfectly legal but feels unfair to Radiant. If you ask my opinion which license should Frog be. I would say same as Radiant was – MIT. To us (as web agency) AGPL is unacceptable for any larger project. Larger projects usually need customization. AGPL forces us to provide download link on website which uses customized code. Which is a pity. Frog is the first PHP CMS I actually enjoy to use and hack. I personally have only two complaints: Prototype and license :) They should be jQuery and MIT. Then Frog would be perfect (for me). |
|
651 posts
|
First off: I’m not going into a Prototype vs. JQuery discussion here… ;-) On to the civil discussion. :-) As a small side stepFrog is a PHP port of Radiant. The project has never hidden that fact.
That is a bit of a hasty statement. For obvious reasons, the code wasn’t copied.
However, the one exception may indeed be the javascript. I haven’t been with the project for a long time, so I don’t know if it was or wasn’t copied. (nor have I looked into it) If it turns out that the javascript was copied, I’m entirely in favour of restoring the original copyright notice(s) on those particular files.
I don’t see how this would even be applicable. Simply put: PHP != Ruby on Rails. (apart from the above mentioned javascript obviously) Getting back on topic
A more accurate statement would be: “There is reason why many successfull projects (including Radiant) are MIT / BSD licensed.” There are a lot more projects out there which use GPL. There are also BSD licensed projects out there who got their project copied & rebranded and were very unhappy about it. Anyway, I don’t really care what license we use for Frog. In the end, I only care about a number of requirements I would have that the license should fulfill. The question is which license would fit the bill? A set of requirements for a licenseJust to give you a clear picture of what I (personally) would find an acceptable license for Frog:
ConclusionThe MIT/BSD licenses clearly do not fit the bill. As a project, we should be looking at what we want in a license and choose a license based on that instead of what we’re doing now and have done in the past. (choose a license and then have a discussion like this) |
|
291 posts
|
I think most of the problems go away if plugin author can choose the license him/herself. This way you could for example make authentication plugin which works against your proprietary CRM system without being forced to present download links to your code (which might be considered a derivative work). |
|
486 posts
|
I’m for the MIT license. I don’t think it’s a big threat or even a big deal if anybody chooses to rebrand Frog for commercial purposes. Who cares? That’s the spirit of open source is let people do what they want with it. It does no harm to Frog or the Frog community. Many of their private, corporate contributions may even make its way back to the open source Frog community. Imitation is the best form of flattery. If someone adopts Frog commercially, then that says good things about Frog! It’s an endorsement! I think Tuupola’s point about Frog itself being a derivative port of Radiant CMS is entirely valid, and Frog should not try to prevent other people either from porting or forking it. I’m also with Tuupola on JQuery :) |
|
651 posts
|
edit: @ricks – I’m sorry but I have to disagree. Look at it this way: You spend hours/weeks/days in developing something with the intention of giving it away for free so people are better off. Now, a company comes along. Copies all your work and re-brands it as “Foobar CMS” for example. They start selling it at € 1.500,- euros a piece. They never mention anything about the Open Source version. I personally wouldn’t want that. About the JQuery thing: assuming we’re not talking about a personal preference for using JQuery instead of Prototype, I’m sure you can give a whole host of objective reasons to switch. ;-) original post: sigh I really wish all this sort of stuff/discussion wasn’t necessary… oh wel… In response to this discussion, I’ve been digging into the (A)GPL license terms a little bit deeper. Let me first see if I can’t give a reasonable summary of the problems people seem to be having with AGPL. (please correct me if I’m wrong!)
Now lets see if I can address these two points. For the first problem: the AGPL is applicable only to the Frog CMS source code. The AGPL is not applicable to data used with the program. That means that any content you put into Frog CMS should be considered as you making use of Frog CMS. It does not mean your content now falls under the AGPL license. A slightly more ambiguous problem is that of designs used for a Frog CMS hosted site. I personally consider a website design to fall under the category of “making use of Frog CMS”. Therefore the design would not automatically fall under the AGPL license. I must admit though that this is a bit of a grey area. (continue reading though because I think all this can be solved easily) As for the second problem: according to the AGPL license, any plugin that was created for Frog would automatically be licensed under the AGPL. Sorry about that. :-) However, I don’t think that was the intention of using the AGPL when Philippe switched Frog CMS to it. Now… For a possible solution. Please keep in mind that I’m no lawyer and don’t pretend to give any form of legal advice here. If (and I say if) I read the GPL and AGPL licenses correctly, the main difference between the two is that the AGPL forces you to make any modified version available online. That’s it. I also seem to understand from the license texts that for both the AGPL and the GPL, we (as copyright holders to Frog CMS and license granters) have to option to waive any of the conditions. My suggestion would then be: let us use GPL with an additional license attached to it. This additional license would grant people extra rights. Specifically, it would:
As far as I understand the texts of the GPL this would be possible. I checked with the CreativeCommons site and came up with this page explaining the GPL in laymans terms.
My focus was on the sentence above which seems to agree with my interpretation of the license text. What do you guys think? |
|
486 posts
|
I think it’s an acceptable compromise. |
|
1493 posts
|
If only my “private life” wasn’t intruding at the moment, I would like to participate more as the conversation unfolds. But in brief, my sense is:
My hunch is that Martijn has cracked it in the move from AGPL to GPL, with specific project qualifiers as he’s outlined. I believe we still need input from Philippe on this, whether on- or off-forum. That’s a bit of a rapid post, so it should (for the moment!) be taken in the “FWIW” category. I’m grateful for the even-tempered discussion, btw. These things can sometimes get fraught! |
|
291 posts
|
GPL is move to better direction. Although I do not know how complicated it gets when you have license plus some extra rules? I was checking the source and notices that up to August 6 Frog actually was MIT licensed. Someone care to elaborate why move to restrictive license? Anyway. I actually wrote a longer reply but deleted it. I realized this might be just my personal problem. I like Radiant. I was really enthusiast finding Frog. However the restrictive license is a big turnoff. The dilemma is I really do not know if I want to invest my time when there is licensing risk. It takes time to worry about license violations, explaining clients what do the restrictions mean and how to bypass the license (move logic out of Frog) when needed. These are real problem when companies and money is involved. Maybe I am just too lazy :) MIT + BSD is easy when you do not have to worry. So I am weighing my options a bit. |
|
651 posts
|
Tuupola, The move away from the MIT license was undertaken by Philippe. I’m not sure what exactly his motives were. As for the MIT/BSD vs. GPL licenses. It is a matter of perspective and philosophy I guess. You could describe the ideas behind both of them as follows (warning – oversimplified): MIT/BSD – “We want anyone to be able to do anything with the software but we want recognition.” (A/L)GPL – “We want anyone to be able to do anything with the software but we want recognition and we want you to share your changes back to us.” The Creative Commons website has a nice “human readable” version of both the GPL and BSD licenses. Sure, the GPL has the provision that your modified version of a piece of software has to have the same (GPL) license… but that’s the only way to make certain that modification are shared back to the community. If the license were to change to anything else, that “share your changes back” principle wouldn’t work anymore. As you said, it might be our personal hangups ;-) Anyway, getting back on topic. 1. Possible license risks. These should be identified and stamped out immediately. Any files/source code that was copied from other sources should retain the appropriate copyright statements and such. 2. Restrictive licensing. I (personally) wouldn’t call the GPL restrictive except for their clause about subclassed classes. We can simply override that clause by adding our own that specifies that what we consider “plugins” in Frog are exempt from the “thou shalt use GPL” clause. (i.e. you could use any license for a plugin while Frog itself was GPL) Many companies are using, modifying and extending GPL licensed software.. so that can’t be the issue. (there’s just a lot of misinformation about the various licenses) |
|
291 posts
|
Yes, GPL is much better than AGPL. GPL does not require me to provide download link if I modify Frog code on client website. This is my biggest concern. With GPL I only need to to provide modified source if I redistribute Frog itself. About being restrictive. I see it restrictive because it takes away my freedom as programmer to reuse code. (A)GPL project can take code it wants from MIT licensed project. However I cannot take single line of code from (A)GPL project to MIT licensed project unless the other project is first relisenced to (A)GPL. Rails, jQuery, Prototype, Radiant all get changes back from community, and they all are MIT licensed ;) But in any case. I think GPL Frog and plugins with any license developer wants seems good compromise. |
|
291 posts
|
BTW. There are more license violations in Frog. Some helpers are taken from Code Igniter framework which is a bit modified BSD/Apache style licensed. Their license states:
The problems:
If Frog wants other people to play by the rules Frog should play by the rules too :) |
|
1493 posts
|
@tuupola – thanks for these. I had already noticed the “Pagination” helper issue, and it has been restored to its proper form; and now the other two will be as well! So again, thanks for the “heads up”, and do let us know if any other violations are spotted. We don’t like them! We want to fix them! |
|
651 posts
|
We’ll add back the copyright statements before the release of 0.9.5! :-) (or sooner if I or David find the time) |
|
1 posts
|
@tuupola “Yes, GPL is much better than AGPL. GPL does not require me to provide download link if I modify Frog code on client website. This is my biggest concern. With GPL I only need to to provide modified source if I redistribute Frog itself. About being restrictive. I see it restrictive because it takes away my freedom as programmer to reuse code. (A)GPL project can take code it wants from MIT licensed project. However I cannot take single line of code from (A)GPL project to MIT licensed project unless the other project is first relisenced to (A)GPL.” I have to disagree with you there; like the AGPLv3, the GPLv2 actually does contain this restriction, whereas the GPLv3 removes it – so the AGPLv3 is just keeping it in. In more detail, the GPLv2 definition used is distributing which is hard to argue that sending code over a network is not distributing it. The GPLv3 adds the exception for network servers, whereas the definition in the GPLv2 didn’t. In terms of whether or not you are required to release code. The GPLv3 does not require you to release code if you are distributing over network servers, however the GPLv2 and AGPLv3 do even if you are just distributing portions of compiled or source code – they require full source code to be released. This points seem to differ with those actually being raised in this thread… |