Home arrow Blog arrow Zigbee arrow Zigbee, Linux, and the GPL
Zigbee, Linux, and the GPL | Print |
Written by Akiba   
Sunday, 14 June 2009
I’m not sure if a lot of you are familiar with this, but there is currently an effort to develop a Zigbee stack native to Linux . The effort is spearheaded by people from the Siemens Embedded Systems – Open Platform group and they have already released some 802.15.4 code for the project . However, a recent issue came up on the Linux Kernel Mailing List (LKML) regarding Zigbee and it’s compatibility with the GPL that may possibly de-rail this effort. The issue is important because any efforts for a protocol stack, or any software for that matter, to get integrated into the Linux kernel will be useless if it can’t comply with the terms of the GPL. The issue in question is in regards to the first paragraph of the “Notice of Use and Disclosure” statement in the public Zigbee specification:

The ZigBee Specification is available to individuals, companies and institutions free of charge for all non-commercial purposes (including university research, technical evaluation, and development of non-commercial software, tools, or documentation). No part of this specification may be used in development of a product for sale without becoming a member of ZigBee Alliance.
Although there’s no problem for GPL compliance for non-commercial projects, a commercial project will not be able to use the Zigbee specification, and thus no Zigbee software, unless the individual or group becomes a member of the Zigbee Alliance. Here’s where the issue occurs. The Zigbee Alliance membership fee for the lowest tier, Adopter (of which I am), is $3500. Hence, the above statement becomes analogous to an IP licensing agreement for a minimum sum of $3500 for any commercial project. This would be in violation of term 2-c of the GPL:

2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    * a) The modified work must itself be a software library.
    * b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.
    * c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.
    * d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.

Although the open source community is traditionally indifferent to anything that is ‘commercial’, the GPL does not make any distinction between commercial and non-commercial. Its requirement is basically that the source code must remain open and free of licensing fees. In this case, the licensing fee isn’t imposed by the author but by the owner of the specification’s IP. Hence the quandary that the LKML post opens up.

When I first heard about the issue, it was from an email by the original poster, Jon Smirl, who incidentally has his own blog over at http://www.digispeaker.com. I have to admit, I was skeptical since I figured that Bluetooth was integrated into Linux and the spec has the same requirements, where you have to be a member to use it. However after a bit more investigation, it turned out that the Bluetooth Adopter membership was free which would remove the GPL violation.

With Zigbee’s recent announcement of its bid for IEC standard approval on its Smart Energy Profile, the announcement of the move towards IPv6, and the US Department of Energy’s requirement for open standards for the smart grid, I’m wondering if the membership restriction for Zigbee’s IP usage is even relevant anymore. A viable alternative would be to require membership for usage of the Zigbee logo/trademark, and for certification testing and recognition. This would be the same model that the USB-IF is using, where the spec is free to use, but the logo and certification requires a USB-IF membership. Anyways, most companies join for early access to the specs and lurking the internal mailing lists for any juicy gossip so I doubt membership would suffer.

I’ve already brought this issue up on the Zigbee Alliance internal mailing list and am very interested in the outcome. The FreakZ project is also covered by the GPL so this would affect my software as well. If the outcome is unfavorable, ie: the GPL can’t be used, then the FreakZ project will still continue, however I’ll have to put a lot of thought into which license to use. Apparently, everyone wants me to go BSD…already heard it about a thousand times...

I’m really hoping that Zigbee will stay true to their word of moving the spec to become more of an open standard. Linux kernel adoption would be a huge statement that it is, in fact, open which would earn brownie points in the eyes of the US Department of Energy as well as European and Asian energy agencies and energy utilities. Also, if the protocol stack does get adopted into the Linux kernel, it may provide the key to markets such as handsets (Android), set-top boxes (TiVo), and networking gear (uhhh…like all routers). These are markets that other protocols are drooling over.
 
Well, I’ll be the first to admit that I’m not an expert in IP law. If anyone has anything to say, either for or against, please feel free to comment. Let’s not turn this into a holy war, though.

 

