As you may know, I have an interest in free software licensing, and handle licensing enquiries for mozilla.org.
LWN‘s lead article (buy access; it’s great :-) this week is about an ongoing dispute between Jorg Schilling, maintainer of “cdrecord”, and various Linux vendors. Mr Schilling and those companies have rather different ideas about the way cdrecord should work, and so the vendors tend to ship a heavily patched version. Mr Schilling feels that this places him under an unreasonable support burden, as he gets a lot of email from people people using “broken” versions.
Four days ago, because of this, Mr Schilling released a new alpha of cdrecord, 2.01a36, with the following comment in cdrecord/cdrecord.c:
* You are not allowed to modify or remove the following code.
* I am sorry that I am forced to do things like this, but defective
* versions of cdrecord cause a lot of work load to me and it seems
* to be impossible to otherwise convince SuSE to cooperate.
* As people contact me and bother me with the related problems,
* it is obvious that SuSE is violating subsection 6 in the preamble of
* the GPL.
* Note that although the SuSE test is effective only for SuSE, the
* intention to have non bastardized versions out is not limited
* to SuSE. It is bad to see that in special in the “Linux” business,
* companies prefer a model with many proprietary differing programs
* instead of cooperating with the program authors.
(Thanks to garloff on LWN for bringing this to my notice.) The code referred to is a call to a function “linuxcheck()”, which checks for Linux 2.6 and prints a warning message, and then checks for SuSE and prints another one complaining about the “bastardized and defective versions” he alleges SuSE ship.
That clause, if you read it as an extension to cdrecord’s licence, makes the code it refers to non-free – it is an “further restriction” which violates section 6 of the GPL. This has several ramifications:
1) When Mr Schilling distributes the current version of cdrecord, he is violating the GPL with regard to those parts he does not own the copyright on – because the copyright holders of those parts have not given permission for their code to be in a binary with non-free code.
This would allow anyone with code in cdrecord to sue him for copyright infringement.
2) Anyone who receives the code receives it under two conflicting license provisions. That means, according to section 7 of the GPL, that they may not re-redistribute the code at all, because they cannot simultaneously satisfy the GPL and the other conditions (i.e. allow unlimited freedom to modify, and stop modification of that section).
So any Linux distributor or other party distributing 2.0a36 or above is violating the GPL, and could be sued by copyright infringement by any contributor, including Mr Schilling.
In other words, no-one is currently allowed to redistribute cdrecord at all! This is a rather unfortunate state of affairs for all parties. I hope that it will be possible to resolve it quickly; cdrecord is an excellent piece of software.