[Twisted-web] Permission to use library?

Andrew Bennetts twisted-web@twistedmatrix.com
Mon, 12 Jan 2004 02:49:04 +1100


On Sun, Jan 11, 2004 at 04:05:04PM +0200, Nikolaos Krontiris wrote:
>    Hi there.
>    This is going to be a somewhat strange request but here goes...
>    I wrote a file transfer application which I want to copyright.
>    Only problem is, as you might imagine, it uses the twisted framework to do
>    all the dirty sockets work. So, for this copyright to be filed properly, I
>    need written permission from the authors of twisted.

This isn't quite right.

(I am not a lawyer, etc etc...)

With C code, the situation is that if your code depends on a library, it
must physically #include the other library's code (well, headers at least,
but they have code in them), and so the resulting executable is derived from
someone else's copywrited work, and so cannot be distributed by unless a the
library's license grants you the rights to do so.

With Python, the technical details of using libraries are different, but I
suspect that doesn't actually matter, legally speaking.  The intent is the
same -- your application depends on the library, so it is derived from it.

But as I understand it, just because your work is derived from someone
else's doesn't mean you don't own your work.  Or more precisely, I think the
way it works is that there's two inseperable parts to a derived work:
    - the portion you wrote.  You own the copyright of this portion.
    - the derived portion.  The copyright for this is obviously the same as
      the work it is derived from.

Because a derived work combines those two parts, then you have no rights to
copy it (i.e. copyright) unless you have a license that grants you those
rights.

Twisted is licensed under the LGPL (see the LICENSE file that comes with
Twisted).  For works that use LGPL code as a library, this license
explicitly allows you to distribute those works, and imposes no restrictions
on this, allowing you to license those works however you like.  If your work
falls into this category, then you have nothing at all to worry about.

The LGPL also allows you distribute works that are based on the library
(rather than merely using it), but in that case it requires that
distribution of those works must be licensed under the LGPL.

Read the LGPL for the exact distinction it makes between "uses a library"
and "is based on a library".  In the context of Python code, I'd say that
doing "import foolib" is "using a library", but creating a barlib that has
lines of source code copied from foolib would be "based on a library".

Also see e.g. http://www.groklaw.net/ for *lots* of discussion on these
topics...  the GPL FAQ is also a good reference (even though Twisted's
license is LGPL).

(If anyone has any links that explain (or refute! :) this clearly, I'd love
to see them.)

>    I have read the license and I am also aware that there is not really just
>    one "author" as such, since Twisted is a group of developers from all over
>    ther world.

This is true -- but one of the quirks of Twisted is that contributions'
copyright must be assigned to Glyph.  So while the original authors still
retain their individual copyrights, Glyph does have copyright for the entire
codebase, and can relicense the code if necessary.

I don't think this is necessary in your case, though (see my next comment).

>    So, to make a long story short, could you please please please email me
>    a signed written permission (scanned, obviously) so that I can go ahead
>    with this copyright?

You already have copyright.  It's automatically yours upon creation; see
http://www.copyright.gov/circs/circ1.html#hsc

Of course, I'm not a lawyer, so this is not proper legal advice, etc.  But I
do read too many websites for my own good! :)

-Andrew.