Licensing of wrappers around C/C++ code under more restrictive licensing.

Graham Dumpleton grahamd at
Sun Feb 29 01:37:42 CET 2004

Ville Vainio <ville at> wrote in message news:<du7ishrmqsv.fsf at>...
> Googling also revealed:
> But beware: OSE, which that recipe relies on, seems to be licensed
> under QPL.

That it is currently under the QPL means nothing if you aren't intending
to redistribute your own code. Ie., if you are developing a system for in
house or personal use, the contentious parts of the QPL don't actually
kick in and it should be safe to use. Much the same as the GPL really,
where things only apply if you intend to redistribute.

The next version of OSE will try to address this issue by allowing use of
the Python wrappers under a BSD or Python style license, provided that
the C++ layer underneath is left as is. Change the C++ layer underneath
and the QPL will apply up through the Python code as well.

In other words, there will be an attempt to build a wall between the QPL
licensed C++ code and the Python code. It may turn out that this is not
a practical thing to do and even if possible, it may still not satsify the
GPL license clause about other licenses placing additional restrictions
beyond those implied by the GPL. Ie., you still might not be able to
validly use the stuff in an application where you also use Python code
under the GPL.

I would really like to hear other peoples ideas about how to address
licensing where the Python code is actually a wrapper around a C/C++
library under a QPL or GPL type license. Some people seem to believe
that the use of the scripting language implies a line is drawn when
people go to use it and thus what the library underneath is licensed
under doesn't matter. Linking of the library still occurs though, so I
don't believe this is necessarily the case.

So, how can one cast the licensing so as to provide an exception that
provided the underlying C/C++ library isn't changed, that the Python
wrappers can be used under a less restrictive license. I have control of
the licensing on both so can stipulate exceptions, but what is the
best way of doing it?


More information about the Python-list mailing list