Avtor priljubljene knjižnice Ruby mimemagic, ki ima več kot 100 milijonov prenosov, je bil prisiljen spremeniti njeno licenco iz MIT v GPLv2, potem ko je bila odkrita kršitev GPLv2. V RubyGems sta bili ohranjeni le različici 0.3.6 in 0.4.0, distribuirani pod licenco GPL, vse starejše izdaje z licenco MIT pa so bile odstranjene. Poleg tega je bil razvoj mimemagic ustavljen, repozitorij GitHub pa je bil arhiviran.
Zaradi teh dejanj ni bilo mogoče graditi projektov, ki uporabljajo mimemagic kot odvisnost in so licencirani pod licencami, ki niso združljive z GPLv2. Pri uporabi nove različice mimemagic morajo razvijalci drugih projektov, vključno z lastniškimi (licenca MIT dovoljuje takšno uporabo), svojo kodo ponovno licencirati za GPL. Težavo je še poslabšalo dejstvo, da starejše različice z licenco MIT niso bile več na voljo na RubyGems.org. Če je gradnja strežnika Predpomnjenje paketov ni omogočeno, poskus gradnje projektov s prejšnjimi različicami mimemagica bo povzročil napako.
Prizadet je bil tudi ogrodje Ruby on Rails, ki nalaga mimemagic kot odvisnost. Ruby on Rails je licenciran pod licenco MIT in ne more vključevati komponent z licenco GPL. Težava je bila globalna: sprememba je neposredno vplivala na 172 paketov, vključno z odvisnostmi, vendar je bila prizadeta več kot 577 repozitorijev.
Kršitev licence GPL projekta mimemagic izhaja iz vključitve datoteke freedesktop.org.xml, ki je kopija podatkovne baze tipov MIME iz knjižnice shared-mime-info. Ta datoteka je licencirana pod licenco GPLv2, medtem ko je knjižnica shared-mime-info sama licencirana pod licenco ISC GPL. Izvorna koda mimemagic je bila licencirana pod licenco MIT, distribucija komponent pod licenco GPLv2 pa zahteva distribucijo izpeljanega dela pod licenco, združljivo z GPLv2. Vzdrževalec shared-mime-info je na to opozoril avtorja mimemagic, ki se je strinjal s spremembo licence.
Rešitev bi bila sproti razčlenjevati datoteko XML, ne da bi datoteko freedesktop.org.xml dodali kot del knjižnice. Vendar pa je vzdrževalec mimemagic zamrznil repozitorij projekta, zato bo to delo moral nemudoma opraviti nekdo drug. Morda bo, če avtor mimemagic noče ponovno objaviti svojega projekta (kar je doslej zavrnil), potreben razcep mimemagic in odvisnost v vseh povezanih projektih bo treba zamenjati. Druga možnost, ki se preučuje, je migracija projektov, odvisnih od mimemagic, v knjižnico libmagic.
Vir: opennet.ru
