There's been a lot of confusion over the implications of Drupal's GPL license. In particular, the question of whether HTML output from a Drupal site is automatically GPL'd. Ideally, this would be included somewhere in the drupal core distro, but for now a quick addition to the FAQ.txt file found in the CVS /contributions directory can help.

+Q: Does the GNU/GPL license apply to the HTML generated by a Drupal site?
+A: No. It is the intent of the Drupal developers that the license apply to Drupal,
+   as well as any modules, theme engines, or theme code written to interact with it.
+   The output generated by that code on a live site, however, is not automatically
+   released under the same license.

Wording can probably be improved, but based on all the discussions that have floated around and all the folks that have participated in them, I think it would be very helpful.

CommentFileSizeAuthor
#25 53242.patch706 bytesgdd
#23 53242.patch841 bytesgdd
#5 FAQ.txt_0.patch2.54 KBeaton
FAQ.txt.patch901 byteseaton

Comments

RayZ’s picture

+10 ... er +1 on adding this to FAQ.txt.

lekei’s picture

-1 This wording explicitly states that no licensed code may be used in a theme or module.

eaton’s picture

As per chx's recommendation:

+Q: Does the GNU/GPL license apply to the HTML generated by a Drupal site?
+A: No. It is the intent of the Drupal developers that the license apply to Drupal,
+ as well as any modules, theme engines, or PHP theme code written to interact
+ with it. The output generated by a live Drupal site -- including CSS, HTML,
+ images and other media files, as well as Javascript code used by a theme --
+ are NOT automatically released under the same license simply because they
+ are sent from the server to a user's browser.
+
+ Any file checked into the Drupal CVS repository, of course, is automatically
+ released under the GPL for public use.

Clarifying the 'php' aspect, and the fact that images, css, and generated HTML output are not automatically GPL'd. lekei, this modification is meant to clarify the GPL status of generated output for a web site, not the issue of third-party libraries. That question is probably best settled in another issue.

RayZ’s picture

+1 The updated version in #3 is a definite improvement. An official clarification like this is long overdue.

eaton’s picture

StatusFileSize
new2.54 KB

RayZ, thanks for the feedback. I've added an additional question to this patch that should also help clarify the way third-party code can be used with themes and modules.

Q: I want to write a Drupal module or theme that uses third-party PHP code
   incompatible with the GPL (for example, integrating with a commercial web-chat
   product). Can I do that without violating the GPL?
A: Yes, you can. It requires an extra step, but it's perfectly acceptable and
   several examples of it already exist. According to the GPL, code written to
   interface directly with Drupal (like modules, PHP code in themes, etc.) is
   'derivative work' and automatically inherits Drupal's GPL license.

   You can, however, license your module or theme under an ADDITIONAL less restrictive
   license called the LGPL. This dual-licensing allows your module or theme to act as
   a buffer between Drupal's GPL license and the non-GPL code libraries you're using.
   You should include a LICENSE.txt in your project noting this.
   
   You MAY NOT add those third-party code libraries to the Drupal cvs repository, 
   however, as all files in the repository must by GPL-licensed. Users of your module
   or theme will have to download that software from another location.

   The TinyMCE.module and sIFR.module projects, available for download at drupal.org,
   demonstrate how this system can work. For more details about dual licensing,
   visit the GNU GPL Frequently Asked Questions page at the following url:
   http://www.gnu.org/licenses/gpl-faq.html
   
Q: Does the GNU/GPL license apply to the HTML generated by a Drupal site?
A: No. It is the intent of the Drupal developers that the license apply to Drupal,
   as well as any modules, theme engines, or PHP theme code written to interact
   with it. The OUTPUT generated by a live Drupal site -- including CSS, HTML,
   images and other media files, as well as Javascript code used by a theme --
   is NOT automatically released under the same license simply because it
   is sent from the server to a user's browser.

   Any file checked into the Drupal CVS repository, of course, is automatically
   released under the GPL for public use.
lekei’s picture

+0.5 I think this is an excellent clarification.

It is sad that the concensus is that there will never be professionally developed themes for Drupal, but two more faq questions would at least make it possible to develop Drupal sites using all of the tools at your disposal:

Q: Does work for a client constitute distribution?
Currently work for a client where all of the result is not considered "work product" is considered disribution by the GPL, hence proprietary themes and modules for clients are forbidden.

Q: Does work on a team constitute distribution?
Currently work on a team which is not all or part of a corporate entity is considered disribution by the GPL, hence proprietary themes and modules for clients are forbidden.

