Wednesday, January 24, 2007

Enforcing the GPL on Embedded Linux

Presumably by now everyone knows about the GPL and (depending on who you ask) its reciprocal aka “viral” properties. In the past, to avoid being a propagandist for either side I’ve called this “compulsory sharing” although the reality is that no shorthand description will make everyone happy.

To me, the remarkable thing has been how little enforcement there has been of the GPL on Linux (as opposed to dual license sponsored projects like MySQL). Maybe it's because those Linux proponents promoting Linux adoption don't want to discourage adoption. Or because of the legally unresolved question as to whether linking constitutes a derivative work. Or perhaps it’s because (for server and desktop use) there's the fig leaf of doing separate installs — shipping a CD with a Linux install and (say) a proprietary application, which are thus installed separately and thus the application doesn't fall under the “work based on the Program” clause of the GPLv2.

No such fig leaf exists if you have a WiFi router or a DVD player or a cellphone that uses embedded Linux. When I first started researching embedded Linux, one of the embedded BSD vendors argued that this made the more mature and non-GPL BSD operating system more suitable for embedded use.

[Cisco logo]This week Cisco admitted to violating the GPL on its iPhone (the one no one’s buying, not to be confused with the much-hyped Apple vaporware). They didn't volunteer it, but had to be prodded by someone who reverse-engineered the firmware and figured it out. This sort of GPL violation is probably pretty common, and obviously a big company like Cisco is an attractive target, but there were two interesting points. One is that the the inquisitive engineer was from the formal GPL Violations Project. The other was that the alleged violation was over Cisco not disclosing its own software, rather than over modifications to the Linux software (which would also be violations of the LGPL, MPL, EPL, etc. etc.).

Such disclosure of one’s own software is exactly the unresolved legal question that Larry Rosen (and others) have been pointing out with the Free Software Foundation's interpretation of “derivative work.” It could have huge implications for the many mobile phone manufacturers who are today shipping Linux-phones with unshared proprietary modifications.

If such enforcement becomes common, then it is going to change the nature of innovation in segments that use embedded Linux, forcing them to become more open in their innovation practices. Some would choose to make sharing a virtue and to actively collaborate, while others might decide the cost of sharing is not worth the incremental value of Linux over non-GPL alternatives. On the other hand, if the current regime of sporadic ad hoc enforcement continues, then it isn't going to serve as a deterrent for most vendors, and lots of little schlocky little companies are going to design business plans assuming they can fly under the radar and not get caught.

It would be helpful for all concerned if there a test case that told us what the law actually is. Of course, if the GPL were tested in a US court, it’s possible it could lose, which could account for the lack of a test case.

No comments: