Усунення порушення 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 та заміна залежності у всіх пов'язаних проектах. Як варіант також розглядається перехід зав'язаних до мімемагічних проектів на бібліотеку libmagic.

Джерело: opennet.ru

Додати коментар або відгук