eaton’s picture

Lekei, the additions you mention are not, in fact, correct. Specifically:

It is sad that the concensus is that there will never be professionally developed themes for Drupal.... proprietary themes and modules for clients are forbidden.

This is a grave misunderstanding on your part; others have corrected you very clearly and explicitly, but you haven't yet 'gotten the picture.' Please stop repeating it. It is demonstrably untrue, judging by the fact that there are innumerable custom-designed non-distributed themes in use by Drupal sites around the world.

If you as a consultant create a Drupal theme, and give it to your client, it has been 'distributed.' But no one can force either of you to continue distributing it. That means that the only way someone can obtain that custom theme is 1) convincing your client to give it to them, 2) convincing you to give it to them, or 3) hacking into the client's server and downloading it. 3) is already illegal, so I'm not particularly worried about that.

There is one specific point of confusion that I believe will need investigation and clarification outside this patch/issue: If you purchase a third-party HTML template that is not released under a GPL-compatible license, and mix its HTML into PHP code for a Drupal theme, the licensing status of the resulting template file is sketchy. That issue, and that issue alone, is the one that I believe still requires further consultation with qualified GPL experts and (possibly) an addendum to the license similar to BISON's.

Given the points of confusion I've outlined, and the nature of the existing FAQ entries, I would say that the two additions you've proposed would be factually incorrect and very misleading.

lekei’s picture

Sorry for the confusion.

The two questions are the points that I was suggesting to address.

The parts in italics are not intended to suggest the answers in the faq. Those are the default interpretatons of the GPL as stated in the GPL FAQ and from the open source licencing experts that I asked.

And the part about professionally developed themes was not themes developed by professionals, themes that I can buy for a client's site (from a template supplier) and tweak for them rather than having to do the whole thing from scratch.

eaton’s picture

lekei, thanks for the clarification.

Part of the trickiness of dealing with licenses is the fact that subtle turns of phrases can have VERY different meanings legally. Heck, if that weren't the case none of us would be confused about the GPL. :-)

In other threads, it's been hashed through that:

  1. If anything is checked into the Drupal CVS, it must be released under the GPL
  2. If a module or theme interacts directly with Drupal's code (calling functions, etc), its executable code must be released under a GPL-compatible license (See this andthis this for clarification and examples)

I think we're making some progress here, and I'm encouraged by that. One thing I would request, though: the special case we're both talking about, in which a copyrighted non-GPL HTML template is purchased and rolled into PHPTemplate documents... can we come up with a more explicit way of referring to that, to avoid confusion? Perhaps "Commercial third-party HTML templates." That's not TOO awkward, and it helps keep things separate from the other simpler cases (module and theme PHP code, third-party DHTML and PHP libraries that are separate but linked, etc).

Thanks!

lekei’s picture

The simple solution would be to have a Linux-like preamble to say templates are the normal use of Drupal.

Since that won't fly, mabe a faq entry that work for hire does not constitute distribution? See if that floats?

cel4145’s picture

"work for hire does not constitute distribution?"

I might be misinterpreting where you are going with this, but I'd verify any talk about what can be done with work for hire and what "distribution means." Copyright covers all copies, and most developers work with the code on a local setup or some location other than the place it is intended to run in a production site. They have to copy it to move it to a production site. Thus I would wonder whether or not legally the GPL requires something worked on in one location and moved to another to be GPL'd if it interacts with GPL'd code, regardless of where or not one is working for someone else under work for hire. Notice what the GPL FAQ says about third parties. Is a work for hire situation a third party? Like I said, I'd research it before including any information about work for hire and the GPL in the FAQ.

lekei’s picture

Since the strictest interpretation of the GPL means that what you can and cannot do in a Drupal site is determined by the relationship between people who work on and fund the site. If this strict interpretation is not the intention of the authors, a simple faq entry would suffice in clarifying it.

eaton’s picture

lekei,

