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.