Авторът на популярната 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
