Protocol Buffers presents an unusual, but not unique/novel, situation
with respect to licensing.
Projects that use PB will often not actually include PB code in their
software (and often may not be re-distributing PB code in source or
compiled form), but rather, will be using the output of PB, which is
code. What is the license of that output-code? That's the type of
question that makes lawyers nervous.
This is similar to the bison situation. Bison is GPL v2. But
obviously not all programs that use Bison output are GPL v2. Bison
output includes explicit license notice:
_____________________________
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004,
2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
...<snip>... */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
_____________________________
Can there be explicit clarification on that point? Maybe a notice on
the output to the effect:
// Generated by the protocol buffer compiler.
// Any copyright ownership is retained by the owner of the input to
the protocol buffer compiler.
I don't know if that's the best wording (IANAL), but I think that
gives you the flavor of what I'm thinking.
But then, flex output (where flex is also presumably GPL) doesn't
include any explicit notice of licensing at all. I seem to recall
that bison was 'special' because some code was copied as a verbatim
chunk. I don't know if PB includes any such chunks. Either way,
being explicit about it may smooth the path in many cases.
-Travis
Ah, right. Thanks for reminding me of that.
> I can talk to our licensing people and get this clarified if you
> want, but given this, does it still matter?
Alas, yes, even so, it'd probably be good to have clarity in this
area. :-/
It'll make PB easier to use. :-)
> BTW, v2.0.2 (to be released later this week) will be under BSD
> instead of Apache 2.
Yep, I noticed that you'd already changed COPYING.txt.
-Travis
I have follwed similar discussions in many lists, and the conclusion is
allways that "generated code" is NOT "derived work" and therefore is not
restricted by the GPL.
But you have a very intresting extra point here: "the generated code is
owned by the owner of the input file". I agree
> However, I've added a note to COPYING.txt anyway to make it completely
> clear.
It will surely avoid many similar questions.
Alain