Tijdens de discussie van de taakplanner noemde een van de deelnemers een voorbeeld dat, ondanks uitspraken over de noodzaak om compatibiliteit te waarborgen bij de ontwikkeling van de Linux-kernel, recente wijzigingen in de kernel de correcte werking van de module "". Linus Torvalds , dat het principe " " verwijst naar het behoud van externe interfaces van de kernel die door gebruikersapplicaties worden gebruikt, evenals de kernel zelf. Maar het dekt niet apart ontwikkelde externe lagen bovenop de kernel, die niet zijn opgenomen in de hoofdversie van de kernel, waarvan de auteurs op eigen risico de veranderingen in de kernel moeten volgen.
Wat betreft het project "ZFS on Linux", adviseerde Linus om de zfs-module niet te gebruiken vanwege incompatibiliteit tussen de CDDL- en GPLv2-licenties. De situatie is zo dat, vanwege het licentiebeleid van Oracle, de kans dat ZFS ooit in de hoofdversie van de kernel kan komen, erg klein is. De voorgestelde tussenlagen die de toegang tot kernel-functies voor externe code vertalen, zijn een twijfelachtig oplossing - juristen blijven of het opnieuw exporteren van GPL-functionele elementen van de kernel via wrappers leidt tot het creƫren van een afgeleide werk dat onder de GPL-licentie geleverd moet worden.
De enige optie waarbij Linus zou instemmen met de acceptatie van de ZFS-code in de hoofdkernel, zou zijn om een officiƫle toestemming van Oracle te verkrijgen, ondertekend door de hoofdjurist, en bij voorkeur door Larry Ellison zelf. Tussenoplossingen zoals lagen tussen de kernel en de ZFS-code zijn onaanvaardbaar, gezien de agressieve intellectueel-eigendomsstrategie van Oracle voor programmeerinterfaces (bijvoorbeeld, met Google over de Java API). Bovendien beschouwt Linus de wens om ZFS te gebruiken als slechts een modegril en niet als technische voordelen. De prestatietests die Linus heeft bestudeerd, wijzen niet in het voordeel van ZFS, en het gebrek aan adequaat onderhoud garandeert de stabiliteit op lange termijn niet.
Ter herinnering, de ZFS-code wordt gedistribueerd onder de vrije CDDL-licentie, die niet compatibel is met GPLv2. Dit maakt het onmogelijk om ZFS on Linux in de hoofdbranch van de Linux-kernel te integreren, aangezien het mengen van code onder de GPLv2- en CDDL-licenties onaanvaardbaar is. Om deze licentie-incompatibiliteit te omzeilen, heeft het project "ZFS on Linux" besloten om het product volledig onder de CDDL-licentie te distribueren als een afzonderlijke module die apart van de kernel wordt geleverd.
De mogelijkheid om de kant-en-klare ZFS-module in distributies op te nemen, zorgt voor discussie onder juristen. Juristen van de organisatie Software Freedom Conservancy (SFC) , stellen dat het leveren van een binaire kernelmodule in een distributie resulteert in een gecombineerd product met GPL-eisen voor de verspreiding van het eindproduct onder GPL. Juristen van Canonical stellen echter dat de levering van de zfs-module is toegestaan, mits de component wordt aangeboden als een zelfstandige module, apart van het pakket met de kernel. Canonical merkt op dat distributies deze aanpak al lange tijd gebruiken voor het leveren van propriƫtaire stuurprogramma's, zoals NVIDIA-stuurprogramma's.
De andere kant tegenargumenteert dat het compatibiliteitsprobleem met de kernel in propriƫtaire stuurprogramma's wordt opgelost door het leveren van een kleine laag, die onder de GPL-licentie wordt verspreid (een GPL-module wordt in de kernel geladen, die vervolgens de propriƫtaire componenten laadt). Voor ZFS kan een dergelijke laag alleen worden voorbereid als Oracle licentie-excepties verstrekt. In Oracle Linux wordt de GPL-incompatibiliteit opgelost door Oracle licentie-excepties te bieden, die de eisen voor het licentiƫren van het gecombineerde werk onder CDDL opheffen, maar deze uitzondering geldt niet voor andere distributies.
Een alternatieve benadering is het leveren van alleen de bronbestanden van de module in de distributie, wat niet leidt tot binding en wordt beschouwd als het leveren van twee afzonderlijke producten. In Debian wordt hiervoor het DKMS-systeem (Dynamic Kernel Module Support) gebruikt, waarbij de module wordt geleverd als broncodes en op het systeem van de gebruiker wordt samengesteld, direct na de installatie van het pakket.
Bron: opennet.ru
