Populaarse Ruby-teegi mimemagic, millel on üle 100 miljoni allalaadimise, autor oli sunnitud muutma litsentsi MIT-lt GPLv2-ks, kuna projektis avastati GPLv2 litsentsi rikkumine. RubyGemsis jäid saadetiseks ainult versioonid 0.3.6 ja 0.4.0, mis on antud GPL alusel, ning kõik vanad versioonid MIT litsentsi alusel eemaldati. Veelgi enam, mimemagic arendamine peatati ja GitHubi hoidla viidi arhiivi olekusse.
Need toimingud viisid projektide koostamise võimaluse rikkumiseni, mis kasutavad mimemagicut sõltuvusena ja mis on antud litsentside alusel, mis ei ühildu GPLv2-ga. Uue mimemagic versiooni kasutamisel peavad teiste projektide arendajad, sealhulgas eratööstuse projektid (MIT litsents lubab sellist kasutamist), oma koodi GPL alla uuesti litsentseerima. Probleemi süvendas see, et vanad versioonid MIT litsentsi alusel lakkasid olemast saadaval RubyGems.org-s. Kui koostamis- serveril ei ole paketide vahemälu aktiveeritud, toob katse koostada projekte vanade mimemagic versioonidega kaasa rikke.
Rünnakute alla sattus ka Ruby on Rails raamistiku komponent, kus üks sõltuvustest oli mimemagic. Ruby on Rails on litsentseeritud MIT alusel ning ei tohi sisaldada GPL-litsentsiga komponente. Probleem on muutunud globaalseks — kui otse muudetud osad puudutasid 172 paketti, siis sõltuvuste arvestamisel on kannatada saanud enam kui 577 tuhat repositooriumi.
GPL-litsentsi rikkumine mimemagic projektis on seotud freedesktop.org.xml faili sisaldusega, mis on koopia MIME-tüübi andmebaasist shared-mime-info raamatukogust. Antud fail avaldatakse GPLv2 litsentsi alusel, samas kui shared-mime-info raamatukogu on ISC litsentsi alusel, mis on GPL-ga ühilduv. Mimemagic algkood on avaldatud MIT litsentsi alusel ja GPLv2 litsentsiga komponentide toimetamine nõuab, et tuletatud toode levitataks litsentsi alusel, mis on GPLv2-ga ühilduv. Seonduv shared-mime-info juhtis sellele tähelepanu ning mimemagic autor nõustus nõudmisega litsentsi muutmiseks.
Väljatulekuks oleks XML-faili töötlemine reaalajas, ilma freedesktop.org.xml'i lisamiseta raamatukogusse, kuid sellega seotud mimemagic külmutas projekti repositoriumi, seega peab seda tööd kiirelt tegema keegi teine. Kui mimemagic autor ei soovi oma projekti uuesti toimima saada (praegu keeldub ta), on vajalik luua mimemagic'ist forkk ja asendada sõltuvus kõigis seotud projektides. Samuti kaalutakse alternatiivina üleminekut mimemagic'ule sõltuvate projektide puhul raamatukogule libmagic.
Allikas: opennet.ru
