The GPL says that in order to make clear that the code is covered by the license, a copyright notice should be in the header the source files. I'm not sure it's necessary for every file, but seems at a minimum index.php seems like it should have such a notice.

Attached patch is basically a cut and past of the suggested language form the GPL 2.0 inserted into index.php

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

killes@www.drop.org’s picture

Status: Active » Needs work

Please remove the "any later version" clause.

pwolanin’s picture

Status: Needs work » Needs review

@Herr Killesreiter - can you please demonstrate to me that Drupal has even been licensed under GPL 2.0 only? The only links in the Handbook to Drupal's license point to GPL version 3.0, while in other places it imply refers to "GPL" with no version. There is no statement of copyright in any Drupal source file. The 2.0 license itself has the text I cut in pasted instructing that source files be licensed under 2.0 or later.

Beyond these questions, what possible advantage is there is limiting this license to 2.0 only? Allowing me the option to co-distrubute Drupal with a GPL 3.0 compat package (e.g. CiviCRM) is a critical freedom.

handbook links:
http://drupal.org/node/363
http://drupal.org/node/7765
http://drupal.org/principles
http://drupal.org/about
http://drupal.org/node/66113
http://drupal.org/node/103704

Morbus Iff’s picture

pwolain: the links in the handbook link off to a generic URL on a remote site. This generic URL has been updated to refer to GPL v3.0. It does not mean, however, that Drupal, which has been around for far longer than GPL v3.0, is actually GPL 3 - it just means that the remote site has changed the content. Download any copy of Drupal 5 or Drupal 4.7, and you'll see that the distributed LICENSE.txt (both in Drupal, and all contrib modules) refers to GPL 2, not 3.

pwolanin’s picture

@morbus - yes obviously the links point to a FSF page that was updated, I'm just tying to point out that the situation is unclear.

Since there is currently no statement of copyright or license version in the "Program" files I think this section from the license would apply:

9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

Dries’s picture

Drupal uses "GPL 2" and not "GPL 2 or later versions". When I first chose the license, I made it "GPL 2 only" -- see LICENSE.txt.

pwolanin’s picture

@Dries - I did read the license and while LICENSE.txt is, indeed, GPL version 2.0 the language of the license I quoted above says that Drupal can be licensed under any version of the GPL since there is no specification in the program (i.e. the Drupal code) of a specific GPL version. Perhaps I am wrong on this point, and I think that having the Drupal Association get competent legal advice on this is a good idea.

However, what possible benefit would there be to making Drupal GPL 2.0 only? Anyone who doesn't like the terms of GPL 3.0+ has the option of using Drupal under GPL 2.0.

chx’s picture

Dries stated that his intentions were GPL v2 only and he did state this before GPL v3 was there:

Because Drupal's license, the General Public License 2 (GPL 2)

in http://buytaert.net/long-live-the-web-services-loophole . Also, I stated that I do not like the GPL v3 -- I might be a fool or misinformed but still. So no, you can't use Drupal under GPL v3.

Freso’s picture

FileSize
1.11 KB

pwolanin: I don't see the need to get legal advice in this matter. Drupal's LICENSE.txt doesn't say, and never has said in its history in CVS, or later. It does, however, say Version 2 on line 4 of the current revision.

If the Program specifies a version number of this License which applies to it and "any later version"

(from the text you, pwolanin, quoted (markup mine))
Drupal core code never stated that any later version of the GPL would apply to it, and as such, it goes by default that it doesn't.

In addition, Dries and chx both object to having their code released under GPLv3, and even if all the rest of the contributors of Drupal through the ages were rounded up and gave their yes, I'm fairly confident that the portion of code owing to the brain (and finger) exercises of Dries and chx amount to a large enough amount that it would be non-trivial to sort out their code. (And then, if you add to that that Dries wrote the very core of what became Drupal, which means, by the viral nature of the GPL, that all the derivatives of this original code also has to be pruned... and suddenly you're left with possibly one or two lines of PHP, without any real value.)

Attached a patch specifying version 2 and without opening up for later versions.
Should the link to the GPL be changed to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html perhaps?

Freso’s picture

FileSize
1.13 KB

Link changed per the request of killes.

killes@www.drop.org’s picture

Status: Needs review » Reviewed & tested by the community

Great, thanks.

pwolanin’s picture

Status: Reviewed & tested by the community » Needs work

