Thanks for this advice. The link to the GCC Exception was especially helpful.
The trick here is that I'm actually releasing a library designed to be linked into plug-ins. I want the library itself to be copyleft but for plug-in authors to retain any licensing flexibility that they would have when releasing a stand-alone GCC plug-in. It sounds like the GPLv3 will do that for me, so that's my plan unless somebody corrects me. --Justin On Tue, Oct 19, 2010 at 4:49 PM, Ian Lance Taylor <i...@google.com> wrote: > Justin Seyster <jrs...@gmail.com> writes: > >> I'm getting ready to release plug-in code, and I want to have a very >> clear idea about licensing before I release. I'm leaning towards >> releasing everything as GPLv3, but I do want to know exactly what is >> and isn't allowed. > > GPLv3 is fine. > >> I know this issue was debated quite intensely before plug-in support >> got added, but my understanding is that there was a final consensus. >> I can't find one document though that explains exactly what this >> consensus was. > > The document is here: > > http://www.gnu.org/licenses/gcc-exception.html > > See also the rationale and FAQ that it links to. > > Basically, if you use a plugin with gcc, and the plugin is not > GPL-compatible, then the resulting compiled code is covered by the GPL. > >> I vaguely remember a proposal that there would be no restriction on >> plug-in licensing but that non-free plug-ins could only be used to >> compile Free software, but that's not documented anywhere I can find. > > That's pretty much it. > >> GCC itself now requires that plug-ins export a >> plugin_is_gpl_compatible symbol, which implies that the plug-in's >> license need only be compatible with the GPL. Is it ok to release >> LGPL- or BSD-licensed plug-ins? > > Sure, both of those licenses are GPL-compatible. > >> My understanding is that, in general, only GPLv3 code can link against >> GPLv3 code, which would imply that my plug-in code must be GPLv3. > > That is incorrect. You can link code under any GPL-compatible license > with GPLv3 code, and the resulting executable will be covered the union > of both licenses. Since GPLv3 tends to be stricter than any > GPL-compatible license, this generally means that the result is under > GPLv3. There is a (non-exhaustive) list of GPL-compatible licenses > here: > > http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses > > Ian >