Locked devices, GPLv3 and the path to mobile freedom

iPhone lockedIn a recent discussion with friends I realized that tivoization is a sub-optimal world to describe the problem that the Free Software community has with freedom being controlled by those that control the hardware.  The word clearly targets one specific company, so the problem gets somewhat reduced in scope. The real issue is not limited to companies exploiting the hard work of free developers, removing with hardware constraints the very freedom that developers wanted to grant to all users. There is more than that, and this is especially visible in the mobile environment.

Almost all existing handsets require applications to be signed before they can be executed. Depending on the mobile platform, these signing keys can be cheap or expensive and given to all or only to selected people. All of them are personal and they’re not supposed to be shared with third party. GPLv3 and its sister licenses, Affero GPLv3 and Lesser GPLv3, require developers to release the full installation instructions which include the private keys to sign the application. This is not requested by the license only to the manufacturers of User Products, like the word tivoization seems to suggest, but to everybody distributing GPLv3 software on locked down devices, like iPhone or BlackBerry.

Free Software Developers that want to re-use or release new code under the GPLv3 licenses face a dilemma: decide not to support locked devices or circumvent the GPLv3 requirement to distribute the signing keys with an additional permission. Option one means that almost all of cell phone users out there (over 2 billion people in 2005) won’t get to know Mobile Free Software. Option 2 means surrendering to the power of AT&T, Verizon, Apple, Microsoft and the like. Funambol requires copyright assignment for all contributions, so it can distribute the source code of its mobile clients under the vanilla AGPLv3 license, and the binaries are under a different license. It’s a hack that works as long as developers trust the company not to breach the social contract and it has limitations.

On the other hand, the GPLv3 anti-lock provision is there to protect Free Software Users from the risk to be bullied by the network operators, since you can lose the warranty or be kicked out of the network if you run software that is not blessed by the gate keepers of the mobile cloud.

Is there a third option? Does relaxing the GPLv3 provision really mean surrendering to the powers of the telecom operators, who twist the arms of the proprietary manufacturers? How can the Free Software community change the broken rules dictated by the Evil Lords of the Wireless Cloud?