Today, to celebrate the launch of GPLv3, I thought I'd show a consequence of one of the arguments people in LKML have used to justify why they think tivoization is permitted by GPLv2.

The argument is that GPLv2 grants permission to copy, distribute and modify the covered program, and prohibits distributors from imposing onto recipients further restrictions on the exercise of the rights granted by the license. Per the argument, execution, not regulated by copyright in the US (but regulated by software law in Brazil), is outside the scope of the license: it merely refrains from restricting it. The corresponding passages of the license are:

  1. [...] Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, [...]
  2. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

Therefore, the argument goes, when TiVo gives customers the source code of GPLed binaries, and enables them to modify the software, even the copy in the DVR's hard disk, it's complying with the license requirements. It is allegedly entitled to imposes restrictions on people's ability to run the modified copies on the DVR, by arranging for the boot loader to verify a digital signature in the boot partition. Because this is a restriction on execution, and the right to execute is not granted by GPLv2, it's allegedly not a violation of the license.

Well, this is funny. If it is permitted to impose restrictions on the execution of the software, GPLv2 fails badly its intent, mentioned in its preamble:

to make sure the software is free for all its users

If the argument above is correct, then it a click-through-to-download agreement like the one below must be permitted as well.

End User License Agreement

You agree to pay me, Alexandre Oliva, a gazillion megabucks every time you run a covered program. You further agree to pay me an additional gazillion megabucks for every 24 hours of wall-clock run time of a covered program.

You further agree that you'll pay me an additional gazillion megabucks every time any downstream recipient runs a covered program (yes, the GPL permits you to distribute it, I don't have a problem with that), and an additional gazillion megabucks for every 24 hours of wall-clock run time of a covered program. Heck, why stop at downstream recipients only? Make that anyone else, even if you don't distribute the program at all, so you can't claim this is a restriction on distribution.

By covered program, I mean: (a) the programs in the "Download links" below, (b) any derived work of the program in (a), (c) any program that (a) or (b) are derived works of, (d) any program licensed under the same license as programs in (a) through (c), (e) any programs written in the same programming language as programs in (a) through (d), (f) any program with source code in the same character set as programs in (a) through (e), (g) any programs that run on any computer that could possibly run any of (a) through (f), (h) the transitive closure thereof, and (i) any other program, existing or yet to be created, for that matter.

By downloading the software using the links below, you indicate your agreement to the conditions stated herein.

By this license agreement, I hereby grant you permission to create verbatim copies of this web page. If you're in a jurisdiction in which copying from memory to disk requires permission from the copyright holder, nothing else would have granted you permission to have your web browser and/or web proxy copy the web page from memory to the on-disk cache. If you claim you haven't accepted this license agreement, you're infringing on my copyrights even if you don't download the software, and all your base will belong to me regardless of your acceptance.

Thank you for your invaluable contributions.

Copyright 2007 Alexandre Oliva

Download links: Hello World TiVo 831 kernel Linux

So, if TiVo's restriction on execution of modified versions of the program built out of sources above were permitted by GPLv2, wouldn't my distributing such software under the EULA above be just as permitted? I wonder why freedom-unfriendly vendors aren't doing this. Any ideas?

So blong...