Forced GPL in CGRAN? gr-ucla code in BBN repo not GPL?


#1

Alright, I was hoping someone could clear this up for me in terms of the
GPL, and we all know how vague it can be.

Sorry to toss a private statement public, Eric, but you mention:
“the license they pick must be compatible with the GPLv3, otherwise they
can’t use the existing code”

Is this really true?

The gr-ucla code might be a good example: I have permission from Thomas
to put the gr-ucla code in CGRAN, but something that surprised me is
that it is not under the GPL:
http://acert.ir.bbn.com/viewvc/gr-ucla/trunk/README?revision=24&view=markup

It doesn’t re-use any GNU Radio code that I can find in the repository,
but it will of course link to GNU Radio libraries. Through some google
searching, its a large dispute whether linking to a GPL library forces
the “linker” to be under the GPL. It isn’t explicit.

From http://www.gnu.org/licenses/gpl-faq.html#WhatIsCompatible

“If you just want to install two separate programs in the same system,
it is not necessary that their licenses be compatible, because this does
not combine them into a larger work.”

… to me, that states gr-ucla does not need to be under the GPL.

Thoughts?

  • George

#2

Right. I forgot that my code is a BSD license (UCLA policy states that
if we can choose, we should choose BSD). I also remember that we had
this discussion, or at least a similar one, before. I will check in my
archives if I can find it again.

Cheers,

Thomas

On Wed, Oct 15, 2008 at 8:55 AM, George N. removed_email_address@domain.invalid wrote:

put the gr-ucla code in CGRAN, but something that surprised me is that it is
“If you just want to install two separate programs in the same system, it is
not necessary that their licenses be compatible, because this does not
combine them into a larger work.”

… to me, that states gr-ucla does not need to be under the GPL.

Thoughts?

  • George


“Don’t complain; Just work harder” - Randy Pausch

Thomas S., Ph.D. Candidate
Networked & Embedded Systems Laboratory (NESL)
University of California, Los A. (UCLA)

http://gresci.blogspot.com/ - Science articles on green technology


#3

On Oct 15, 2008, at 11:55 AM, George N. wrote:

From http://www.gnu.org/licenses/gpl-faq.html#WhatIsCompatible

“If you just want to install two separate programs in the same
system, it is not necessary that their licenses be compatible,
because this does not combine them into a larger work.”

gr-ucla requires gnuradio-core, and hence is not a separate program by
GPL’s definition.

You will note that the particular file you quoted is a “README” file
that does not require GNU Radio for folks to read. It can have
whatever license the author wishes, including the GR standard GPLv3 to
FSF.

If you go into the source code of gr-ucla, most (all?) of those files
are all GPLv3 to FSF.


#4

On Wed, Oct 15, 2008 at 2:51 PM, Michael D. removed_email_address@domain.invalid
wrote:

gr-ucla requires gnuradio-core, and hence is not a separate program by GPL’s
definition.

Doesn’t this become a GNU Radio license issue then - not really a
gr-ucla license issue?

Source can be built without linking the object code with GNU Radio -
it’s a standalone piece. That being said, it won’t do anything
interesting - but it is standalone. Once you link against GNU Radio,
then it becomes a GNU Radio licensing issue - but that shouldn’t stop
the author of the original source to have to worry about said
licensing issues.

Putting CGRAN projects into the GR trunk is the main issue, right? It
would seem the only way to do this would be to have a GPL v3
compatible license associated with the project.

So, it seems, for any hope of being incorporated into the main GR
trunk, GPL v3 compatible must be used - otherwise, it can be whatever
license the author decides as long as it does NOT include files COPIED
from the GNU Radio, and only links against the libraries.

Does that make sense?

Brian


#5

On Wed, Oct 15, 2008 at 11:55:20AM -0400, George N. wrote:

Alright, I was hoping someone could clear this up for me in terms of the
GPL, and we all know how vague it can be.

Sorry to toss a private statement public, Eric, but you mention:
“the license they pick must be compatible with the GPLv3, otherwise they
can’t use the existing code”

