Problemy z naruszeniem licencji GPL w bibliotece mimemagic spowodowały awarię w Ruby on Rails

Twórca popularnej biblioteki Ruby mimemagic, która ma ponad 100 milionów pobrań, został zmuszony do zmiany licencji z MIT na GPLv2 z powodu wykrycia naruszenia w projekcie licencji GPLv2. W RubyGems pozostały jedynie wersje 0.3.6 i 0.4.0, dostępne na licencji GPL, a wszystkie starsze wydania na licencji MIT zostały usunięte. Co więcej, rozwój mimemagic został wstrzymany, a repozytorium na GitHubie przeniesiono do stanu archiwalnego.

Te działania spowodowały problemy z kompilacją projektów, które używają mimemagic jako zależności i są dostarczane na licencjach, które nie są zgodne z GPLv2. Przy korzystaniu z nowej wersji mimemagic, twórcy innych projektów, w tym komercyjnych (licencja MIT na to pozwala), muszą przelicencjonować swój kod na GPL. Sytuację dodatkowo pogarsza fakt, że starsze wersje na licencji MIT przestały być dostępne na RubyGems.org. Jeśli na serwerze kompilacyjnym serwerze не включено кэширование пакетов, попытка сборки проектов с прошлыми версиями mimemagic приведёт к сбою.

Framework Ruby on Rails, który wśród swoich zależności ładował mimemagic, również znalazł się pod ostrzałem. Ruby on Rails jest dystrybuowany na licencji MIT i nie może zawierać komponentów na licencji GPL. Problem przyjął globalny charakter — bezpośrednio zmiana dotknęła 172 pakiety, ale biorąc pod uwagę zależności, ucierpiało ponad 577 tysięcy repozytoriów.

Narządzenie naruszenia licencji GPL w projekcie mimemagic wiąże się z dostarczeniem w kodzie pliku freedesktop.org.xml, stanowiącego kopię bazy danych typów MIME z biblioteki shared-mime-info. Wspomniany plik jest dystrybuowany na licencji GPLv2, podczas gdy sama biblioteka shared-mime-info na licencji ISC, kompatybilnej z GPL. Oryginalne kody mimemagic były dostarczane na licencji MIT, a dostarczenie komponentów na licencji GPLv2 wymaga dystrybucji produktu pochodnego na licencji kompatybilnej z GPLv2. Społeczność otaczająca shared-mime-info zwróciła na to uwagę, a autor mimemagic zgodził się na wymóg zmiany licencji.

Rozwiązaniem byłoby dynamiczne analizowanie pliku XML bez dołączania freedesktop.org.xml do biblioteki, jednak współczesny mimemagic zamroził repozytorium projektu, więc to zadanie musi być pilnie wykonane przez kogoś innego. Możliwe, że jeśli autor mimemagic nie zechce przywrócić swojego projektu do działania (na razie odmawia), będzie konieczne stworzenie forka mimemagic i zmiana zależności we wszystkich powiązanych projektach. Jako alternatywę rozważa się również przejście projektów związanych z mimemagic na bibliotekę libmagic.

Źródło: opennet.ru

Kup niezawodny hosting dla stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting dla stron z ochroną przed DDoS, serwery VPS VDS | ProHoster