It's my personal preference that as few aspects of the GPL be touched on as possible in these clarifications. Mostly for simplicity's sake. I'll reiterate that the three areas we're talking about are:

  1. Modules and themes that make use of non-GPL code libraries - The modules and themes in question can be released under a GPL-compatible license like the LGPL that allows the use of third-party libraries without modification, as long as the third-party libraries are NEVER checked into the Drupal CVS. No license changes are necessary, people just need to be told how this is done.
  2. HTML output by Drupal sites - It's been made clear by everyone involved in the Drupal project -- including the most vigorous advocates of the GPL -- that HTML generated and transmitted by a site is NOT GPL'd, and falls into the same category as image files, CSS files, etc, even if chunks of the HTML appear in the theme or module code. In this case, a FAQ would be handy and a license clarification MAY be useful.
  3. Themes and modules that contain, in their own code files, copyrighted non-GPL material like closed-source HTML templates - The consensus in the Drupal community (even among vigorous strict GPL advocates) is that the copyrighted HTML inside those themes is not automatically GPL'd, or at least should not be. Clearly articulating this in as simple a way as possible is difficult, but important. It will probably require an addendum to the LICENSE as well as the FAQ.

The first two issues, I think, are pretty much solved by this patch, though #2 could probably use an additional handbook page to explain the details. #3 is the tricky one. I'd like to suggest the following: an addendum to the license noting that HTML-generating theme functions can be considered separate works if they were covered by a pre-existing GPL-incompatible license, as long as they are clearly marked as such and contained in their own files to separate them from the GPL-compatible content. That would cover, for example, PHPTemplate .tpl files and separate theme.inc files for modules. I know that you've mentioned the hassle of keeping 'everything separate', but as someone who's broken modules up into admin.inc, theme.inc, and so on before I can say that it's a small burden and the long-term benefit of keeping the GPL content clearly separate from the non-GPL content is a great boon.

This doesn't relate, at least IMO, to client/contractor relationships at all. Adding that issue would confuse matters.

Thoughts? Anyone?

RayZ’s picture

I agree that this patch covers the first 2 issues mentioned by Eaton in #13. I think this is RTBC, unless there are serious objections to doing so in the next few days.

I suggest we (Eaton?) open a separate issue for the third item.

RayZ’s picture

Status: Needs review » Reviewed & tested by the community
grohk’s picture

Looks good to me. Two small nits (which are not big enough to warrant holding this patch back):

1) CVS is capitialized differently in places in the patch.

2) Do we need to make it clearer that files checked into the repository need to be legally unencumbered and GPL compatible (in a way in which they can be relicensed as GPL) in order to be uploaded in the first place?

Gary Feldman’s picture

Do we need to make it clearer that files checked into the repository need to be legally unencumbered and GPL compatible (in a way in which they can be relicensed as GPL) in order to be uploaded in the first place?

I would stay away from technical legal terms like unencumbered Also, it's misleading to say that the files must be GPL compatible, as it's the license and not the code that's compatible, and furthermore, the original copyright owner has the right to dual licenses. There are too many special cases to try to handle it here. (See this GPL faq: http://www.gnu.org/licenses/gpl-faq.html#ReleaseUnderGPLAndNF)

The checkin process itself needs to make it clear that anything checked in is being released under the GPL and that the person doing the checkin asserts that he or she has the legal right to do so. But that's a separate issue, and the question of whether or not that information needs to be duplicated in the FAQ is yet another separate issue.

Gary

brunodbo’s picture

Project: Documentation » Drupal core
Version: » 7.x-dev
Component: Documentation in CVS » documentation
brunodbo’s picture

Changed the component to reflect the new component categorization. See http://drupal.org/node/301443.

webchick’s picture

Status: Reviewed & tested by the community » Needs review

I'd like Larry Garfield to take a look at this.

Crell’s picture

Well then someone needs to tell me about it. :-)

I would recommend simply linking to the FAQ that we now have on the web site at licensing/faq. That way we can single-source all answers. We already say on the CVS application "it must all be GPL", though, so I'm unclear on where else we'd be adding that?

dries’s picture

I agree that we should link to the FAQ on drupal.org.

gdd’s picture

StatusFileSize
new841 bytes

OK, how about this then.

Crell’s picture

"point the browser of your choice" seems needlessly verbose (and this is me saying that...), but that's in the existing text.

We should specifically point to GPLv2 to avoid confusion, and say "GPLv2 and later" like we do on the CVS signup page.

gdd’s picture

StatusFileSize
new706 bytes

I actually thought that was excessively verbose too, but had left it. I've changed it in this updated patch, added the "version 2 and later", and changed the URL to point to the version 2 license.

Anonymous’s picture

Status: Needs review » Needs work

The last submitted patch failed testing.

aspilicious’s picture

There is no FAQ.txt left?
Correct?

You can mark this fixed if so...

damien tournoud’s picture

Status: Needs work » Closed (won't fix)

This is now a handbook page.