[go: up one dir, main page]

|
|
Log in / Subscribe / Register

The Philips webcam driver - again

The 2.6.12-rc kernels include, among many other things, the long-awaited return of the Philips web camera driver. This driver, remember, was removed at the original author's request; that author (known as "Nemosoft Unv") objected to the removal of a special-purpose hook which allowed a non-free decompression module to be loaded into the kernel. After the removal, Luc Saillard took over the driver, with the goal of getting it back into the mainline. As part of that process, he reverse engineered the image decompression code and included it in the GPL-licensed module. It would appear that this episode has led to a good result: the Philips driver is back, and more free than before.

Nemosoft has recently resurfaced, however, to make the claim that things may not be quite as good as they seem. According to Nemosoft, no real reverse engineering job was done. Instead:

In case you hadn't noticed, that code has been reverse compiled (I would not even call it "reverse engineered"), and is simply illegal. Maybe not in every country, but certainly in some. There are still some intellectual property rights being violated here, you know, and I'm surprised at the contempt you and Linux kernel maintainers show in this regard for a few lines of the law.

Mr. Saillard has been silent on how he performed the reverse engineering task. A look at the code (example - pwc-kiara.c) is somewhat unenlightening - the decompression code consists mostly of a set of tables filled with mysterious numbers. It is hard to imagine how those tables could be created in any way other than extracting them from the binary decompressor module.

If the code was truly decompiled and relicensed, there could be a copyright issue here. On the other hand, the tables used for decompression will be hard to protect if they are truly the only way to interpret images produced by the camera. Alan Cox (who forwarded the PWC patches for merging) acknowledges that there could be an issue with the decompression code, but he is not overly worried about it:

The legal position on reverse engineering is in general fairly clear. What you describe might not be. If so then we need to find someone who hasn't read the code to rewrite it from the algorithm description of the current code. Shouldn't take more than a week.

Alan also points out an issue others have raised: by Nemosoft's admission, the non-disclosure agreement which forced the decompression code to be proprietary ran out some time ago. Nemosoft could thus resolve the licensing issues by simply releasing the decompression code under a free license.

Index entries for this article
KernelCopyright issues
KernelPhilips driver


to post comments

The Philips webcam driver - again

Posted May 5, 2005 4:57 UTC (Thu) by horen (guest, #2514) [Link] (2 responses)

by Nemosoft's admission, the non-disclosure agreement which forced the decompression code to be proprietary ran out some time ago. Nemosoft could thus resolve the licensing issues by simply releasing the decompression code under a free license.

Not exactly. The NDA entered into by Nemosoft with Philips expired a while back, but this does not give him a legal or ethical right to release Philips' proprietary code. Nemosoft could, if he so desired, ask Philips for permission to release their code and, if permission was granted, release the code. Better yet would be for Luc Saillard to make that request.

When an NDA expires, it means that the signee needs to resign/renegotiate the agreement with the vendor/developer; it certainly does not mean that the vendor/developer's rights to its proprietary code disappear. It might be nice -- it's certainly expedient to believe so -- but that's not the way it works.

I agree with Nemosoft's decisions, even though I'm a proud (albeit forlorn) owner of a Philips PCVC740K webcam. Doing the right thing isn't always popular, but it's right.

Uhm

Posted May 5, 2005 15:32 UTC (Thu) by ismail (subscriber, #11404) [Link]

".. the decompression code consists mostly of a set of tables filled with mysterious
numbers. ...."

Have you ever seen reverse engineered audio/video codecs?

The Philips webcam driver - again

Posted May 5, 2005 22:33 UTC (Thu) by brouhaha (subscriber, #1698) [Link]

An NDA is a "Non-Disclosure Agreement". When the NDA expires, you are allowed to disclose the NDA'd material to third parties. The point of the NDA is to keep the material secret for a limited time (unless the NDA has no expiration).

Note that the expiration of an NDA does not terminate any restricted rights that result from copyrights, trademarks, or patents. Suppose I get technical documentation on the interface to a Foobarco webcam under NDA, and it includes a copyrighted Foobarco driver for Windows. Once the NDA expires I can publish my own Linux driver based on the documentation, but I can't still cannot redistribute the Foobarco copyrighted Windows driver, or a work derived directly from it, without obtaining permission.

In the US copyrights do not cover mere compilations of facts, so they probably wouldn't cover something like an array of compression coefficients.

I am not a lawyer, but I've been a party to more than a dozen NDAs, and studied them fairly carefully before signing them. However, I'd advise you to consult an attorney before taking any action.


Copyright © 2005, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds