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

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

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

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

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

Выходом стало бы выполнение разбора XML-файла на лету, без поставки freedesktop.org.xml в составе библиотеки, но сопровождающий mimemagic заморозил репозиторий проекта, поэтому данную работу оперативно должен будет выполнить кто-то другой. Возможно, если автор mimemagic не пожелает вернуть своей проект в строй (пока он отказывается), потребуется создание форка mimemagic и замена зависимости во всех связанных проектах. В качестве варианта также рассматривается переход завязанных на mimemagic проектов на библиотеку libmagic.

Источник: opennet.ru

Добавить комментарий