[Tinyos-alliance] Apache licensing
Philip Levis
pal at cs.stanford.edu
Thu Feb 2 10:23:39 PST 2006
I realize that the teleconference notes are probably only scratch the
surface of what is said, but I was reading through the notes on the
source licensing discussion and noticed that an important point -- in
fact, the reason why TinyOS has remained BSD rather than Apache --
didn't come up. If it was mentioned but didn't make it into the notes,
feel free to ignore the rest of this message.
The basic problem is that Apache is incompatible with the GPL.
Historically, BSD actually used to have attribution requirements, but
they were removed after the GPL became popular, so that the two could
co-exist. The problem stems from the fact that the GPL requires that no
additional stipulations be put on code beyond its own, while Apache
introduces the stipulation of attribution. The combination of an
immovable object and an irresistible force means that two can't coexist.
This becomes especially tricky due to the way that TinyOS compiles. The
LGPL, for example, allows linking, but in TinyOS there is no linking:
nesC generates a large C file so the compiler can optimize across call
boundaries.
This means that if the TinyOS core had an Apache license, no one could
release GPL code for it, nor could they release code that included GPL'd
libraries. Similarly, if the TinyOS core had a GPL license, nobody could
release Apache code for it. Rather than limit the licenses of the users
of TinyOS, the conclusion was that the core reference implementation
should be BSD, which can work fine with either. On top of this code,
people are welcome to use any license they want.
Food for thought,
Phil
More information about the Tinyos-alliance
mailing list