@Freso@freso.dk - no I totally disagree. The Drupal code itself has never specified any version of the GPL, thus it can be licensed under GPL 1.0, 2.0, or 3.0. Thus, to apply a copyright specifying 2.0 only wold be a CHANGE to the current license. Or, at least, that is my reading of the license. Thus my suggestion that the Drupal Association or the core committers should consult a lawyer.

Morbus Iff’s picture

The disparity here is that:

* pwolanin only accepts "specification" of the license if a Drupal /source file/ says so.
* Dries and company believe specification happened by shipping a LICENSE.txt indicating 2.0 (I agree).
* Said LICENSE.txt says that the "safest way for specifying, not "only", is to include a note in each source file.

pwolanin’s picture

@Morbus - the 2.0 license itself says:

If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

This says to me that Drupal, at this very moment, may be licensed under GPL 1.0, 2.0, or 3.0 by anyone who is making/distributing a derivative work, even though it is being distributed under GPL 2.0 on drupal.org. But, again, one or more lawyers who are experts should be consulted.

Or, if we are satisfied with the status quo, I'll happily close this issue.

Morbus Iff’s picture

pwolanin - I'm trying to see your side of the argument (and to argue for you, to others) so you have to try and see mine (also Dries, et. all) too -- otherwise, we're just going to run around in circles, as you're repeating the same arguments you've said before. As I said above, YOU consider specification of a license version to be a specific (or all) Drupal source file containing the exacting version number of the GPL. This is where the basis of your argument comes from - this lack of specification in any Drupal source file. This is considered the "safest" approach, according to the LICENSE.txt.

However, Dries, myself, et. al, consider shipping the LICENSE.txt, which clearly specifies Version 2.0 in the header, as indication of this specificity. This is not considered the "safest" approach, according to the LICENSE.txt, but the LICENSE.txt doesn't forbid us from doing this, or intending this. This is where you're not meeting us. The LICENSE.txt says that the source file modification is the /safest/ bet, not the /only/ bet. In the case of Drupal, and Dries' /intent/, the shipping of a LICENSE.txt that states Version 2.0 (and not "any later version") in the header, is the specification of which license Drupal falls under.

pwolanin’s picture

@Morbus - I appreciate your role and willingness to have a constructive dialog about how to best proceed. The text that includes the line about "safest":

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

So, I read it as the license does not apply AT ALL unless there is a copyright notice, and that the safest place to put that copyright notice is at the start of each file. For example, the full copyright notice could be in a COPYRIGHT.txt file.

pwolanin’s picture

FileSize
1.13 KB

here's a modified patch that would at least improve the current situation by adding a copyright statement and specifying that the license terms are in the LICENSE.txt file. I guess some code dates back to 2001?

keith.smith’s picture

Title: add copyright notice to at least index.php » Beta-breaker: add copyright notice to at least index.php
Status: Needs work » Needs review

Lines 65-66 of LICENSE.txt state:

64 : 	  	  	 0. This License applies to any program or other work which contains
65 : 	  	  	a notice placed by the copyright holder saying it may be distributed
66 : 	  	  	under the terms of this General Public License.

So, I'm adding "beta-breaker:" to the title -- this issue must, IMHO, be resolved before a beta ships. Given the absence of such a notice, one can make a very cogent argument that the license does not apply. Witness this very issue.

On a quick perusal of www.gnu.org, I did find some oblique references to licensing fonts under the GPL through including a license statement along with the font files. In all other instances the license contemplates attachment through either adding a copyright statement, exclusion of warranty and pointers to licensing information in the source of the program, and/or displaying that same information through a splash screen or text output if one is working with an interactive program.

I think pwolanin's latest patch does the trick of providing the information needed in index.php. To be extra careful, it might not hurt to distill this down to one or two sentences to be included in EVERY source file as LICENSE.txt suggests. ("...attach them to the start of each source file...")

chx’s picture

Status: Needs review » Reviewed & tested by the community

Following hours of digging here is what I see

  • Dries never mentioned until his blogpost in 2006 that he specifically wanted GPL v2. I checked handbook pages (even on drop.org from archive.org), http://drupal.org/node/30708 , mailing list posts -- nothing. Everything says GPL not GPL v2. He might have wanted GPL v2 but if he put that into writing it's extremely hard to find.
  • I read up on GPL v3 and the released version does not contain the restrictions I found unacceptable, so consider me OK with GPL v3.

And finally, as the GPL v2 almost begins with

This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License.

