Naprawienie naruszenia GPL w bibliotece mimemagic powoduje awarię Ruby on Rails

Autor popularnej biblioteki mimemagic Ruby, która ma ponad 100 milionów pobrań, został zmuszony do zmiany licencji z MIT na GPLv2 w związku z wykryciem w projekcie naruszenia licencji GPLv2. RubyGems zachował tylko wersje 0.3.6 i 0.4.0, które zostały dostarczone na licencji GPL, i usunął wszystkie starsze wydania na licencji MIT. Ponadto zatrzymano rozwój mimemagic, a repozytorium na GitHubie przeniesiono do stanu zarchiwizowanego.

Działania te zaowocowały możliwością budowania projektów wykorzystujących mimemagic jako zależność i dystrybuowanych na licencjach niezgodnych z GPLv2. Korzystając z nowej wersji mimemagic, twórcy innych projektów, w tym także autorskich (licencja MIT pozwala na takie wykorzystanie), zobowiązani są do ponownej licencji swojego kodu na licencji GPL. Problem pogłębiał fakt, że starsze wersje na licencji MIT nie były już dostępne na RubyGems.org. Jeśli buforowanie pakietów nie jest włączone na serwerze kompilacji, próba zbudowania projektów przy użyciu poprzednich wersji mimemagic zakończy się niepowodzeniem.

Zaatakowany został także framework Ruby on Rails, który ładuje mimegię wśród swoich zależności. Ruby on Rails jest objęty licencją MIT i nie może zawierać komponentów objętych GPL. Problem nabrał charakteru globalnego - jeśli zmiana dotyczyła bezpośrednio 172 pakietów, to biorąc pod uwagę zależności, dotyczyło to ponad 577 tysięcy repozytoriów.

Naruszenie licencji GPL w projekcie mimemagic wiąże się z dostarczeniem w kodzie pliku freedesktop.org.xml, który jest kopią bazy danych typu MIME z biblioteki udostępnionej-mime-info. Określony plik jest rozpowszechniany na licencji GPLv2, a sama biblioteka współdzielonych informacji o mime jest objęta licencją na licencji ISC, zgodnej z GPL. Kod źródłowy mimemagic jest rozpowszechniany na licencji MIT, a dystrybucja komponentów na licencji GPLv2 wymaga dystrybucji produktu pochodnego na licencji zgodnej z GPLv2. Opiekun udostępnionego-mime-info zauważył to i autor mimmagic zgodził się na wymóg zmiany licencji.

Rozwiązaniem byłoby przeanalizowanie pliku XML w locie, bez dostarczania freedesktop.org.xml jako części biblioteki, ale opiekun mimemagic zamroził repozytorium projektu, więc ktoś inny będzie musiał szybko wykonać tę pracę. Możliwe, że jeśli autor mimemagic nie będzie chciał przywrócić swojego projektu do działania (do tej pory odmawiał), konieczne będzie utworzenie forka mimemagic i zastąpienie zależności we wszystkich powiązanych projektach. Jako opcję rozważane jest również przeniesienie projektów opartych na mimemagic do biblioteki libmagic.

Źródło: opennet.ru

Dodaj komentarz