Autor populárnej Ruby knižnice mimemagic, ktorá má viac ako 100 miliónov stiahnutí, bol nútený zmeniť licenciu z MIT na GPLv2 kvôli zisteniu porušenia licencie GPLv2 v projekte. V RubyGems zostali len verzie 0.3.6 a 0.4.0 dodávané pod GPL, pričom všetky staršie vydania pod licenciou MIT boli odstránené. Navyše bola vývoj mimemagic zastavená a repozitár na GitHub bol prevedený do archívneho stavu.
Tieto kroky spôsobili problém so zostavovaním projektov, ktoré používajú mimemagic ako závislosť a sú dodávané pod licenciami, ktoré nie sú kompatibilné s GPLv2. Pri používaní novej verzie mimemagic sú vývojári iných projektov, vrátane proprietárnych (licencia MIT to umožňuje), nútení prelicencovať svoj kód pod GPL. Problém bol zosilnený tým, že staré verzie pod licenciou MIT prestali byť dostupné na RubyGems.org. Ak nie je pri zostavovaní serveri zahrnuté cachovanie balíkov, pokus o zostavenie projektov so staršími verziami mimemagic bude zlyhať.
Týmto bol postihnutý aj framework Ruby on Rails, ktorý načítava mimemagic medzi svojimi závislosťami. Ruby on Rails sa dodáva pod licenciou MIT a nemôže obsahovať komponenty pod GPL. Problém nadobudol globálny rozmer - ak priamo zmena zasiahla 172 balíkov, zohľadňujúc závislosti, bolo postihnutých viac ako 577 tisíc repozitárov.
Porušenie licencie GPL v projekte mimemagic súvisí s dodaním súboru freedesktop.org.xml v kóde, ktorý je kópiou databázy MIME typov z knižnice shared-mime-info. Uvedený súbor sa distribuuje pod licenciou GPLv2, zatiaľ čo sama knižnica shared-mime-info je pod licenciou ISC, kompatibilnou s GPL. Zdrojové kódy mimemagic sa dodávali pod licenciou MIT, a dodanie komponentov pod licenciou GPLv2 vyžaduje šírenie odvodeného produktu pod licenciou, ktorá je kompatibilná s GPLv2. Sprievodca shared-mime-info na to upozornil a autor mimemagic súhlasil s požiadavkou zmeniť licenciu.
Riešením by bolo spracovanie XML súboru za behu, bez dodania freedesktop.org.xml ako súčasti knižnice, avšak sprievodný mimemagic zmrazil repozitár projektu, preto túto prácu bude musieť rýchlo vykonať niekto iný. Možno, ak autor mimemagic nebude chcieť obnoviť svoj projekt (zatiaľ sa odmieta), bude potrebné vytvoriť fork mimemagic a nahradiť závislosť vo všetkých súvisiacich projektoch. Ako možnosť sa tiež zvažuje prechod projektov závislých na mimemagic na knižnicu libmagic.
Zdroj: opennet.ru
