Устараненне парушэння 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

Дадаць каментар