O autor da popular biblioteca Ruby mimemagic, que conta com mais de 100 milhões de downloads, foi forçado a mudar a licença de MIT para GPLv2 devido à violação da licença GPLv2 detectada no projeto. Na RubyGems, apenas as versões 0.3.6 e 0.4.0, distribuídas sob a GPL, foram mantidas, enquanto todas as versões anteriores sob a licença MIT foram removidas. Além disso, o desenvolvimento do mimemagic foi interrompido e o repositório no GitHub foi colocado em estado de arquivamento.
Essas ações levaram à interrupção da capacidade de compilar projetos que utilizam o mimemagic como dependência e que são distribuídos sob licenças incompatíveis com a GPLv2. Com o uso da nova versão do mimemagic, os desenvolvedores de outros projetos, incluindo os proprietários (a licença MIT permite tal uso), são obrigados a relicenciar seu código sob a GPL. O problema foi agravado pelo fato de que as versões antigas sob a licença MIT deixaram de estar disponíveis no RubyGems.org. Se o cache de pacotes não estiver habilitado na compilação, servidor tentar compilar projetos com versões anteriores do mimemagic resultará em falha.
O framework Ruby on Rails também foi afetado, pois carrega o mimemagic entre suas dependências. Ruby on Rails é distribuído sob a licença MIT e não pode incluir componentes sob GPL. O problema tomou proporções globais — se a alteração afetou diretamente 172 pacotes, considerando as dependências, mais de 577 mil repositórios foram prejudicados.
A violação da licença GPL no projeto mimemagic está relacionada à inclusão no código do arquivo freedesktop.org.xml, que é uma cópia do banco de dados de tipos MIME da biblioteca shared-mime-info. O referido arquivo é distribuído sob a licença GPLv2, enquanto a própria biblioteca shared-mime-info é sob a licença ISC, que é compatível com a GPL. Os códigos fonte do mimemagic foram distribuídos sob a licença MIT e a entrega de componentes sob a licença GPLv2 exige que o produto derivado seja distribuído sob uma licença compatível com a GPLv2. O responsável pela shared-mime-info chamou a atenção para isso e o autor do mimemagic concordou em atender à exigência de mudar a licença.
A solução seria realizar a análise do arquivo XML em tempo real, sem a entrega do freedesktop.org.xml como parte da biblioteca, mas o autor do mimemagic congelou o repositório do projeto, portanto, esse trabalho deve ser urgentemente realizado por outra pessoa. Possivelmente, se o autor do mimemagic não desejar retornar seu projeto à ativa (ele se recusa por enquanto), será necessário criar um fork do mimemagic e substituir a dependência em todos os projetos relacionados. Como uma alternativa, também está sendo considerado a mudança dos projetos dependentes do mimemagic para a biblioteca libmagic.
Fonte: opennet.ru
