[License-discuss] Extending copyleft and out-of-the-box compliance

Florian Weimer fw at deneb.enyo.de
Thu Mar 19 20:18:50 UTC 2020


I was a bit surprised to learn that the CAL was accepted, given that
its copyleft extensions have the same major problem as the AGPL.

With that I do not mean the predominant use of the AGPL as a GPL
variant for open-core business models, but that the AGPL requires to
provide source code access over the network even if the software
itself does not provide a means for accessing it.

Curiously, the GPL has already dealt with a similar issue.  Version 1
says this:

    c) If the modified program normally reads commands interactively when
    run, you must cause it, when started running for such interactive use
    in the simplest and most usual way, to print or display an
    announcement including an appropriate copyright notice and a notice
    that there is no warranty (or else, saying that you provide a
    warranty) and that users may redistribute the program under these
    conditions, and telling the user how to view a copy of this General
    Public License.

This was changed in version 2:

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

Note the new exception.  I think this makes a lot of sense because it
ensures that anyone can make unrelated modifications to the program
and distribute them, without adding the startup notification first.
Some GPL programs have such notifications (Emacs, GDB, Guile), but a
lot do not or only print a subset of the notifications (ed, jshell,
CLISP, GCL, Maxima etc.).

Unfortunately, this exception was not carried over into the AGPL.  As
a result, use of most programs licensed under the AGPL become
non-compliant once local modifications are made because the source
code access requirement is not met.  In most cases, I don't think this
is because the party who made the modification wants to keep the
modifications secret, but rather due to oversight or the cumbersome
nature of manual source code publishing (the usual reasons for
copyleft non-compliance).  Hence the need for out-of-the box
compliance.

I think the change from GPL version 1 to GPL version 2 shows one way
to ensure that: Copyleft extensions should only be in force if the
work contains built-in mechanisms that enable automatic compliance
with such extensions.  This means that activating these extensions
needs a conscious decision by the authors, and also a clarification of
the scope of the extension and its concrete impact on use.

What do you think?  Could that be adopted as an informal guidance for
future license reviews?

One problem is that a feature that cannot be legally removed again
once it has been added looks a lot like DRM.  But I think it would
still be preferable to have feature-conditional license elements
rather than the same elements unconditionally, potentially without a
compliance mechanism built into the work.



More information about the License-discuss mailing list