Embedding Bazaar into C/C++ applications
John Arbash Meinel
john at arbash-meinel.com
Thu Dec 10 17:22:59 GMT 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
...
>> The fact that proprietary module A [proprietary system] communicates with GPL-covered module C [bzrlib] only through X11-licensed module B [boost wrapper] is legally irrelevant; what matters is the fact that module C is included in the whole.
>
> A derivative work must then be licensed under a GPL-compatible license. I'm not aware of any licenses that are compatible with the GPL other than the GPL itself. The Wikipedia GPL article has a nice license-compatibility diagram:
>
> http://en.wikipedia.org/wiki/File:Quick-guide-gplv3-compatibility.svg
>
>
> I'll point out that this linking interpretation isn't universally accepted, and hasn't been tested in court; the Wikipedia GPL page has some discussion <http://en.wikipedia.org/wiki/Gpl#Linking_and_derived_works>. And the meaning of "derivative work" likely changes in different jurisdictions. But the FSF's intent pretty clear, and I'm not prepared to test them!
I'll state for the record. My personal understanding is that if you use
bzrlib in-process then your code should be GPL. I won't say that the
Lawyer's (or even many/most people on this list) would fully agree. But
if you use "import bzrlib" as opposed to "bzr command-foo" then it
should probably only be done in a GPL program.
There are lots of other niggles, like Meld being BSD but having an
abstract plugin architecture to handle a VCS system, and then writing a
plugin which conforms to that architecture, and itself imports bzrlib...
(Then the plugin could be gpl, but the program that imports the plugin
may not have to be, etc.)
Similarly, I don't think we strictly require that bzr plugins are gpl,
but I don't really see how they could be useful without "import bzrlib".
There have also been discussions that because python code doesn't link
in the same way, the GPL on bzrlib is effectively LGPL, etc.
I think it is "fair" to say that if you want to use bzr in a closed
source program, then you have to go through the process barrier. Note,
though, that I don't hold the copyright to bzr, I just wrote a lot of
its code. :)
John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkshLnMACgkQJdeBCYSNAAMxUgCdH9o+E5TFsTckVHYtAOODHfIU
duMAn25HpVs7H5ssvJuKR62S7egXm8bT
=N5Ud
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list