Hits: 21069
Trackback(0)
Comments (14)Add Comment
...
written by Maxim Osipov, June 14, 2009
Interesting, isn't it? I'm wondering now, how the situation looks like for WirelessHART and ISA100.11a...
report abuse
vote down
vote up
Votes: +0
...
written by Akiba, June 14, 2009
Yeah, it's an unfortunate issue, but it's good that it got brought up. The issue has been forwarded to the main people in the Zigbee Alliance, however it would probably require a board member vote to change the restriction. I'm hoping this can get cleared up quickly so it won't impede your progress on the 802.15.4/Zigbee - Linux effort.
I don't know how Wireless HART and ISA100.11a will be. They are public standards by recognized standards bodies so they may not have the same restrictions. Anyways, I think that at this time, the Zigbee membership restriction is a bit outdated since the best thing going for Zigbee is Smart Energy which requires the recognition of being an open standard. There's no better way to do this than being officially down with Linux.
report abuse
vote down
vote up
Votes: +2
...
written by Jon Smirl, June 14, 2009
TI's Remo stack is definitely Linux incompatible.

1.6Open Source Software Restriction. Unless expressly permitted elsewhere in this license, you may not combine or distribute the Licensed Materials or Licensed Material Revisions with Open Source Software (as defined below) or with software developed using Open Source Software (e.g., tools) in a manner that subjects the Licensed Materials or any portion thereof to any license obligations of such Open Source Software. "Open Source Software" means any software licensed under terms requiring that other software combined or distributed with such software: (i) be disclosed or distributed in source code form; (ii) be licensed on terms inconsistent with the terms of this Agreement.
report abuse
vote down
vote up
Votes: -1
...
written by Akiba, June 14, 2009
I don't think TI's RemoTI stack was every meant to be open. It was marketed as a proprietary stack for people that didn't want the overhead of Zigbee. However they explicitly state that the spec and software can only be used with TI hardware.
report abuse
vote down
vote up
Votes: +0
...
written by Jon Smirl, June 14, 2009
They say it supports Zigbee RF4CE now.
http://www.ti.com/RemoTI
report abuse
vote down
vote up
Votes: -1
...
written by Akiba, June 14, 2009
The original comment still stands. They never intended their software to be used for open source. It's up to the implementer to determine the license that governs the usage of software and this is usually chosen to fit with the goals of the project. In TI's case, they are a for-profit company and the license reflects that. For people like me that have vague, unclear social goals, an open source license seems to fit better.
report abuse
vote down
vote up
Votes: +0
...
written by aevin, June 15, 2009
Update: I found what seems to be the full text in Jon Smirl's mail to LKML, arguing about the incompatibility, as linked to from your blog post.

Also, to clarify in my above comment, one might want to do a s/GPLv2/GPLv2 compatible/g. I see that I wasn't 100 % accurate all over.
report abuse
vote down
vote up
Votes: +0
...
written by Akiba, June 15, 2009
This is aevin's previous post...I accidentally deleted it when I thought I was clicking on a link smilies/sad.gif
---------------------------------------------------------------------------------------------------------
Comment:
I think it's kind of funny that this is being discovered now at first. IANAL, but assuming that ZigBee Alliance's non-commercial clause as referred here is correct it's obviously not compatible with GPLv2/GPLv3 at all. I'm sorry for your troubles with this, Akiba.

IMHO, ZigBee Alliance should revise their licensing conditions to make it at least GPLv2 as Linux the kernel is (and hopefully GPLv3 compatible too) ASAP. Otherwise they will suffer from an epic fail. Didn't ZigBee Alliance think ahead of this scenario at all?

FOSS is teh futureh, by not being compliant you'll just be a PITA at first, and finally replaced/redundant.

I would very much like to see a GPLv2 or later ZigBee stack available for the Linux kernel, and I hope that ZA manages to fix their silly licensing scheme.

Akiba: Do you know if the full licensing text for ZigBee spec is available to read through somewhere (without registering first)? I've never seen it before, so it could be interesting.

report abuse
vote down
vote up
Votes: +0
...
written by Akiba, June 15, 2009
Zigbee hasn't had a whole lot of open source efforts so this issue never came up previously. I also think that before smart energy took off, the Zigbee Alliance would never have even considered some of the moves they are making like trying to turn it into an IEC standard, moving to IP, etc...

