Backend, News

Ruby not on Rails – błąd licencji sparaliżował ponad pół miliona projektów

Ruby on Rails mimemagic biblioteka licencja GPL

Niekompatybilność licencji w open source’owej bibliotece mimemagic, implementowanej jako zależność w Ruby on Rails, może powodować problemy w ponad 577 tysiącach repozytoriów.

Oto idealny przykład, dlaczego warto uważać na licencje oprogramowania. Zarówno pod kątem ich obecnego użytkowania, jak i ewentualnych zmian. Przez chwilę poprawne działanie framework’a Ruby on Rails stało pod znakiem zapytania. Teraz jednak zespół Rails będzie musiał rozwiązać problem licencji. Problemem stała się biblioteka mimemagic, która jest wpisana jako zależność w RoR.

Przejście na GPLv2

Cała historia zaczęła się w środę. Bastien Nocera, właściciel biblioteki shared-mime-info, skontaktował się z Danielem Mendlerem, właścicielem biblioteki mimemagic, która korzysta z kodu Nocery. Wskazał on, że mimemagic korzysta z niewłaściwej licencji. Shared-mime-info korzysta bowiem z licencji GPLv2, zaś mimemagic z MIT.

Użycie pliku GPL jako źródła sprawia, że cały kod jest dziełem pochodnym, a zatem czyni go GPL-em. Myślę, że to ważne, aby naprawić ten problem, zanim ktoś użyje go w swoim kodzie pod licencją MIT lub w zamkniętym oprogramowaniutłumaczył Nocera.

Mendler podziękował za wytyczne i zmienił licencję w wersji 0.4.0 i 0.3.6 na GPLv2. Wycofał również wcześniejsze wersje mimemagic z RubyGems.org, serwisu będącego bazą pakietów używanych przez programistów Ruby. Zarchiwizował także repozytorium mimemagic na GitHub.

jellybob mimemagic github

Problem z Ruby on Rails

No i Ruby spadł z rowerka. Framework zawierał bowiem w swoich zależnościach mimemagic w wersji 0.3.5. Oprócz samego Ruby zmiana dotknęła 172 inne pakiety. Łącznie mówi się o 577 148 repozytoriach. Problemy z importowaniem biblioteki mogły doprowadzić do nieprawidłowego działania projektów. Szybko jednak udało się rozwiązać problem, implementując wersję 0.3.6.

Programiści muszą teraz uwzględnić wersję z licencją GPLv2. Może to okazać się sporym problemem w przypadku projektów, w których użycie GPL jest prawnie niemożliwe. Przykładowo twórcy webowej aplikacji dla Departamentu Biznesu, Energii i Strategii Przemysłowej w Wielkiej Brytanii będą musieli wymyślić obejście tego problemu.

Mimemagic jest bazą, służącą do mapowania danych typu MIME. Ponieważ implementacja translacji danych MIME może okazać się naprawdę sporym przedsięwzięciem, twórcy Ruby szukają alternatywnych rozwiązań, które mogłyby zastąpić tę bibliotekę. Aktualnie na oku mają libmagic, dostępną na licencji BSD.

minad rails problem mimemagic

MIT vs GPL

Mendler aktualnie pozostaje w kontakcie z zespołem Ruby on Rails. Jak napisał: „Najlepiej, jeśli znajdziemy rozwiązanie, które będzie działać w przypadku Rails i będzie usankcjonowane przez zespół. W sprawie wypowiedział się także Paul Berg, konsultant ds. licencji open source, którego o opinię zapytał The Register. Stwierdził, że mimo trudnej sytuacji, programiści dobrze sobie z nią radzą.

Właściciele biblioteki mimemagic od razu przeszli na GPL, kiedy zobaczyli, że wykorzystywany przez nich kod bazuje na tej licencji. Godne podziwu jest to, że zareagowali, gdy problem został zauważony, zamiast udawać, że nic się nie stało – skomentował Paul.

GPL stanowi poważny problem dla zespołu Rails. Ruby bazuje na licencji MIT, zatem jedyną prostą opcją byłoby przejście na GPL. To z kolei stanowić będzie wyzwanie dla tysięcy zespołów, które również będą musiały przekształcić swoje aplikacje. Wyjściem z sytuacji może być zastąpienie w mimemagic kodu na licencji GPL kodem z licencją MIT (lub dopisaniem własnego kodu). Inną opcją jest wyżej wspomniane już zastąpienie mimemagic inną biblioteką.

Rozwiązanie tego problemu będzie wymagało ogromnych nakładów pracy w krótkim czasie, zważywszy na pozycję Ruby on Rails w branży – podsumował Paul Berg.

Przykład ten idealnie ilustruje, dlaczego licencje stanowią bardzo istotny element dla każdego programisty. Warto zatem dbać o to, co implementujemy do swojego kodu i jaki wpływ na inne projekty mogą mieć nawet niewielkie zmiany.


Zdjęcie główne artykułu pochodzi z Adobe Stock. Źródło: TheRegister

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://justjoin.it/blog/ruby-on-rails-licencja-mimemagic-gpl-mit-problem" order_type="social" width="100%" count_of_comments="8" ]