Dynamic linking, was: Re: Dispelling BSD License Misconceptions

Ben Tilly btilly at gmail.com
Fri Jan 19 03:24:44 UTC 2007

On 1/18/07, Matthew Flaschen <matthew.flaschen at gatech.edu> wrote:
> Chuck Swiger wrote:
> Sticking to the example of readline and Python, part of the code is
> still specifically written to depend on readline.  I think under Eben's
> argument, this part would then be a derivative work.  Thus, that part at
> least should be licensed under the GPL.

I can't speak to Python, but I can to Perl.  The situation is nowhere
near as simple as you describe.

There is a module, Term::ReadLine, that is distributed with the Perl
core.  This module is a stub, it allows people to interface to one of
(currently) three implementations of readline.  The first will load a
module (available on CPAN) that provides a Perl interface to the GNU
application.  The second is a pure Perl implementation that is
available on CPAN.  The last is a fallback built into the module.
When Perl runs, this module is NOT loaded.  It is only loaded when
someone imports it.

Here is my opinion as a non-lawyer who can't give legal advice.  It is
obvious to me that no part of Perl outside of Term::ReadLine depends
on or is derivative from the GNU implementation of readline.  I
strongly doubt that Term::ReadLine can be said to be derivative of
readline.  I suspect that the author of Term::ReadLine::Gnu may be
overstepping when he licenses his module  under a dual Artistic/GPL
license.  (See the README file at
http://search.cpan.org/~hayashi/Term-ReadLine-Gnu-1.16/ for details.)
The authors of projects that use readline through his interface are on
more solid ground, but there is an outside chance (particularly if
they make heavy use of readline special variables etc) that they might
be argued to have to be GPLed.

> This isn't quite the same thing.  Readline wasn't written to an existing
> Python plugin API.  Part of Python was written to interact specifically
> with readline.

I suspect that Python did what Perl does.  (Possibly with less
pieces.)  In which case Python is written with a general plugin API,
and someone wrote a Python plugin around readline.  I suspect that
what is actually distributed with Python is a stub like the Perl one
so the situation is completely parallel, but the Python stub may be
more filled in than the Perl one is.

> > [ CC:ing Eben so he might clarify his position, if he wishes to do so.... ]
> I'd certainly be glad to hear his views on this issue.  Chuck first
> noted that it was possible to write code (such as Perl or Python) that
> would only use readline if available in
> http://crynwr.com/cgi-bin/ezmlm-cgi?3:msp:12224:eekjfkiiplhjdkoabfid .
> Also, Chuck, please don't CC list members to list mail, unless they ask
> you to.

Um, that's going to happen by default for most people.  The emails
arrive from the sender and CCed to the list, so "reply all" is going
to reply to both sender and list.

I manually edited things to not double send to you this time.  But I
won't guarantee to remember in the future.


More information about the License-discuss mailing list