A cdrecord kétségtelenül népszerű cd író program. Számos operációs rendszeren használható, linuxos körökben pedig szinte az egyetlen komolyabb korongégető szoftver. Ezért sokakat érint az a hír, hogy Jörg Schilling (a szoftver írója) megváltoztatta a cdrecord licencét.
Az egész egy hosszú LKML szállal kezdődött. A thread-ben számos cdrecord-dal kapcsolatos hibát tárgyaltak meg a felek, de felmerült az is, hogy Schillingnek és néhány Linux disztribútornak alapvetően eltérő nézeteik vannak arról, hogy hogy is kéne a cdrecord-nak működnie.
A probléma több okból is fakad. Az egyik, hogy Schilling elkészíti a cdrecord eredeti verzióját, amelyet publikál. A Linux disztribútorok ezt beépítik a terjesztéseikbe. Ki így, ki úgy. Például a Slackware nem nagyon patcheli az eredeti szoftvereket, mert azt a nézetet vallja, hogy jó úgy, ahogy a szerző megírta. Ha nem lenne úgy jó, akkor a Slackware nem tenné be a terjesztéseibe. Tiszta sor. Viszont vannak olyan (kereskedelmi) Linux disztribútorok, akik nagyban függnek (anyagilag) a felhasználóiktól, és igyekszenek a felhasználók kéréseit maradéktalanul teljesíteni. Ebből kifolyólag számos patchet tesznek hozzá az olyan szoftverekhez, mint például a cdrecord. Sajnos a patchekkel együtt újabb bugok is kerülhetnek a szoftverbe, és a felhasználók nagy része (nem mind) ahelyett, hogy a Linux disztribútoroknak jelezné a hibát, az upstream-et kezdik bombázni a bugreportokkal. Emiatt Schillingnek rengeteg olyan bugreporttal kell foglalkoznia, amivel ő nem tud mit kezdeni, mert az ő verziójában olyan funkciók nincsenek. A másik probléma, hogy a cdrecord hivatalos verziója nem tud DVD-t írni. A felhasználók már többször kérték Schillinget, hogy építse bele a DVD írási képességet a cdrecord-ba, de ez elmaradt. Rossz nyelvek szerint ennek nem technikai akadályai vannak, hanem az ok az, hogy Schilling ajánl egy kereskedelmi cdrecord verziót is (pénzért), amely tud DVD-t írni, és ezért nem teljesíti a kérést. A felhasználók szomorúak.
Itt jönnek ismét képbe a Linux disztribútorok. Ők nem szeretik, ha a felhasználók szomorúak, ezért olyan cdrecord forráskódot (és binárist) készítenek, amelyek számos helyen patchelve vannak, és persze tudnak DVD-t írni.
Nem tudni, hogy Schilling melyiket unta meg, de egy biztos, hogy a cdrecord licence változott. A cdrecord 2.01a36-es alpha verziójától a cdrecord.c file az alábbi sorokat tartalmazza:
[...]
/*
* 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.
*
* The reason for including a test against SuSE's private
* distribution environment is only that SuSE violates the GPL for
* a long time and seems not to be willing to follow the requirements
* imposed by the GPL. If SuSE starts to ship non defective versions
* of cdrecord or informs their customers that they would need to
* compile cdrecord themselves in order to get a working cdrecord,
* they should contact me for a permission to change the related test.
*
* 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.
*/
[...]
A cdrecord.c több helyen is tartalmaz olyan sorokat, amelyek arra utalnak, hogy nem lehet a forrást módosítani, például:
[...]
* You are not allowed to modify or remove the call to "linuxcheck()".
* 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.
[...]
vagy
[...]
/*
* Begin restricted code for quality assurance.
*
* Warning: you are not allowed to modify or to remove the
* Copyright and version printing code below!
* See also GPL § 2 subclause c)
*
* If you modify cdrecord you need to include additional version
* printing code that:
*
* - Clearly states that the current version is an
* inofficial (modified) version and thus may have bugs
* that are not present in the original.
*
* - Print your support e-mail address and tell people that
* you will do complete support for this version of
* cdrecord.
*
* Or clearly state that there is absolutely no support
* for the modified version you did create.
*
* - Tell the users not to ask the original author for
* help.
*
* This limitation definitely also applies when you use any other
* cdrecord release together with libscg-0.6 or later, or when you
* use any amount of code from cdrecord-1.11a17 or later.
* In fact, it applies to any version of cdrecord, see also
* GPL Preamble, subsection 6.
*
* I am sorry for the inconvenience but I am forced to do this because
* some people create inofficial branches. These branches create
* problems but the initiators do not give support and thus cause the
* development of the official cdrecord versions to slow down because
* I am loaded with unneeded work.
*
* Please note that this is a memorandum on how I interpret the GPL.
* If you use/modify/redistribute cdrecord, you need to accept it
* this way.
*
*
* The above statement is void if there has been neither a new version
* of cdrecord nor a new version of star from the original author
* within more then a year.
*/
/*
* Ugly, but Linux incude files violate POSIX and #define printf
* so we cannot include the #ifdef inside the printf() arg list.
*/
A program ennek ellenére továbbra is GPL marad. A licence szerint:
"This software is under GPL with the following limitations:
- You may not modify certain copyright messages in cdrecord.c See cdrecord.c for further information.
- You may (with a few exceptions) not modify the location of the configuration file /etc/default/cdrecord. See defaults.c for further information."
Az nagyon-nagyon hosszú LKML szál itt kezdődik. A dologról ír az LWN.net is itt.