Palm Inc. with the release of their Linux powered smartphone called the Pre, now has a vested interest in the group of manufacturers using Linux as their embedded OS. As opposed to companies like Apple and their BSD based OSX in the iPhone Linux devices have certain source code disclosure obligations under the GNU Public License.

When a new manufacturer enters this group with such an innovative device hackers are ecstatic because they see something that they can shape and mold to do things with that the manufacturer is too scared to do or doesn't care about. This will make content and network providers nervous as it would cause weak DRM to be ineffective and possibly allow networks to be abused or be used in such a way as to deprive the provider of fees (think a free tethering application which is usually a monthly charge).

TiVo Inc. as part of this group is in a similar position with their Linux-powered DVR; when it was found that they were storing the raw and perfect mpeg2 bitstream from the DirecTV sattelites on the TiVo's hard drive unenecrypted much end-user DVD burning and sharing ensued. Needless to say DirecTV was not happy with this, and thus began the TiVo lockdown.

One of the main tenets of the 3rd and latest version of GNU Public License [GPLv3] is to block TiVoization. TiVoization refers to the popular time-shifting DVR made by TiVo Inc. and how it used GPL software internally (Linux, et. al.) but actively blocked end users from exercising their rights provided to them by the GPL by locking down the hardware so that software changes could not be effected.

From an article by Richard Stallman: "One major danger that GPLv3 will block is tivoization. Tivoization means computers (called “appliances”) contain GPL-covered software that you can't change, because the appliance shuts down if it detects modified software. The usual motive for tivoization is that the software has features the manufacturer thinks lots of people won't like. The manufacturers of these computers take advantage of the freedom that free software provides, but they don't let you do likewise." Why Upgrade to GPLv3

Some code is flexible in its license and gives the user the option of "either version 2 of the License, or (at your option) any later version". One such piece of code is found in the Linux kernel drivers drivers/usb/class/cdc-acm.c. Obviously GPLv3 and GPLv2 are incompatible and with the Linux kernel being licensed under GPLv2 we can't have drivers that are GPLv3, but I would be able to use any of that code in my GPLv3 application because the original author gave me the option to license the code under any later version of the GPL. In fact, that clause also makes it easier for the Linux kernel to move to GPLv3 if there was ever a great attempt to do so.

So why, while adding some functionality to this file, did Palm take it upon themselves to remove from the license this right? As there were 6 other copyright holders over the last 10 years how do they figure that they had that right?

Here is an excerpt from the patch showing where Palm excised the license text that allowed the use of this source under the GPLv3. There may be other similar changes but I cite this as my only example as I have not personally reviewed the over 350,000 lines of code in this patch or any of the other 50+ patches. Palm Open Source Packages

Palm-diff

I don't know if I want to welcome another poor-sport manufacturer to the group, hopefully this was just an accident/misunderstanding that will be rectified and not repeated. It really would be great to see a manufacturer embrace the hacker subculture kind of like id's early games. But maybe having a device be too open takes some of the excitement out of the game for hackers (see the lackluster response to the openmoko).

For another post I need to complain about the fashion in which Palm is providing these patches to the community, obviously they are using GIT and could allow anonymous access which at least preserve the change history. This is really detrimental to the upstream and downstream projects as there is no chance that Linus is going allow a 350,000 line patch to to be applied to the Linux kernel.