Re: State of PostgreSQL's drivers in Python

Tres Seaver <[email protected]>
Newsgroups gmane.comp.python.db.psycopg.devel
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Nicholas Bastin wrote:
> On Mon, Feb 8, 2010 at 10:31, Marko Kreen <[email protected]> wrote:
> 
>> Well, Josh collected bunch of anecdotes and added spin to them,
>> good for getting clicks but bad for PR...
>>
>> - Calling licence "bizarre-hacked-up" is over the top, GPL+exception
>>  is pretty common - Linux, GCC, Java.  And the OpenSSL situation
>>  even requires it.
>>
> 
> GPL + Exception is reasonably common, but usually the exception is written
> with some understanding of the law in various jurisdictions, while the
> Pyscopg license literally reads like some hacked up text without a legal
> framework.  The OpenSSL exception is troubling enough:
> 
> "As a special exception, specific permission is granted for the GPLed
> code in this distribition to be linked to OpenSSL and PostgreSQL libpq
> without invoking GPL clause 2(b)."
> 
> The OpenSSL license is at least in conflict with section 6 of the GPL (v2),
> if not a number of other sections - merely eliding 2(b) isn't going to be
> sufficient.  That is then followed by a clause that says, in essence, "we
> want this license to behave like the GPL in the ways that we like, and
> ignore it in the ways that we don't", without being clear (in a legal
> context) about what that means:
> 
> "Note that the GPL was chosen to avoid proprietary adapters based on
> psycopg code. Using psycopg in a proprietary product (even bundling
> psycopg with the proprietary product) is fine as long as:
> 
>  1. psycopg is called from Python only using only the provided API
>     (i.e., no linking with C code and no C modules based on it); and
> 
>  2. all the other points of the GPL are respected (you offer a copy
>     of psycopg's source code, and so on.)"
> 
> Given the fact that these new rights are not expressly enumerated, and the
> remaining valid provisions of the GPL are also not enumerated, we are left
> quite in the air as to what the license means.  You might be left thinking
> that (1) is controlling, but then the license ends with:
> 
> "A non-exclusive license is available for companies that want to include
> psycopg in their proprietary products without respecting the spirit of the
> GPL."
> 
> What is the "spirit" of the GPL that is remaining?  This license fails to
> explicitly lay out what is permitted and what is not.  Even though you state
> that "Even if the GPL does not work that way when importing Python modules",
> I think there are probably a lot of Python module developers out there who
> rather think the GPL *does* stop people from using their modules in the way
> that psycopg seems to be attempting to allow (the FSF is very clear in their
> supporting documentation that shared code linked into the same memory space
> taints non-GPL code).

That isn't quite so clear:  RMS has said that it is up to the courts to
determine whether the kind of dynamic link which occurs when importing a
Python moudle constitutes a "derived work" under copyright law:  the GPL
itself cannot impose restrictions beyond those which copyright allows.

I once explained what actually happened during an import to a very
bright software IP lawyer who had initially assumed that importing
created a derived work:  once I made the mechanism clear enough, he just
shook his head, and said he would never take on such a case trying to
enforce the GPL.

His argument went something like so:  nearly any C application which
does dynamic linking uses #include to get the API, and therefore copies
code into the dependent module, making it a derived work. Python
imports, on the other hand, do the equivalent of 'dlopen' and runtime
dispatch to API functions and global objects.  The code doing the import
is thus dependent only on non-protectable elements of the imported module.

IANAL, get your own legal advice, etc. ;)


Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          [email protected]
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAktwYIAACgkQ+gerLs4ltQ4GUACfR8MoyM3cWXzW0BfMGgQLqztB
DoQAoKquvbipzhFJQgRGJtbsgQodnS6v
=hmHg
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.