Actually we do not have such a notice. We do ship a GPL v2 text alongside Drupal but whether that consitutes such a notice is not really likely. The whole situation is extremely hairy.

Now, pwolanin's code agrees with the above findings -- it does not state a version number. Whether this notice can get in or not is clearly Dries' decision but we have an issue status asking for his decision so I set to that.

Freso’s picture

I just wanted to note that if LICENSE.txt doesn't apply, all that is left is plain copyright law. Which means no distribution, etc. If one agrees to distribute and work on the code under the terms of LICENSE.txt, those terms are what applies. If one doesn't recognise any license for this, all that is left is copyright law. Just a little reminder of another reason I find that this really shouldn't need to be discussed this much. But oh well. (Btw, I also don't mind using v2+, I just don't see this as a possibility here.)

But let's hear Dries' comment(s).

keith.smith’s picture

Title: Beta-breaker: add copyright notice to at least index.php » Add copyright notice to at least index.php

I did a quick review of WordPress and Joomla practices this morning.

WordPress

  • Does not include a copyright notice, exclusion of warranty statement or pointer to the GPL license in index.php.
  • Does not include a copyright notice, exclusion of warranty statement or pointer to the GPL license in every source file, as suggested by LICENSE.txt.
  • Does include a license statement in some files, where, presumably, other programs (with similar or compatible licensing) have been incorporated into WordPress. (Examples: TinyMCE, jQuery, class-phpmailer.php, class-pop3.php, class-smtp.php)
  • Does include a license.txt in the root directory, stating GPL Version 2 (essentially the same text as Drupal includes in LICENSE.txt).
  • Does include a readme.html file in the root directory which includes the line "WordPress is released under the GPL (see license.txt)." with links to license.txt.

Joomla

  • Does include a header in index.php containing:
    * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
    * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
    * Joomla! is free software. This version may have been modified pursuant
    * to the GNU General Public License, and as distributed it includes or
    * is derivative of works licensed under the GNU General Public License or
    * other free or open source software licenses.
    * See COPYRIGHT.php for copyright notices and details.
    
  • Does include this same header at the top of every source file, or at least, includes it in every php and css file I checked.
  • Does include a LICENSE.txt in the root directory, stating GPL Version 2 (essentially the same text as Drupal includes in LICENSE.txt).
  • Does include a COPYRIGHT.txt in the root directory, containing an extensive list of copyright holders, and a consolidated list of the copyright and licensing notices from included or derivative works included within Joomla. (Examples: phpMailer, TinyMCE, vcard, wz-tooltip, among many others).

I suspect it comes down to where Drupal (or Dries, in this case) wants to be on this continuum of "license expression." Merely packaging LICENSE.txt with the program, when taken with numerous other references like http://drupal.org/about, certainly imply the licensing of the program under the GPL and is probably sufficient.

Neither "imply" nor "probably" are very strong words, however.

To express that intent more forcefully, we should include this patch.

To express that intent more forcefully still, we should consider a similar header for each source file as suggested in LICENSE.txt.

One step even further might be to include a COPYRIGHT.txt restating this information, and including the copyright/licensing headers from included works like jQuery.

(Removing "Beta-blocker" from the issue title.)

Dries’s picture

I'm not too worried about this. The LICENSE.txt clearly states that Drupal is GPL 2. Not including the license snippet in every file is a deliberate choice because it's a silly performance cost for dynamically interpreted applications. I don't mind to add such a snippet to index.php though, but let's stay clear from adding it to all files.

chx’s picture

Dries, I am so sorry but the license txt does not clearly state that. Much rather it clearly states as we quote above

If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

I was unable to unearth such a version number specification.

mango’s picture

Title: Add copyright notice to at least index.php » Copyright notice in installation process

Since Drupal now features a proper installer, it seems fairly easy to include a license agreement in the installation process. It would make for greater clarity on this point. One could also refer to the license.txt for future reference.

Once the GPL discussion has been agreed upon, would you consider including a license agreement in the installation procedure?

Freso’s picture

chx:
Line 4 of LICENSE.txt says Version 2. There are no mentions anywhere in the source or any related files to "or [any] later [version]". Also, if Drupal isn't distributed and otherwise handled under the terms of LICENSE.txt (which, as previously demonstrated, says Version 2), it should be handled by regular copyright law.