Is this really true?

They must comply with the terms of the license (GPLv3).

http://www.gnu.org/licenses/gpl-3.0.html
http://www.softwarefreedom.org/resources/2008/compliance-guide.html

The gr-ucla code might be a good example: I have permission from Thomas
to put the gr-ucla code in CGRAN, but something that surprised me is
that it is not under the GPL:
http://acert.ir.bbn.com/viewvc/gr-ucla/trunk/README?revision=24&view=markup

It doesn’t re-use any GNU Radio code that I can find in the repository,
but it will of course link to GNU Radio libraries.

There are parts of it that are clearly “work based on the program” and
must be licensed under the GPL (most of gr-ucla/trunk/src/lib, and
many in fact are). See for example
http://acert.ir.bbn.com/viewvc/gr-ucla/trunk/src/lib/ucla_ieee802_15_4_packet_sink.h?revision=28&view=markup

However
http://acert.ir.bbn.com/viewvc/gr-ucla/trunk/src/lib/ucla_qpsk_modulator_cc.cc?revision=25&view=markup
includes a BSD license which is incorrect. That file should be under
GPL.
There are probably more, I just took a quick look.

Anything that includes any gr_*.h header directly or indirectly is
going to be a “work based on the earlier work” and must be licensed
under the GPL.

Excerpts from the GPLv3:

You may convey a work based on the Program, or the modifications to
“keep intact all notices”.
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.

Through some google searching, its a large dispute whether linking
to a GPL library forces the “linker” to be under the GPL. It isn’t
explicit.

That question is irrelevant to the gr-ucla situation.

From http://www.gnu.org/licenses/gpl-faq.html#WhatIsCompatible

“If you just want to install two separate programs in the same system,
it is not necessary that their licenses be compatible, because this does
not combine them into a larger work.”

… to me, that states gr-ucla does not need to be under the GPL.

Thoughts?

The stuff in trunk/sos is all new work, and doesn’t modify GR, thus
may be licensed under the BSD license. The rest of the code needs to
be reviewed on a file by file basis; much of it will be required to be
licensed under the GPL.

Having a body of code that uses mixed licenses (some files licensed
one way, some another) leads to confusion and trouble. See for
example this discussion… It would be a good idea for Thomas to
review the licenses assigned to each file and ensure that they are the
correct ones and that the code is in compliance with the terms of the
GPLv3. Having a copy of the GPLv3 (COPYING) in the top directory
would be a good too. With the current mixed bag, you’d want a copy of
the BSD and the GPLv3.

I request that anybody that has questions or comments about any of
this first take the time to read the text of the GPL and the
compliance guide before posting (links at the top). It’ll save us all
a lot of time.

Eric


#6

Discuss-gnuradio mailing list
removed_email_address@domain.invalid
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


#7

On Wed, Oct 15, 2008 at 03:15:41PM -0400, Brian P. wrote:

On Wed, Oct 15, 2008 at 2:51 PM, Michael D. removed_email_address@domain.invalid wrote:

gr-ucla requires gnuradio-core, and hence is not a separate program by GPL’s
definition.

Doesn’t this become a GNU Radio license issue then - not really a
gr-ucla license issue?

It basically boils down to GPLv3 compliance.

Source can be built without linking the object code with GNU Radio -
it’s a standalone piece. That being said, it won’t do anything
interesting - but it is standalone. Once you link against GNU Radio,
then it becomes a GNU Radio licensing issue - but that shouldn’t stop
the author of the original source to have to worry about said
licensing issues.

See my prior post in response to George with references to the GPLv3
and the compliance guide from the SFLC.

Eric


#8

I’m a bit busy for an in-depth response right now, but while this issue
is hot, I think it would be extremely beneficial if we could work on
adding text describing copyright issues with GNU Radio and released
applications which use it to the wiki.

This isn’t for those looking to contribute directly to the GR repository
(which the wiki already has info on), but for those developing
applications with GNU Radio for their own release (or for CGRAN) to
understand the licensing situation fully.

