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., <
). 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).