Misunderstanding GPL's terms and conditions as restrictions

Alexandre Oliva aoliva at redhat.com
Tue Jul 29 03:23:01 UTC 2008

On Jul 28, 2008, Les Mikesell <lesmikesell at gmail.com> wrote:

> Alexandre Oliva wrote:
>> John A. Hacker develops, from scratch, a program that contains two
>> source files: lib.c and main.c.  lib.c was developed to be released as
>> a separate library, under the modified (3-clause) BSD license (so
>> these are the headers it carries), whereas main.c was developed to be
>> released under the GPL (so these are the headers it carries).  John
>> A. publishes the whole, named gnothing, under the GPLv2+, and never
>> publishes lib.c in any other way.

> Agreed to GPL, abides by terms.

Agreed?  He *chose* the GPL.

>> Wanda B. Foreman downloads gnothing, and notices lib.c would be really
>> useful in his project, linstall.  She thus modifies gnothing by
>> removing main.c and the build scripts, and then adds lib.c to her
>> version control system, along with changes to the build machinery to
>> have lib.c built and linked into his own program.  She then publishes
>> linstall, under the GPLv3+.

> Agrees to GPL, abides by terms (assuming changes to v3+, if any, were
> permitted in any copied parts).

>> Ken C. Farsight has access to Wanda's VCS repository, and sees lib.c
>> show up there.  It provides just the feature he wanted for his bsdown
>> Free Software program, that he's always distributed under the 3-clause
>> BSD license.  He copies lib.c into bsdown and releases a new version
>> of bsdown.

> Free to ignore GPL terms.

On what grounds?

>> Evelyn D. Scent maintains a non-Free fork of bsdown called macrash, so
>> she takes this new release containing lib.c, merges the add-on
>> features she maintains, and publishes a new release, under the usual
>> restrictive EULA, known to be compatible with the 3-clause BSD
>> license.

> Free to ignore GPL terms.

On what grounds?

> You omitted the scenario where Ken or
> Evelyn need to redistribute gnothing or a modified version of it,

It was implicit in the first question below, as you noticed.

> After which they have agreed not to do what they would otherwise be
> permitted to do with parts that have alternate licenses.

That's where you misread it.

>> - Has any party had his/her license to distribute gnothing or lib.c
>> automatically terminated?

> They have broken the terms they agreed to.


>> - Can John A. Hacker stop any of the other 3 from distributing lib.c
>> in linstall, bsdown, or macrash, under the licenses given or implied
>> by the description above, or even by itself under the modified BSD
>> license, without a copy of the GPL?

> He can only act on copyright violations against his own code.

It's all his own code.  He only published it all as a whole under

>> - Can Evelyn be stopped by any of the other 3 from distributing this
>> version of macrash containing lib.c, under the usual EULA?

> No, lib.c, being BSD-licensed, has no such silly restrictions.

It was only ever published as part of a work under GPLv2+.  What

> I'm not interested in paying a lawyer to claim that you don't have to
> do what an agreement says you 'must' do,

You could pay a lawyer to explain to you that you misunderstood it.
You'd be happier.  You wouldn't waste so much time embarrassing
yourself before your colleagues on the list.

>>> If you agree, then you've agreed not to violate section 2b.

>> You've agreed to not violate section 2b when modifying the program and
>> distributing, under the GPL, modified versions of it.

> Where does it say that you are ever excused, once you've agreed that
> you will apply exactly the GPL terms to all parts.

Ok, let's try again:

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

translation to English that Les Mikesell can hopefully understand:

  2. I, copyright holder, hereby grant you permission to modify the
program or parts of it, forming derived works, and to distribute,
under the GPL, the derived works, as long as:
    b) you arrange for this license to be granted at no charge to
    every recipient of the entire derived work.

I.e., if you modify it without abiding by the conditions, you don't
get to distribute it under the GPL.  If you don't distribute it in
accordance with the conditions, you're not distributing it under the
GPL.  That's what you're agreeing to when you agree with this clause
of the GPL.

>>> No, RSAREF was done by someone else and was available in source with
>>> some distribution restrictions because of export restrictions. You had
>>> to obtain your own copy separately.

>> Was the program we're talking about distributed only in source code
>> form, or also in binary form derived from RSAREF?

> Why don't you look this up yourself?


You hadn't even mentioned what program we were talking about.  I'll
assume it's SSH.


So, the issue was that SSH developers had accepted a patent license
that conflicted with the provision of clause 7 of GPLv2.  A
modification that would make SSH a derived work of a GPLed work, such
as the modifications to use GMP, would thus render that modified
version oif SSH no longer distributable, per section 7 of the GPL.

This has zero to do with the licensing terms of the RSAREF library,
that was just a red herring.  The issue was a restrictive patent
license that covered the work and conflicted with the GPL.

> You can't omit parts, even if you are distributing source for the
> main program.

What do you think stops you?

>>> It couldn't be GPLed because it wasn't part of the work and it had
>>> other distribution restrictions.

>> Good, you've now understood that it's other restrictions that cause
>> problems, rather than the GPL.

> That's funny.  No other part but the GPL had any restrictions on the
> work-as-a-whole.

Some parts had restrictions *even* when distributed separately.
Nothing would lift these restrictions just because they were part of a
larger whole, regardless of whether there were derived works involved.

>> That's not important.  As far as the GPL is concerned, what matters is
>> whether the work as a whole is derived from GPLed code or not.

> And it is a rather specious judgement to say it is derived, when with
> no changes to the code in question it can later become not-derived.

It doesn't become not-derived.  It only becomes extremely difficult
(possibly impossible) to prove.  In a court, unfortunately result is
the same.

>> RSAREF didn't stop the program from being created in the first place,
>> or from being distributed under the GPL in source form.

> Per the FSF, RIPEM was a derived work of gmp and could not be
> distributed execept under the GPL.  However that was impossible
> because RSAREF was needed and had other terms.

I don't see where the FSF said such a thing.  I see the FSF discussing
restrictive patent licenses that SSH developers had accepted, and that
didn't permit them to distribute the work under the GPL, with as
little as plugs for RSAREF to be used.

Alexandre Oliva         http://www.lsd.ic.unicamp.br/~oliva/
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}
FSFLA Board Member       ¡Sé Libre! => http://www.fsfla.org/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}

More information about the fedora-list mailing list