GPL3 vs. GPL2, and Tivo

Ok everyone. Over at the Linux Kernel mailing list, there has been *A LOT* of discussion (and pissing and moaning) about the GPLv3. The part which is getting everyone’s panties in a knot is section 6 (of the 4th draft, 3rd in the first draft). This section says that, and I am paraphrasing here, if you sell an end-user product, then you must include, or make available, all of the information necessary to install and execute modified software on the device. This is supposed to include any methods, procedures, and authorization keys, to do this. The only real caveat is for items stored in ROM, which can not be upgraded, at least in any reasonable way.

Are you FREAKING INSANE! Let me get this straight, the idea is to allow people to modify the source code for a consumer product, and upload that into the device. All of this, with “help” from the manufacturer on how to do this.

So, some kid out there will lookup the “installation information” for the newly purchased _______ (fill in the blank), and then upload their own modified code, and then break the damn thing. Now, let’s rule out the situation where the device will start up in a way would allow reloading the original code. Let’s go straight for the “its dead Jim” scenario. According the the GPLv3, there is no requirement that the company that made the device has to support the device in this scenario. Yeah, that is going to do the company a lot of good. What if this happens within the return period for a product? The family takes it back to the store. The parents probably don’t know what happened, simply it broke. It gets replaced, and the vendor doesn’t find out about loading of modified code until they get the physical unit back. By this time, they have swallowed the return cost, and they really have no recourse.

When you start talking about code in physical devices that are not “normally” expected to allow end-user modification of the software that runs it, then you get into touchy areas. I think the important part is what people “normally” expect to be able to do with something. If you buy a TV, phone, DVD player, washer, blender, or just about any other device, there is, normally, no expectation of being able to make your own changes to it. Yes, there may be add-on devices you can purchase, or download, as with cell phone ring tones and etc, but most people do not expect to be able to make their own changes to the device.

If the GPLv3 required vendors to make the “installation information” available, then that creates a new legal quandary. If you make it known how to make changes to the item, at what point, legally, do you abdicate the right to proclaim that you are not responsible for changes made by the end user? If you tell someone how to do something with the device, then you are, in some ways, stating that you cover using the device in that manner.

To better tell this, you need to go watch the movie 1941, go ahead, I will wait.

It is a funny movie, don’t you think?

Don’t stop yet.

Really, it is good, just keep watching.


OK, you finished the movie and came back for the rest of this, sadly, you could have come back sooner, but I didn’t want to interrupt such a good movie (OK, maybe not THAT good of a movie).

Now, early on in the movie, the Army is delivering a cannon to the Douglas family. Now, the Sergeant is instruction Mr. Douglas in what NOT TO DO. Stuff like, ‘do not load the ammunition through the feed guides on top’, ‘do not pull the load lever afterward’, ‘do not turn the cannon like this’, ‘do not press this to fire’. You get the idea.

Now, instead of a cannon, it is a $1,500 television. The manufacturer includes information on how to modify the source code the runs the TV, and how to upload that into the TV. Included in the instructions is this:

1. Do not download the source code from this location.

2. Do not make changes to the source code.

3. Do not compile the source code using gcc targeted for the x platform.

4. Do not then connect a computer to the device using an x connection.

5. Do not send the compiled code using these settings.

6. Do not wait until the ready response to power off and power back on the TV.

Yeah, if they have to include information on how to upload code to a device, then the average consumer, and judge, will assume that means that they take responsibility for changes you make to the code and load into the device, including supporting the device afterward.

I understand why the FSF feels that this is important. As more and more devices become basically pared down computers, the possibility of GPL code ending up in the devices grows. With various groups, RIAA and MPAA the most annoying, wanting to restrict access to devices and the code that runs on them, it becomes more likely that devices will become more and more “black boxes,” with new rules and/or laws restricting using general purpose computers to access content.

But this puts the onus on the manufacturer. Yes, in some countries, any judge would laugh at some kid who broke the family whatever by uploaded new code into it, but in other countries, the US included, there would be serious weight given to the fact that the manufacturer included instructions on how to do it. All this would accomplish doing is sending companies back to closed sources for their code.

Now, since I don’t like just whining and complaining about things, this is what I would put in:

7. User Product access

A “User Product” is either (1) a “consumer product,” which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.

A manufacturer of a User Product gives authority to the recipient of that product to access the source code, object code, or install modified code on the product. This includes the authority to bypass any technical measure which controls access to source code, object code, or controls access to install modified code. This does not require the manufacturer to provide the authority to bypass any technical measure which controls access to anything other than the code covered by this license.

The manufacturer is not required to continue to provide support service, warranty, or updates for code that has been modified, or any device such code has been installed. Network access, or other service normally provided for the user product, may be denied when modified code has been installed on the device.

This section does not supersede the conveying of Corresponding Source requirements of section 6.

Now, I finish editing this, publish it, and find out that I have edited out all of the Tivo stuff. Great.

OK. Tivo gets pulled into this, because the arguement around section 6 is that with something like a Tivo, that uses GPL software, you can not load modified versions of the GPLed software onto it. The capacity to do that is limited by technical measures. So, the idea is to say, via the GPL v3, that you can not restrict access to upload modified code. It is just that the GPLv3 goes a little far, in that it requires the manufacturer to include the information necessary to upload modified code onto the device. Tivo just happens to be the guys picked on a lot over this situation.

Personally, I like my idea better. Don’t make it possible for any old idiot to break their Tivo, or whatever, but make sure the attempt to break it… I mean upgrade it…. is not considered bypassing a technical control measure, which would be in violation of the DMCA. The manufacturer isn’t going to tell you how to load modified code onto the device, but they can’t use the spectre of the DMCA to tell you that you can’t. Simply, if you want to break it, void your warranty, and just about anything else, then you do it on your own, don’t come crying to us abou it!

There ya go.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: