Tvang licensbrud Microsoft til at åbne 20.000 linjer Linux-kode?

Microsoft frigav 20.000 linjer driverkode som open source, fordi et brud på GPLv2-licensen tvang dem til det, siger flere kilder. Vrøvl, vi havde frigivet koden uanset hvad, siger Microsoft.

Microsoft donerede mandag 20.000 linjer driverkode til Linux-kerneprojektet, som skal bruges til at få Linux til at køre bedre under Microsofts virtualiseringsløsning Hyper-V.

Men frigivelsen af koden til de i alt tre virtualiseringsdrivere skyldes angiveligt også, at Microsoft havde forbrudt sig mod open source-licensen GPLv2, som koden er blevet frigivet under.

Det påpeger lederen af holdet bag drivere til Linux-kernen, Greg Kroah-Hartman, og programmør og kernebidragyder hos softwarefirmaet Vyatta, Stephen Hemminger.

Stephen Hemminger skriver på sin blog, at tingene begyndte at rulle, da en af brugerne af Vyattas forum spurgte til understøttelsen af Hyper-V's netværksdriver i Vyatta-kernen. Lidt googling fandt frem til de nødvendige drivere, men ved nærmere eftersyn viste det sig, at driverne både indeholdt open source-komponenter under GPL-licensen og samtidig var statisk linked til flere forskellige binære dele.

»GPL tillader ikke sammenblanding af åben og lukket kode, så det var en klar krænkelse af licensen. I stedet for at råbe op, var min hensigt at løse problemet, og derfor henvendte jeg mig til Greg Kroah-Hartman (lederen af Linux-driverholdet, red.),« skriver Stephen Hemminger.

Greg Kroah-Hartman bekræfter over for it-journalisten og Microsoft-observatøren Mary-Jo Foley, at Stephen Hemmingers udlægning af sagen »lyder korrekt«. En talsperson for Greg Kroah-Hartman har yderligere tilføjet:

»Så snart licens-spørgsmålet blev bragt på bane over for Microsoft, gik de i gang med processen om at frigive koden,« siger talspersonen.

Microsoft mener ikke, at sagen kan udlægges sådan. Faktisk fastholder virksomheden over for SD Times, at man ville have frigivet koden uanset hvad.

»Hank Janssen (en Microsoft-udvikler, red.) kom med med idéen om at frigive koden til kernen flere måneder, før Greg (Kroah-Hartman, red.) kontaktede os. Vi udfærdigede en plan baseret på værdien af at understøtte så mange Linux-distributioner som muligt. Hank foreslog GPLv2 som midlet,« siger Microsofts ledende direktør for platformstrategi, Sam Ramji, ifølge SD Times.

Stephen Hemminger ønsker dog Microsoft tillykke med tiltaget uanset hvad:

»Jeg ved, det har været et hårdt skridt at tage for Microsoft, siden det indebærer anerkendelsen af GPL og respekt over for Linux-miljøet,« skriver Stephen Hemminger.

Uanset spørgsmålet om GPLv2-licensen skyldes Microsofts frigivelse af koden formentlig, at virksomheden gerne vil have de tre drivere med i samtlige Linux-distributioner. Dermed vil distributionerne kunne afvikles effektivt under Hyper-V, som så vil være mere konkurrencedygtig end for eksempel VMwares produkter.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (6)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#2 Søren Reinke

Så det du siger er at Microsoft ikke selv har skrevet en eneste af de 20000 linjer kode ?

Hvis det er tilfældet har du ret, men hvis du læste artiklen ville du kunne se de statisk har linker noget GPL kode til deres EGEN kode.

Og den kode de selv har lavet, har de så valgt at frigive som GPL, sikkert for at undgå problemer.

  • 0
  • 0
#3 Nicolai Klausen

Så vidt jeg har forstået, så er den frigivet kode 100% udviklede af MS! Problemet ligget i den måde de har udviklede det på. De har lavet en stump kode som de har frigivet under GPL der linker til Linux kernel. Den stump kode bliver der så linkede til statisk fra noget lukkede kode.

Sådan som jeg har forstået det, så skyldes problemet, at de(n) udvikler der har lavet kode ikke har fattede juraen. De har troede, at det var ok at linke statisk fra lukkede kode til deres egen udviklede GPL kode, der så linker videre til kernel. Men man må ikke brude GPL, også selv om man selv har rettighederne til kode.

Nogen vil så være hurtige til at sige, at så kunne MS jo bare dual licens den kode der linker til Linux kernel og så kompile deres lukkede kode op mod en version af koden under en MS licens. Men nej, for så har kan de ikke bruge "mellem koden" til at linke til Linux kernel.

Med andre ord, så har de ikke været smarte nok til at bruge samme model som ATI/Nvidia, der ikke linker statisk til deres GPL "mellem kode".

  • 0
  • 0
#4 Jonas Finnemann Jensen

Hvis det er tilfældet har du ret, men hvis du læste artiklen ville du kunne se de statisk har linker noget GPL kode til deres EGEN kode.

Hvis du linker til noget andet kode er der tale om et netarvet værk. Dette værk ejer du IKKE alle rettighederne til!

Hvis den kode du har linket til er frigivet under GPL, skal du også distribuere dit værk under GPL.

  • 0
  • 0
#5 Jonas Finnemann Jensen

Med andre ord, så har de ikke været smarte nok til at bruge samme model som ATI/Nvidia, der ikke linker statisk til deres GPL "mellem kode".

Er det ikke noget med at deres driver først bliver linket, når man installere dem. Og at de således distribueres som object code eller noget i den retning...

Det er nemlig ikke i uoverensstemmelse med GPL at lade være med at frigive sine egne binære moduler... Man skal bare frigive dem når man distribuere dem.

  • 0
  • 0
#6 Lars Bjerregaard

Sådanne licens-diskussioner løber altid lynhurtigt af sporet, hvis man ikke får slået de grundlæggende begreber fast fra starten, så her er mit bud på det...

Ejerskab - Ejerskab til et stykke kode er fastslået ved copyright. Hvis du har din copyright "Copyright (c) MeMyselfI" stående i din sourcekode, så ejer du koden. Punktum! Det siger ikke noget om hvad andre må gøre med den (det er licensen der gør det), men det fastslår ejerskabet. Der er ikke andre der kan gøre ejerskab gældende end dig, og vigtigst af alt- det er dig der har ret til at bestemme hvilken licens der dækker koden. Et projekt hvori din kode skal indgå kan godt diktere en licens, men det er en anden sag, pointen er at det er dit valg, og dit alene.

Licens - En licens er et juridisk dokument, som gør gældende hvem der må gøre hvad med koden, eller ej. Med andre ord- hvad du KAN med koden. Groft (meget groft) sagt siger GPL at du kan studere, dele, distribuere og modificere koden som du har lyst, sålænge du overholder visse betingelser, hvor disse betingelser er meget nøje defineret for at garantere at koden forbliver "Fri" (som i frihed). Læg mærke til at det kun er ejeren(erne) = copyrightholderen(ene) som kan skifte licensen for et stykke kode, andre kan ikke. Et stykke kode kan godt skifte licens, men aldrig retroaktivt, dvs. at et stykke kode som er Frit, godt kan gøres ufrit af sin ejer i den næste version, men tidligere Frie versioner vil altid være frie, og det er bla. det som muliggør "forks" som (IMHO) er en rigtigt sund ting.

Nu kommer vi ud i de lidt mere grå zoner....

Produkt - Et produkt kan være f.eks. MS Word. Et produkt kan være (og er det ofte for programmer over en hvis størrelse) en samling af komponenter, biblioteker, resources, etc.. som hver især kan have forskellige ejere, og falde under forskellige licenser.

Linkning - Seperate komponenter/libraries linkes ofte sammen, for at skabe det færdige kørende program. Husk her at der er forskel på statisk og dynamisk linkning, samt ad-hoc sammenkædning som f.eks. en ren plug-in arkitektur, som måske slet ikke gør brug af objekt-linkning overhodet. Der er en vis mængde debat omkring hvad de præcise regler og konsekvenser er, af linkning/plugning af GPL sammen med non-GPL kode, af forskellig observans medfører, men der er dog som jeg læser det en vis konsensus. Det bliver du nødt til at Google efter, og i sidste instans er det kun retssager som kan afgøre den endelige præcedens for disse tilfælde. Man skal ikke være bekymret, bare sætte sig ind i det.

Distribution - Når du distribuerer et sådant program, som består af dele med forskellige licenser, så skal man have styr på begreberne "indgår i", "gør brug af", "er en del af", "kalder ud til", osv. GPL, som nævnt ovenfor, tillader visse former men ikke andre, når det er i kombination med kode under non-GPL-kompatible licenser. Generelt, jo tættere forholdet er, på et teknisk plan, mellem Free/non-free komponenter, jo mere problematisk kan det blive. Det behøver ikke være problematisk overhovedet, sålænge man tænker over sin program-arkitektur og sine værktøjer.

Håber det giver lidt fundamental klarhed, til afsæt for resten af diskussionen, og at jeg ikke har forbrudt mig mod den faktiske sandhed alt for voldsomt :-) Andre og klogere hoveder er mere end velkomne til at korrigere mig.

  • 0
  • 0
Log ind eller Opret konto for at kommentere