Subject: Re: GPL for JS libraries (Was: Re: Redefining GPL?)
From: "Ben Tilly" <btilly@gmail.com>
Date: Thu, 30 Nov 2006 15:47:29 -0800

On 11/30/06, Chuck Swiger <chuck@codefab.com> wrote:
> On Nov 30, 2006, at 1:45 PM, Arnoud Engelfriet wrote:
> > Chuck Swiger wrote:
> >> There exists a vast amount of source code under the GPL.  The normal
> >> practice is to provide the text of the GPL in a separate file called
> >> "LICENSE", and for each file consisting of source code to have a
> >> copyright statement in a comment at the beginning of the file, and a
> >> reference to the license status which says the code is under the GPL,
> >> and to please read the "LICENSE" file.
> >
> > Right. The specific problem here is that the GPL insists that
> > the license must be passed on *along with* the source code.
>
> The precise language is "along with the Program", not "along with
> each individual source code file", as in:

Even if you argue that a JavaScript file is not really a program, it
certainly falls under the description, "...or other work..." in
section 0 which defines "Program".

> "  1. You may copy and distribute verbatim copies of the Program's
> source code as you receive it, in any medium, provided that you
> conspicuously and appropriately publish on each copy an appropriate
> copyright notice and disclaimer of warranty; keep intact all the
> notices that refer to this License and to the absence of any warranty;
> and give any other recipients of the Program a copy of this License
> along with the Program."

The question is how to give a copy of this License along with the Program.

> ...where the term "Program" includes "...any derivative work under
> copyright law: that is to say, a work containing the Program or a
> portion of it..." (from section 0).
>
> > Putting a file called LICENSE in the tarball achieves that.
> > Make the tarball available for download, and people get source
> > along with the license.
> >
> > But when you make a .js file available for download, how do
> > you pass the license on _along with_ that .js file?
> >
> > A literal reading suggests that you then do have to copy&paste
> > the text into the file. This will often be impractical, so
> > it might be considered reasonable to just hyperlink to the license.
>
> The suggestions for using the GPL state that:
>
> "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."
>
> In the case of a .js file downloaded as a component of a web-based
> application (ie, a set of HTML, .js, images, and other resources
> which comprise the web site), a hyperlink to the full notice seems to
> be fully in compliance with the method the GPL text recommends for
> using the General Public License.

The License has not been distributed along with the Program.

> Further on, there is this:
>
> "If the program is interactive, make it output a short notice like this
> when it starts in an interactive mode:
> [ ... ]
> The hypothetical commands `show w' and `show c' should show the
> appropriate
> parts of the General Public License.  Of course, the commands you use
> may
> be called something other than `show w' and `show c'; they could even be
> mouse-clicks or menu items--whatever suits your program."
>
> This implies that the web site might well provide a clickable link
> upon entry to the site which references the GPL and from which the
> user can follow to obtain the text of the General Public License, not
> only as a comment within a .js file.

True.

> I also note that under section 2c, if the original version of the
> software "does not normally print such an announcement", then "your
> work based on the Program is not required to print an announcement."

Note that the GPL v3 tightens this up.

Cheers,
Ben