header photo

via positiva

Drupal and the GPL (as I understand it)

As Drupal has grown in popularity, more and more people have started using it for consulting work, and more people are beginning to evaluate Drupal-based business models. Since Drupal is released under the GPL software license, all derivitive software (including plugin modules) is also covered under the GPL. There's a lot of confusion over what's kosher and what's not. I've spent the last couple of days chatting with some of the core Drupal developers and reading up on the GPL license. I think I've figured out the basics -- My words are not canon, and anyone is free to correct me if I am factually incorrect...

The following are automatically released under the GPL license:

  1. Any files checked into the Drupal CVS repository
  2. Any Drupal modules, even if they are not checked into the CVS
  3. CODE from Drupal themes (ie, the page.tpl.php, template.php, and so on)

As long as they are not checked into the Drupal CVS repositiry, the following are NOT automatically released under the GPL license:

  1. CSS files, image files, media files, and any other non-PHP files
  2. Programs (including PHP code) that do not directly interface with Drupal. (For example, the TinyMCE text editor project is a separate program, with a Drupal module that 'connects' it to Drupal. The module is automatically GPL'd, but the TinyMCE project is not.)

Now, what does it mean to say that something is 'released under the GPL license?' There are a lot of lawyer-ish terms to throw around, but after much discussion, it seems to boil down to this:

  1. You can charge a client for your work that is released under the GPL.
  2. You can host GPL-licensed stuff on your web site and charge people for downloading it.
  3. You cannot control what someone ELSE does with software released under the GPL once they have it. (This is because anyone who has a copy of GPL-covered software has the right to modify it or give it away to anyone else.).
  4. You CAN control, via licenses or agreements or what not, stuff that isn't covered by GPL. (images, css layouts, media, and 'helper' programs like TinyMCE that don't directly connect to Drupal). This distinction is important.

What it boils down to is this. If you want to make money off of your work with Drupal, there are a couple of options:

  1. Charge consulting clients for the time it takes you to do the work
  2. Petition the community for 'sponsors' if you think a project would be valuable, but can't afford to donate the time (this is sometimes called a reverse auction)
  3. Sell your Drupal modules and themes. After people purchase them, they can give away *anything that's covered by the GPL.* You, though, don't have to give technical support or accept feature requests from those who didn't pay.
  4. Write your custom software as an external program (in PHP or some other language) that can be used without Drupal. Then write a simple module that 'connects' it to Drupal. The module is GPL'd, but people can't distribute the separate program without your permission.
  5. For themes, the basic template files and php files will be GPL'd. Anyone who has your theme can hand those files to their friends willy-nilly, but they must still obtain your permission to redistribute the images, media, and CSS files that make your theme distinctive.

I may be wrong -- if I've gotten the facts wrong (not 'what you would like to be different,' just the facts), please correct me.

Nice write up, that's my

Nice write up, that's my understanding as well.

"The following are automatically released under the GPL license:"

Better to say 'covered under the GPL license:', as the module/theme might never be released, but still be covered by GPL. There is no requirement that the developer or the company paying for development has to release the module/theme.

Images and most other media elements are covered by copyright law, which the creator can license in whatever way they want. Meaning that themes can be sold under whatever license you want, but the GPL elements of the theme are under GPL rules.

Drupal and the GPL

I'm still a little confused to why the templates files and php files in a theme would be under the GPL, but not the CSS files? The reasoning that the CSS file is not under the GPL to me seems to have to be sometihing more than making the theme "distinctive". If you really think about it the PHP code also makes the theme (or CMS) distinctive...yet it is under the GPL. Also under your test, photographs could stand alone, but once again the CSS doesn't stand on it's own without a template to display the style.

I've been following discussion that I think everyone has at Drupal.org ( [[http://drupal.org/node/37504]] ). I know my head is about to explode...

The distinction...

The distinction isn't an arbitrary one -- the way the GPL works, software that works directly with Drupal (calling its functions, being called by it, etc) is considered derivative software. As such, it inherits Drupal's GPL coverage.

The CSS file, because it is a free-standing independent file that is used by the web browser rather than executed by Drupal, isn't hit by the same licensing clause. Photographs as well. That's also why creating a 'bridge' module between Drupal and a separate program keeps the separate program from inheriting the GPL.

I agree about the confusing (and often antagonistic) nature of the older GPL thread. I did a lot of digging, and I'm hoping that starting a separate discussion to clarify the issue will help...

Thanks for the additional

Thanks for the additional insight. Maybe you should write for Groklaw!

thank you

Jeff,
thank you. That was very useful. We've posted it at:
http://www.drupalecommerce.com/node/309

GPL does not imply full rights

The fact that code will be GPLed thanks to the virality clause as you sum it up does not imply any type of rights grant to other types of Intellectual Property (IP) contained in the module, notably trademarks.

A piece of code may very well be under GPL (think Redhat distribution), but still not distributable as such with the trademark "RedHat" all over the place, because it would constitute trademark infrigement (which is why Redhat clones carefully remove the RedHat brand from their distros).

Which means that redistributing some of this GPLed code may still need some work around the other types of IP protection.

I have a question about the

I have a question about the license when it comes to developing Drupal websites for clients. Do we have to give a copy of the GPL to any clients? And for that matter, do we have to tell them that the system is Drupal? The reason I ask is that generally the client just wants a system that works in the correct way, but doesn't really care about how it works or what it is based on. If I have to tell them that it is Drupal (I do at the moment) and issue the license, it just confusing things and they really don't care. They just want me to get on with building them a site that does the job.

why a drupal module is

why a drupal module is automatically attributed gpl license if it is not committed to drupal CVS ???

i think this is not true... if you commit the code to the CVS it is "virally" infected... but if you *DO NOT* commit it... the code isn't GPL'd... could be anything else... even GPLv3 and AGPL !!!!!

So for example:

I'm writing a drupal module for a Cab firm with some advanced functionality.

Once I have written the module and installed drupal and the module for the firm, i will charge them for my services.

So can the firm take my module and start selling it onto others?

if it is on their server,

if it is on their server, then sure why not. I think if it is on your server and he just uses the output of its work, then he cannot sell what he does not have. of course, the customer would have to figure out where it was and be able to install it on someone else's drupal. if you feel you need a proprietary license, then make your module a standalone app and make a connector as discussed above.

Thanks!

Thank you very much for your information! really helpful

Pingback

[...] On Drupal’s GPL reading [...]

Wonderful and informative web

Wonderful and informative web site.I used information from that site its great.

to clarify....

The GPL states that all derivative works must be released under the same license, and that as a result all derivatives of that must also be GPL. This also means that the SOURCE must be made freely availible as well of all GPL content.

Thus if you add to CVS or not, as this article clearly states, your code is still GPL whether you like it or not, and it is effectively free for all to use modify and sell, subject to the GPL.

Isn't it a wonderful thing? I love the GPL!

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <img> <i> <b> <strike> <h3> <h4>
  • Lines and paragraphs break automatically.
  • You may use [inline:xx] tags to display uploaded files or images inline.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Twitter-style @usersnames are linked to their Twitter account pages.
  • Twitter-style #hashtags are linked to search.twitter.com.

More information about formatting options

Miniblog