“Oh, I included a GR header file, I’m explicitly using GR, I therefore
need to use GPLv3”

It may all boil down to any work using GNU Radio needs to be using
GPLv3, but I think the confusion will be reduced if we can explicitly
state why.

  • George

#9

Discuss-gnuradio mailing list
removed_email_address@domain.invalid
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


#10

I remember trying to get the OK from UCLA that I could assign my code
to the FSF, but my email to the administration was never answered. I
will try again and see if I can change the license to GPL. Though we
might have to remove some of the sos code, which isn’t really needed
(SOS is just an example embedded OS that uses 802.15.4 radios).

Thomas

On Wed, Oct 15, 2008 at 6:00 PM, Greg T. removed_email_address@domain.invalid wrote:

GPLv3 code. See
header and calling functions does not in my view make the source file a
mean others can’t go back to the original BSD-licensed code and copy it
certainly permits that.

So I don’t think there is actually any problem at all.


Discuss-gnuradio mailing list
removed_email_address@domain.invalid
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


“Don’t complain; Just work harder” - Randy Pausch

Thomas S., Ph.D. Candidate
Networked & Embedded Systems Laboratory (NESL)
University of California, Los A. (UCLA)

http://gresci.blogspot.com/ - Science articles on green technology


#11

On Oct 15, 2008, at 3:15 PM, Brian P. wrote:

So, it seems, for any hope of being incorporated into the main GR
trunk, GPL v3 compatible must be used - otherwise, it can be whatever
license the author decides as long as it does NOT include files COPIED
from the GNU Radio, and only links against the libraries.

You’re thinking of the lesser-GPL (this is a confusing issue for many
folks, including me for a long time).

Up front: The requirement to use the GPLv3 on “derivative works” holds
only if you plan on distributing or selling a product. If you never
distribute the end product, then you can use whatever license you wish
(or none). Obviously this does not apply to CGRAN, and hence I will
assume from here down that the code in question is to be distributed.

The “full” GPLv3, as Eric has pointed out, -has been interpreted- to
require use of the GPLv3 as -one- license for a file when it
#include’s GNU Radio header files (since they are GPLv3’d); there can
be other licenses, so long as they do not have conflicting terms.
This also holds true for Python scripts using “from gnuradio import
gr” or the like: it is equivalent to #include in C/C++. Both,
obviously, also require the use of the compiled GNU Radio libraries.

That said, #0: From reading online summaries of litigation w/r.t. the
GPL, I qualified the above paragraph with “has been interpreted”
because it seems that the interpretation of whether or not
#include …” or “from … import …” constitutes a “derivative
work” or “work based upon the Program” varies from jurisdiction to
jurisdiction; some judges read it less strictly (more like the lesser
GPL) while others read it more strictly (as, most likely, it was
intended to be by its creators; see, e.g., <
http://lists.gnu.org/archive/html/discuss-gnuradio/2004-11/msg00125.html

). For the purposes of CGRAN, the interpretation should be on the
more conservative side of this issue, IMHO.

That said, #1: If I develop an application which can execute without
GNU Radio installed and does not make use of any other licensed
software or hardware, then I can assign any license to it that I
please (within the constraints of my employer or institution, if
any). If I decide to create a “compatibility layer” so that this
application -can- make use of GNU Radio (blocks, usrp directly,
internals, or whatever), then this layer must be (at least) GPLv3’d to
meet the licensing requirements set forth by GNU Radio’s license.
Adding the compatibility layer does not change my licensing options
for the original application, since it truly is separate from the
licensed work (GNU Radio).


#12

On Wed, Oct 15, 2008 at 08:51:23PM -0700, Thomas S. wrote:

I remember trying to get the OK from UCLA that I could assign my code
to the FSF, but my email to the administration was never answered. I
will try again and see if I can change the license to GPL. Though we
might have to remove some of the sos code, which isn’t really needed
(SOS is just an example embedded OS that uses 802.15.4 radios).

Thanks for the update!

Eric