Lassan már sorozatot indíthatok. A Hall of Shame és a korábbi összegzés után itt egy újabb ügy. Most a LinuxAnt (DriverLoader - Windowsos driverek használata 2.4 és 2.6 kernel alatt) gondolta úgy, hogy semmibe veszi a GPL-t, és úgy hamisítja meg a Linux kernel moduljának licencét, ahogy az neki jólesik.
Lássuk miről van szó:
2001-ben a 2.4-es kernel fejlesztésének idején mutatkozott be a Linux kernelben a MODULE_LICENSE makró, amely lehetővé tette, hogy egy modul világosan meghatározhassa, hogy milyen licenc alatt áll. Jelenleg öt szabad szoftveres licenc használható a Linux kernelhez anélkül, hogy a modul betöltésekor a kernel ``tainted''-dé válna. Ezek a licencek a GPL, a GPL v2, a GPL és a további jogok, Dual BSD/GPL licenc, és végül a Dual MPL/GPL licenc.
Ha egy modul betöltésekor nem rendelkezik a fent említett öt licenc közül valamelyikkel, akkor a kernel automatikusan ``mérgezetté'' (tainted) válik. Az ilyen kernel debugolása meglehetősen nehéz, ezért a kernel fejlesztők nem szívesen foglalkoznak az olyan bugreportokkal, amelyek a ``tainted'' kernelektől származnak.
Lássuk hogyan trükközött a LinuxAnt:A LinuxAnt ``binary only'' (csak bináris) kernel modult ajánl mindenféle forrás nélkül. Hogy áthidalja a kernel MODULE_LICENSE ellenőrző funkcióját, a cég egy \0 sztringet tett a licenc deklarációba:
MODULE_LICENSE("GPL\0for files in the "GPL" directory; for others, only LICENSE file applies");
Mivel a kernel csak a \0-ig ellenőrizte a sztringet, a modul minden zokszó nélkül betöltődött, mint GPL-es kernelmodul (a kernel nem lett ``tainted''). (Egyébként a könyvtár, amelyről beszélnek teljesen üres.)
A csalást Carl-Daniel Hailfinger vette észre, és jelentette az LKML-re. Levelében egy patchet is mellékelt, amelyben olyan kódot javasol, amely feketelistára tenné az olyan modulokat, amelyek megpróbálják átverni a kernel ellenőrző mechanizmusát.
Linusnak is meg van a saját véleménye az ügyről. Ő nem a feketelistát támogatja, hanem más megoldást javasol. Rusty Russell a module-init-tools karbantartója szerint Linus ötelete elrontja a ``modinfo'' működését, ezért helyette egy másik megoldást javasol.
(részlet a patch-ből:
+/* Some sick fucks embeded NULs in MODULE_LICENSE to circumvent checks. */ :-)
A LinuxAnt cselekedete egyértelműen licence sértés. Nem hivatkozhat arra, hogy nem ismerte a licencet, hiszen _tudatosan_ hágta azt át. Szégyen rá nézve!