License of the output (the flex/bison problem)

615 views
Skip to first unread message

Travis P

unread,
Sep 30, 2008, 12:39:16 PM9/30/08
to Kenton Varda, Protocol Buffers

Hi Kenton,

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

Kenton Varda

unread,
Sep 30, 2008, 1:13:13 PM9/30/08
to Travis P, Protocol Buffers
The code generated by protoc requires linking against the protobuf libraries, so the Protocol Buffers license terms apply to you either way.  I can talk to our licensing people and get this clarified if you want, but given this, does it still matter?  BTW, v2.0.2 (to be released later this week) will be under BSD instead of Apache 2.

Travis P

unread,
Sep 30, 2008, 1:25:37 PM9/30/08
to Kenton Varda, Protocol Buffers

> The code generated by protoc requires linking against the protobuf
> libraries, so the Protocol Buffers license terms apply to you
> either way.

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

Kenton Varda

unread,
Sep 30, 2008, 2:34:03 PM9/30/08
to Travis P, Protocol Buffers
Our lawyer's opinion seems to be that the generated code is owned by the owner of the input file by default, even without a special note.  However, I've added a note to COPYING.txt anyway to make it completely clear.

Alain M.

unread,
Sep 30, 2008, 3:29:33 PM9/30/08
to ProtBuf List

Kenton Varda escreveu:

> Our lawyer's opinion seems to be that the generated code is owned by the
> owner of the input file by default, even without a special note.

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

Reply all
Reply to author
Forward
0 new messages