mango:
One doesn't have to accept the license to download and use (and even modify locally) Drupal or any contributions to Drupal. The GPL doesn't have any effect until you try and distribute Drupal further, with or without changes. And if you download Drupal for distribution, you might not ever install it anywhere yourself, thus never "agreeing" to the license. All in all, I'd find that it would just be another (mostly pointless) step in the installation process, thus slowing it (IMHO, unnecessarily) down.

pwolanin’s picture

Title: Copyright notice in installation process » Add copyright notice to at least index.php

putting the title back. A brief notice in the installer would be nice too. The GPL is not a license that the user need to actively accept to use Drupal, rather it governs whether and how they can change or redistribute it.

@Dries - if you want to minimize the amount of license-related comment in the PHP, we could shift the bulk of this to a COPYRIGHT.txt file and just have a couple lines in index.php (and potentially other files - the modules?).

chx’s picture

Freso, sorry I can't say anything more than what I said already

If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

pwolanin’s picture

FileSize
21.78 KB

ok- this patch moves most of the text to a new file: COPYRIGHT.txt Also adds a 2-line notice to index.php and to each module file.

Since we don't have a definitive list of Drupal contributors at this point, after discussion with chx I put a link to the core CVS log messages in COPYRIGHT.txt. This language may need some further refinement, of course.

pwolanin’s picture

FileSize
21.81 KB

doh- and as soon as I posted I saw a typo in COPYRIGHT.txt

keith.smith’s picture

Status: Reviewed & tested by the community » Needs work

I'm sorry -- I'm not where I can roll a patch right now or I would have fixed this small typo myself.

I notice a typo in the word "contributors":

+Other projects' contributors
+----------------------------
+Modules, themes, and other code distributed by drupal.org and hosted in the
+drupal-contrib CVS repository are copyright by the contributiors to each
+individual project as indicated in that project's CVS log messages.
+ 

I also note that many programs simply use something like this:

....copyright by the original authors.

rather than the more detailed description above. I don't feel strongly about this either way, but I guess there could be some sort of instance where the cvs logs may not fully attribute code to the correct author.

And, in the interest of full disclosure, I believe the GNU's web site actually refers to placing license notices in a file called 'COPYING', in the few times where I've actually read an explicit mention of it. I notice that MediaWiki includes their license in a COPYING file. Personally, I think COPYRIGHT.txt makes the most sense, but I did want to mention it.

pwolanin’s picture

FileSize
21.8 KB

ok, simplified as you suggest which also removes the misspelled word.

pwolanin’s picture

Status: Needs work » Needs review
moshe weitzman’s picture

Priority: Critical » Normal

we shipped 5 versions of drupal like this, and if this issue doesn't resolve we will happily ship a 6th. downgrading priority.

keith.smith’s picture

FileSize
2.53 KB

I've rerolled the patch in #30, and modified it to only add a copyright notice and link to COPYRIGHT.txt and LICENSE.txt to index.php. Dries, in #21, indicated that he would prefer this approach.

I'm not too worried about this. The LICENSE.txt clearly states that Drupal is GPL 2. Not including the license snippet in every file is a deliberate choice because it's a silly performance cost for dynamically interpreted applications. I don't mind to add such a snippet to index.php though, but let's stay clear from adding it to all files.

- I modified the link in the proposed COPYRIGHT.txt to point to the GNU's page for the 2.0 version of the GPL, since a later version is now out.

- I added a "Trademark" section to COPYRIGHT.txt identical to that found on the footers of drupal.org.

- I added a "Included works" section to COPYRIGHT.txt to note included works that appear under their own copyright notice. A quick grep of core leads me to believe that the only one is jQuery, but PLEASE correct me if I am mistaken.

All this said, of course, someone should feel free to "won't fix" this issue considering that these notices, if necessary at all, can likely be much more competently handled by the Association's and Dries' legal counsel.

keith.smith’s picture

FileSize
2.61 KB

After thinking about this for a bit, attached is a tweaked version that changes the prior copyright language in the new file COPYRIGHT.txt to include: "...by the Drupal project contributors listed in MAINTAINERS.txt and as outlined below...".

All the people in MAINTAINERS.txt are going to be copyright holders anyway, and this (IMO) greatly strengthens the copyright language by providing a concrete list of people (with contact information) that are known to be individual copyright holders (in addition to the larger list of copyright holders to be derived from CVS commit logs and related issues). Since this file already exists and is distributed with the package, it costs us nothing to reference it.

Dries’s picture

Status: Needs review » Fixed

I've committed a modified version of this patch to CVS HEAD. Thanks.

Anonymous’s picture

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for two weeks with no activity.