Subject: Re: Free documentation licenses
From: Rick Moen <rick@linuxmafia.com>
Date: Wed, 29 Nov 2000 13:19:48 -0800

begin  John Cowan quotation:
> Rick Moen wrote:
> 
> > > Well, that's not the whole truth either.  I could take a bunch of
> > > BSD modules, create a derivative work, and license the result under
> > > the GPL.  Or under a proprietary license, for that matter.
> > 
> > No, not exactly (unless you _own copyright_ on those modules).  I don't
> > think you're quite understanding my point:
> > 
> > You would remain bound to the obligations of those modules' BSD licence.
> > (But, of course, there _are_ no BSD-licence obligations to speak of.)
> > The modules' individual copyright & licence statements would have to
> > remain intact in copies of the source code.  Otherwise, you are
> > violating the copyright holder's terms.
> 
> Everything you say is true.
> 
> However, the *derivative work* itself is your creation (minimal as that
> creation is) and has its own copyright.

(We will return later to this assertion, and my original point that it's
most useful to state that only the components of a work have licences.
But first:)

I think we're hung up here on the wording of the original hypothetical,
which was somewhat vague.  It was "I could take a bunch of BSD modules,
create a derivative work, and license the result under the GPL.  Or
under a proprietary license, for that matter."

The phrase "create a derivative work", here, is somewhat non-specific.

Yes, I'm quite familiar with the nature of compilation copyrights,
having asserted one over the content of my BBS taken as a whole, a
decade or so ago.

Ah, I see that you've posted a specific example involving third-party
code modules.  Good.  Let's examine it:

> Assume the existence of modules A and B, licensed as BSD, which
> neither you nor I wrote.  I then create work X by combining A and B
> into a single file/package.  I can issue X under the GPL.

Can you?  And what do you mean, specifically?

Case 1.  Programmer Alice wrote source modules A and B.  Her copyright
notice grants BSD usage and distribution rights.  You put A and B into a
tarball, making no changes to them, and assert in an included file
copyright over your "derived work" and that it is GPL-covered.

Here, it is clear that you have delusions of grandeur and own (at best)
the very thinnest of possible _compilation_ copyrights.  That is, you
own the arrangement and selection of files you carried out in assembling
the tarball.  Your assertion that the "derived work" is GPL-covered in
no way prevents user Bob from unpacking the tarball, extracting modules
A and B, dropping your package README in the bitbucket, and creating
some proprietary composite of his own that incorporates A and B.

Case 2.  Programmer Alice wrote source modules A and B.  Her copyright 
notice grants BSD usage and distribution rights.  You put A and B into 
tarball X, making no changes to them, add module C that you created and 
GPL-license,  and assert in an included file copyright over your
"derived work" and that it is GPL-covered.

Here, your property consists of module C and the title you assert over
tarball X, which again is essentially a compilation copyright.  Bob
swoops in again, spits on your README, and uses A and B in his
proprietary product.

Case 3.   Programmer Alice wrote source modules A and B.  Her copyright 
notice grants BSD usage and distribution rights.  You improve module A,
and throw the improved version with module B into tarball X, asserting
in an included file copyright over your "derived work" X and that it is
GPL-covered.

  Case 3a.  You alter module A's copyright notice to assert that it
            was created by Alice _and_ you, and that it's now GPLed.
  Case 3b.  You alter module A's copyright notice to assert that it
            was created by Alice _and_ you, and that some of the file
            is BSD-licensed and some of it GPLed.
  Case 3c.  You leave module A's copyright notice alone.

Here, your property consists of some claim to module A and (if you care) 
compilation copyright on tarball X.  You rightfully point out that A 
has now moved beyond Alice's accomplishment, and assert that you deserve
copyright over the difference as being your creative work.  But I doubt
(IANAL) that you can effectively assert that right and have it upheld, 
as your work is thoroughly entangled in Alice's, which you're not
entitled to relicense unless you acquire her copyright.

(Anyone have reason to think otherwise?  Case law?  Speak up.)

In 3a, Alice hauls you into court over copyright infringement, and
prevails:  You attempted to misappropriate her property, and will be
rapped over the knuckles.  Meanwhile, Bob can successfully ignore your
assertion about A.

