AGPL licence

Feed 24 posts, 6 voices

Avatar
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.

 
Avatar
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:

/**
   Frog CMS - Content Management Simplified. <http://www.madebyfrog.com>
   Copyright (C) 2008 Philippe Archambault <philippe.archambault@gmail.com>

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU Affero General Public License as
   published by the Free Software Foundation, either version 3 of the
   License, or (at your option) any later version.

   Bladibladiblah....

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.

 
Avatar
1493 posts

One more thing…

It is THEIR website, and I wouldn’t want to impose anything of this kind.

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?! :)

 
Avatar
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!

 
Avatar
3 posts

From the nice explanation:

You must […] Provide a way to download the code over the same medium used to deliver the software service to the user: If you run a website which uses AGPLv3 code, your pages must provide a link to the software you’re running in the webserver (zipfile or version control system, it doesn’t matter).

And from the AGPLv3 preamble:

A secondary benefit of defending all users’ freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.
The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.

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.

 
Avatar
3 posts

Thanks David for you answer by the way :P I really hope you are right.

 
Avatar
1493 posts

From the Affero section:

… It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.

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!!

 
Avatar
3 posts

Hmm, yes, I see your point! Hehe, I think I’ll try to learn how to use it now.

 
Avatar
291 posts

Any other takes on this? It is certainly NOT the intent that the AGPL should be a “show-stopper” for using Frog, of course!!

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:

“If the Program as you received it is intended to interact with users through a computer network and if, in the version you received, any user interacting with the Program was given the opportunity to request transmission to that user of the Program’s complete source code, you must not remove that facility from your modified version of the Program or work based on the Program, and must offer an equivalent opportunity for all users interacting with your Program through a computer network to request immediate transmission by HTTP of the complete source code of your modified version or other derivative work.”

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:

class SomeController extends PluginController

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.

 
Avatar
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

  • copy the source code
  • rebrand it
  • remove any links to the original and its authors
  • then sell it as their own (closed-source) product.
    (unless I misunderstand the BSD license)

That to me personally is not acceptable.

 
Avatar
1493 posts

And just for info, here are the Google Code license options currently available:

  • Apache License 2.0
  • Artistic License/GPL
  • Eclipse Public License 1.0
  • GNU General Public License v2
  • GNU General Public License v3
  • GNU Lesser General Public License
  • MIT License
  • Mozilla Public License 1.1
  • New BSD License
 
Avatar
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:

  • remove any links to the original and its authors

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.

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

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:

  • copy the source code
  • rebrand it

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).

 
Avatar
651 posts

First off: I’m not going into a Prototype vs. JQuery discussion here… ;-)
With regards to my response below… I have no intention of removing copyrights or original author statements.

On to the civil discussion. :-)

As a small side step

Frog is a PHP port of Radiant. The project has never hidden that fact.

Copying here is debatable since it is a port. Clearly Frog is rebranded Radiant.

That is a bit of a hasty statement. For obvious reasons, the code wasn’t copied.
Granted the functionality was copied, ideas were copied but that’s not the same.
This leads me to the conclusion that the original Radiant license does not apply nor has it ever applied to Frog code.

Frog is actually violating Radiant’s MIT licensed code by removing the copyright notes of original author.

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.

However Frog changing license to AGPL effectively takes away right for Radiant to take back any bugfixes / improvements made to Frog.

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

There is reason why successfull projects (including Radiant) are MIT / BSD licensed.

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 license

Just to give you a clear picture of what I (personally) would find an acceptable license for Frog:

  • Allows people to copy, modify and distribute the Frog core code.
  • Forces any modifications done to the Frog core code to be shared back to the project and other users.
  • Does not allow rebranding of the system for commercial purposes.
  • Does not allow removal of the original copyright notices.
  • Forces a clear message that the modified version is based on the original and links back to Frog.
  • Plugins should be available under their own license and should not be in anyway dependent on the Frog core license.

Conclusion

The MIT/BSD licenses clearly do not fit the bill.
Granted, the AGPL license also does not seem to 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)

 
Avatar
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).

 
Avatar
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 :)

 
Avatar
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!)

  1. “I don’t want to be forced into making a site’s content or design available just because I’m using an AGPL licensed Frog CMS.”
  2. “I don’t want to be forced into making a plugin that I wrote for Frog CMS available under AGPL.”

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:

  • Allow any code considered to be a “Frog plugin” to be made available under a license of the author’s choosing.
  • Specifically mention that any website design, website content or code not specifically made available with the Frog CMS core releases do not fall under the main Frog CMS license.

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.

“Any of the above conditions can be waived if you get permission from the copyright holder.”

My focus was on the sentence above which seems to agree with my interpretation of the license text.

What do you guys think?

 
Avatar
486 posts

What do you guys think?

I think it’s an acceptable compromise.

 
Avatar
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:

  • it’s a pain to have these discussions, but better to have them and get it right
  • it’s good to have these discussions, because it is a sign that Frog is “growing up” :)
  • I don’t care which license is used as long as it accomplishes the intended project goals (which would include protection from commercialization of core code)
  • it is important to respect the licenses of other projects’ code which Frog has used/uses/will use
  • it is important to abide by the terms/conditions of our hosts, etc.
  • it is important not to bind developers in the production of their own work in extending Frog (my own sense is that modifying is slightly different, and we can continue to chat about that one!)

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!

 
Avatar
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.

 
Avatar
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)

 
Avatar
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.

 
Avatar
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:

1. A copy of this license agreement must be included with the distribution.

2. Redistributions of source code must retain the above copyright notice in all source code files.

3. Redistributions in binary form must reproduce the above copyright notice in the documentation and/or other materials provided with the distribution.

4. Any files that have been modified must carry notices stating the nature of the change and the names of those who changed them.

5. Products derived from the Software must include an acknowledgment that they are derived from CodeIgniter in their documentation and/or other materials provided with the distribution.

6. Products derived from the Software may not be called “CodeIgniter”, nor may “CodeIgniter” appear in their name, without prior written permission from EllisLab, Inc.

The problems:

  • Email helper: Copyright changed, no mention of Code Igniter as original author.
  • Upload: Copyright removed, no mention of Code Igniter as original author.
  • Pagination: Copyright removed.

If Frog wants other people to play by the rules Frog should play by the rules too :)

 
Avatar
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!

 
Avatar
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)

 
Avatar
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…