Can TomTom find its way out of its GPL mess?

Slashdot recently posted a story about Microsoft’s patent infringement allegations against TomTom.  The gist of it is, maybe Microsoft is trying to put TomTom in an impossible position: continue using an infringing version of Linux and be liable for damages for violating Microsoft patents, or license those same patents and violate the GPL, thereby losing the right to distribute Linux.

Glyn Moody goes into more depth in his own post, quoting a commenter from an earlier story:

It isn’t a case of cross-license and everything is ok. If Tom Tom or any other company cross licenses patents then by section 7 of GPLv2 (for the Linux kernel) they lose the rights to redistribute the kernel *at all*.

[ . . . ]

Tom Tom are the first company to publicly refuse to engage in this ugly little protection racket, and so they got sued. Had Tom Tom silently agreed to violate the GPL, as so many others have, then we’d only hear about a vague “patent cross licensing deal” just like the ones Microsoft announces with other companies.

As someone not entirely familiar with the GPL, it was somewhat hard to believe that it makes it impossible to cross-license patents if you’re using it.  But, here’s a couple of choice quotes from GPLv2.

From the preamble (emphasis added):

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone’s free use or not licensed at all.

Well, they sure made the intent clear, anyway.  From the operative Section 7 quoted above:

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

So, it’s not so much that TomTom can’t license patents, they just can’t license them in such a way that TomTom’s downstream users aren’t also licensed if they obtain the code from TomTom.

Maybe the choices for TomTom aren’t quite as limited as suggested above.  It seems to me that there are a couple of viable options for them:

  1. Do as suggested above and exclusively license the MS patents in secret, thus risking violation of the GPL.  I believe violations of the GPL would be enforced by way of a copyright infringement lawsuit brought by the Free Software Foundation.  Although the FSF might feel the need to do so in order to maintain the integrity of the free distribution model, suing people who try their best to comply with the GPL seems to be the best way to stop people from wanting to use it at all.
  2. Negotiate a license with MS that licenses downstream users as well.  If the terms of the license are secret, it very well might allow this kind of use, even though downstream users wouldn’t know that they were licensed.  Thus, MS’s ability to assert its patents against others would not appear to be as threatened, and TomTom would not be in violation of the GPL.
  3. Modify the linux kernel to remove the code that is arguably patented.  Easier said than done, I know, but if MS is so easily able to assert these patents against any linux-using entity for only limited functionality in the kernel, why not just design around the patents?  Then you don’t have to worry about these particular threats from this particular patent holder.

This does look like a sticky situation for TomTom, though, and really for any company using infringing software licensed under GPLv2.  It would be nice to say, “Well, maybe they just shouldn’t have had patented technology in the kernel in the first place,” but I think that’s about as realistic as saying that they should try to take it out once it’s in there.

%d bloggers like this: