Sunday, March 20, 2011

Mobile Handset OS Copyright Battles

Several years ago, IBM contested SCO Unix's claims that its copyrighted Unix code had been copied by IBM in its Linux distribution. It turned out that some 326 lines of code, most of which were part of header files, were copied. It was held that there was nothing copyrightable was copied because the header files did not have any executable code. Most of these were comments. If these were the only lines that were copied out of 700,000 lines in Linux, then there was insufficient similarity between Unix and Linux to sustain a copyright violation charge. Moreover, it transpired that Novell, not SCO, owned the rights to Unix; and the case fizzled out in 2007. From PC or desktop/ laptop Operating Systems, nowadays, the focus of major IPR battles has shifted to mobile handset software platforms.

Mobile platforms began with the Symbian platform running a Linux-based open source software stack, pioneered, maintained and made popular by Nokia, along with a host of other mobile handset makers. The Symbian OS runs exclusively on ARM processors. The Symbian platform was created by merging and integrating software assets contributed by Nokia, NTT DoCoMo, Sony Ericsson and Symbian Ltd. Over 385Mn handsets had been shipped with this OS loaded, till mid-2010. However, since then, Nokia and Symbian seems to have lost their way. This was clear from the recent Nokia announcement that it would go in for Windows Phone 7 platform for its platforms in future, which basically means that it is slowly ditching Symbian. Unfortunately, this seems to be an alliance of possible losers, though one can never underestimate the advantage of deep pockets that both partners have, and their common interest in building and owning standards.

In the meanwhile, there have been several other handset software alliances. Now, the game has become less about the OS itself, and more about the “ecosystem” of apps and app developers. A key facilitator of such an ecosystem is a friendly license that allows proprietary derivative software to be created from underlying open source software stacks.

Some time back, the Oracle-Google fight flared up, alleging that Sun-Java code had found its way into the Android Mobile OS. As is common, Oracle waited till it became apparent that Android was going to be a big thing; and then it raised the copyright infringement issue. This controversy is widely expected to be concluded very soon by a licensing deal between the two giants. This is on similar lines as the fight between i4i and Microsoft (see this earlier blog entry).

More recently, there have been reports (see this and this) hinting that Google Android App Developers run a risk that if Google turns out to have violated the GNU Public License (GPLv2) in creating Android Bionic library, then those who develop apps under Android Bionic library will suffer the same fate, viz., they will have to expose and make available their source code and become subject to GPLv2.

Let us try and understand what the controversy is all about.

First, let us explain what Google has done. It has taken a part of the Linux kernel header files (which contain macros, inline functions and comments, but do not contain any executable code) and stripped it off all comments and white spaces, by automated scripts. By doing that, Google says, it has stripped the header files of anything that is copyrightable, and has also eliminated many issues that lead to compilation failure. They contend that this creates “clean” header files that are no longer subject to the GPLv2 license, because they only contain a few types, macros, and inline functions. They contend that “Bionic comes with a set of 'clean' Linux kernel headers that can safely be included by userland applications and libraries without fear of hideous conflicts.” That script results in a type of C Library that is used by all app developers needing to access core functions of the Linux OS.

Those who say that Google is wrong, essentially insist that the headers are indeed copyrightable, because macros and inline functions (which are not stripped out by Google) have considerable amount of creativity and original expression that make them copyrightable; and stripping out comments and empty lines will not make the header files any less copyrightable. If a single header file, therefore, is copyrightable, it can never be said that a collection of hundreds of such files are not copyrightable. There is more copyrightable stuff in the structure, design, etc. In the entire collection, beyond what is copyrightable in each of the files. Therefore, the header files constitute copyrightable elements (under US law) of the Linux distribution, and hence are also subject to the GPLv2 license.

Those who say that Google is right rely on the US SC decision in SCO v IBM, discussed in the first paragraph, to hold that the header files, not being executable, and being stripped of any original content like comments, are not copyrightable.

If Google is wrong, at worse, all Google App developers (part of the Open Handset Alliance) will have to make their source codes available; which will blunt their competitive edge. At best, Google will have found a way to escape the rigours of the GPLv2 license, and essentially to “privatize” Linux. Currently, Google licenses Android Bionic under the Apache Software License, that is seen to be much more business-friendly than the GPLv2, as it is a more permissive license that is conducive to commercial development and proprietary redistribution. “Permissive licenses like the ASL and BSD license are preferred by many companies because such licenses make it possible to use open-source software code without having to turn proprietary enhancements back over to the open source software community”, writes Ryan Paul on the ars technica website. However, as pointed out here, neither the software nor the licensing is not so simple. Android is a complex open source project made up of more than 165 components, 80,000 files, and 2 GB of code under 19 different licenses.

The Google-driven Open Handset Alliance is not by any means the only Linux-inspired coalition of mobile handset manufacturers. Another example is the LiMo Foundation, whose mobile OS extensively uses open source technologies but some of its top-level APIs are said to be proprietary. But these proprietary components included in the LiMo Core will be available to 3rd party developers under a royalty-free license that covers both patents and copyrights. Among the Service-Provider/Handset maker alliances LiMo boasts of using its platform are NEC/NTT DoCoMo; Samsung/Vodafone; and NTT DoCoMo/Panasonic. Unlike several other alliances that are driven by a single company, the LiMo Foundation boasts of an independent governance and reflects the inputs and contributions of multiple industry stakeholders.

OpenMoko is another such mobile alliance with an open source software stack, whose software and license is said to be very business-friendly. Among its distributions is GameRunner, an Openmoko Linux distribution that aims to convert the Freerunner (a touch screen smart phone designed to run OpenMoko software) into a Linux-based handheld game console.