21.04.2021

Устранение нарушения GPL в библиотеке mimemagic привело к сбою при сборке Ruby on Rails

Автор популярной Ruby-библиотеки mimemagic, насчитывающей более 100 млн загрузок, из-за нарушения в коде лицензии GPLv2 был вынужден сменить лицензию с MIT на GPLv2. Все старые выпуски mimemagic были удалены, разработка остановлена, а репозиторий на GitHub переведён в архивное состояние.

Данные действия привели к нарушению возможности сборки проектов, использующих mimemagic в качестве зависимости и поставляемых под лицензиями, несовместимыми с GPLv2. При использовании новой версии mimemagic разработчики других проектов, включая пропритартные (лицензия MIT допускает такое использование), обязаны перелицензировать свой код под GPL. Проблему усугубило то, что старые версии под лицензией MIT перестали отдаваться с RubyGems.org. Если на сборочном сервере не включено кэширование пакетов, попытка сборки проектов с прошлыми версиями mimemagic приведёт к сбою.

Под удар попал в том числе фреймворк Ruby on Rails, который поставляется под лицензией MIT и не может включать компоненты под GPL. Проблема приняла глобальный характер — если напрямую изменение затронуло 172 пакета, то с учётом зависимостей пострадало более 577 тысяч репозиториев.

Нарушение лицензии GPL в проекте mimemagic связана с использованием в коде библиотеки shared-mime-info, поставляемой под лицензией GPLv2. Исходные тексты mimemagic поставлялась под лицензией MIT и использование в коде библиотеки под лицензией GPlv2 требовало распространения производного продукта тоже под лицензией GPLv2. Выходом было бы создание под лицензией MIT аналога библиотеки shared-mime-info, которая насчитывает лишь несколько сотен строк кода, но сопровождающий mimemagic решит прекратить разработку своего проекта, поэтому данную работу оперативно должен будет выполнить кто-то другой. Возможно, если автор mimemagic не пожелает вернуть своей проект в строй, потребуется создание форка mimemagic и замена зависимости во всех связанных проектах.

Источник.