So now may be the right time to try and get them to consider dropping the membership requirement. It's currently being discussed internally, and if it happens, could introduce a lot of innovation. Companies previously unwilling to use Zigbee because they didn't want to pay the membership fee just to use a cheap RF link that wasn't a main feature on their product might reconsider. Also, it would allow a lot of the smaller hacker startups to come up with interesting devices based on the protocol and actually sell them.
report abuse
vote down
vote up
Votes: +1
Typical
written by Juha Lindfors, June 15, 2009
Interesting yet disappointing discovery about license restrictions. This certainly makes Zigbee a lot less attractive.

How much does ZB define over 802.15.4, there are profiles, anything else?

Regarding GPL vs. BSD depends a lot on your personal goals wrt your codebase. Feel free to email if you want to discuss further.
report abuse
vote down
vote up
Votes: +0
...
written by Akiba, June 15, 2009
Above 802.15.4, they define the mesh routing algorithm, multicasting, and of course the application layer which contains the cluster lib and profiles. I think there's a chance that they will drop the restriction, but of course, it's not my decision.

Regarding licensing, I spent a lot of time thinking about it initially when I started the project and settled on GPL. Haven't made up my mind which license to choose if it's not possible to continue with GPL yet.
report abuse
vote down
vote up
Votes: +0
...
written by Steve, June 16, 2009
The Zigbee Alliance needs reminding that there are alternatives. If it wasn't for the restrictive licensing the market would not be as fractionated as it already is.

IPSO and 6LoWPAN seem to go from strength to strength and could easily challenge Zigbee in the long term.

If the Zigbee Alliance really does want to be "the standard" then it needs to move fast. Otherwise it will be listed with Digital's decNET, IBM's SNA and the rest - protocols that blinked briefly in the firmament and died.
report abuse
vote down
vote up
Votes: +3
IPR statement
written by Francesco Furfari, July 11, 2009
In my opinion the statement about the IPR is even more sensitive.
"Elements of ZigBee Alliance specifications may be subject to third party intellectual
property rights, including without limitation, patent, copyright or trademark rights (such a
third party may or may not be a member of ZigBee). ZigBee is not responsible and shall not
be held responsible in any manner for identifying or failing to identify any or all such third
party intellectual property rights."

Starting from the Mozilla License an increasing attention was paid to protect FOSS from patent issues. Nowadays in many licenses there are clauses that bind company or individuals to release any claim to patent rights that may be exposed by the code contribution. I would expect in the ZigBee specification disclosure a promise of non-assertion when practiced by open source software. It is a requirement to be considered an Opene Standard according to the OSI definition (http://opensource.org/osr).

Clearly, the above statment is mainly to protect the ZigBee Alliance from being involved in a patent litigation, it is really difficult to identify that third party patents could be applied. However, at least the companies contributing to the specification should clearly assert something on their own claims, if any.

report abuse
vote down
vote up
Votes: +1
...
written by Jon Smirl, July 11, 2009
Putting the ZigBee reference implementation into the Linux kernel is the best protection you can get. The code is closely inspected when it goes in. After it's in anyone who files a suit on it gets to mess with IBM/etc. Since IBM has several hundred thousands patents odds are that anyone accusing the Linux kernel of infringing will also be infringing one of IBM's patents and that usually makes them go away. Even Microsoft isn't stupid enough to start a patent war with IBM. IBM will win.

The one thing you can't stop is patent trolls. Patent trolls are nothing but groups of lawyers. They don't infringe anything but everyone's intelligence. Putting the code into Linux has no impact on the susceptibility to patent trolls, but it might have the advantage of deflecting a troll's suit onto another member of the Linux community instead of a member of the ZigBee alliance. Trolls go after people with lot's of money, not necessarily who wrote the code. For example SCO going after AutoNation for using Linux. You just have to ignore trolls, there is nothing you can do about them except reform the patent system.
report abuse
vote down
vote up
Votes: +2

Write comment

busy
  No Comments.

Discuss...
< Prev   Next >