In 3b, Alice will be pissed off over the hash you've created.  Maybe
she will prevail in court on grounds that you've substantively attempted
a disallowed relicensing of her work; I don't know.  Bob will probably
in the real world ignore tarball X and pull her original module A out
of a package with fewer legal complications.  Whether he can get away
with using your version of A depends on whether Alice's judge would hold
that you've contributed to Alice's BSD codebase, or retain some rights.

In 3b, Bob takes from X your new version of Alice's BSD codebase, and
maybe sends you a thank-you note. 

> You cannot then add proprietary module C to it.  However, you can go
> back to A and B and create a proprietary program A+B+C, bypassing X
> altogether, so what I have done doesn't limit you in any practical
> way.

Well, moreover, you (the hypothetical Bob) can unpack tarball X, giggle
at the GPL copyright notice, throw away everything but A and B, and
assemble the proprietary package as before.


This has all been a quite fun exercise, but we could have saved a lot of
time by attentively reading what I said originally:  

    It's best to think of a composite work as not _having_ a licence, 
    per se:  The individual modules bear licences.  The resulting 
    composite, then, either is or is not legally distributable, 
    depending on how those licence terms interact.

I meant "best" as in "most fruitful" or "most conducive to useful
knowledge and mastery of the subject".  That is, the question usually 
at issue for a composite work is:  Is it legally distributable?  People
grappling over this question often fixate on the contents of the
package's COPYING file, because of the way they conceptualise the 
problem.  My point is that they will find it more _fruitful_ to think of
the package as a collection of modules with individual licences, whose
interaction determines distributability.

(Returning to your example, you assert that packaging A, B, and a GPL 
COPYING file creates GPLed derived work X with separate copyright.
Fine.  I'll step away from the angels dancing on that pinhead by
pointing out that Bob removes the COPYING file from X, resulting in
package Y containing only A and B.  Which he then merges into a
proprietary product.  Happier?)


Case 3b comes up all the time, in my experience, created at the hands of 
programmers trying to create licence faits accompli out of thin air.

I've been trying to catalogue available free / open-source software for
PalmOS (the OS that runs PalmPilots, IBM WorkPads, and Pivot PDAs), 
at http://linuxmafia.com/pub/palmpilot/ .  You'll notice that I'm
classifying each package according to licence, and have the proprietary 
offerings in a distinct directory.

Notice the file http://linuxmafia.com/pub/palmpilot/doc-format :  It 
details the history of the DOC format, invented some years ago by 
Rick Bram, author of the original PilotDoc reader program, which I 
can find only as a binary with no explicit licence.

Bram went on to help Pat Beirne create the MakeDoc utility, whose source
code I eventually tracked down.  It likewise has no explicit licence.
Beirne's last version was a Java one, MakeDocJ, which I can no longer
find.  However, Jeffrey A. Krzysztow found Beirne's Java code, improved
it, and purports to place the result under the GNU LGPL:
http://linuxmafia.com/pub/palmpilot/MakeDocJ-3.6.0.zip .

I would estimate that Krzysztow's LGPL assertion is simply ineffective,
as it would violate Beirne's rights, which would mean that, technically,
the Beirne-derived source modules in MakeDocJ-3.6.0.zip remain under 
Beirne's non-licence, are technically not legally redistributable, and
do not belong in either of my directories.  I may get around to
mentioning this in the directory index, but have not hurried because 
it's pretty clear that Beirne does not object.

I _do_ mention in a footnote:

   Source code (lawfully) released to the public without an explicit 
   licence is technically _proprietary_ software, as recipients have
   (under USA law, at least) only the implied right to download,
   compile, use, and modify it, and to distribute modifications as
   patches -- but not to further distribute the original code, or
   modified versions thereof.  As the saying goes, no licence means
   unlicensed.

   Fortunately, MakeDoc is such a small, ancient, and forgotten codebase
   that the freedom of its [non-] licence hardly matters:  It's
   significant mainly as a working model of the DOC format.  But
   programmers should beware of the no-licence issue:  All the claims
   you see of such code being "freely distributable" or "public domain"
   are, strictly speaking, factually in error.

The cited (limited) implied rights under USA law are specified in 17 USC
117, as pointed out by Daniel J. Bernstein on
http://cr.yp.to/softwarelaw.html .

(I have some related commentary at http://linuxmafia.com/~rick/faq/#djb .)

-- 
Cheers,                                      "Reality is not optional."
Rick Moen                                             -- Thomas Sowell
rick@linuxmafia.com