Corrigir uma violação da GPL na biblioteca mimemagic causa um travamento no Ruby on Rails

O autor da popular biblioteca Ruby mimemagic, que tem mais de 100 milhões de downloads, foi forçado a mudar sua licença do MIT para GPLv2 devido à descoberta de uma violação da licença GPLv2 no projeto. RubyGems manteve apenas as versões 0.3.6 e 0.4.0, que foram enviadas sob a GPL, e removeu todas as versões mais antigas licenciadas pelo MIT. Além disso, o desenvolvimento do mimemagic foi interrompido e o repositório no GitHub foi transferido para um estado arquivado.

Essas ações resultaram na capacidade de construir projetos que usam mimemagic como dependência e são distribuídos sob licenças incompatíveis com GPLv2. Ao usar a nova versão do mimemagic, os desenvolvedores de outros projetos, inclusive 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 versões mais antigas sob a licença MIT não estavam mais disponíveis em RubyGems.org. Se o cache de pacotes não estiver habilitado no servidor de construção, a tentativa de construir projetos com versões anteriores do mimemagic falhará.

O framework Ruby on Rails, que carrega mimemagic entre suas dependências, também foi atingido. Ruby on Rails é licenciado sob a licença MIT e não pode incluir componentes GPL. O problema tornou-se global - se a mudança afetou diretamente 172 pacotes, então, levando em conta as dependências, mais de 577 mil repositórios foram afetados.

A violação da licença GPL no projeto mimemagic está associada à entrega do arquivo freedesktop.org.xml no código, que é uma cópia do banco de dados do tipo MIME da biblioteca shared-mime-info. O arquivo especificado é distribuído sob a licença GPLv2, e a própria biblioteca shared-mime-info é licenciada sob a licença ISC, compatível com a GPL. o código-fonte da mimemagic é distribuído sob a licença MIT e a distribuição de componentes sob a licença GPLv2 requer a distribuição do produto derivado sob uma licença compatível com GPLv2. O mantenedor do shared-mime-info chamou a atenção para isso e o autor do mimemagic concordou com a exigência de alteração da licença.

A solução seria analisar o arquivo XML dinamicamente, sem fornecer freedesktop.org.xml como parte da biblioteca, mas o mantenedor mimemagico congelou o repositório do projeto, então outra pessoa teria que fazer esse trabalho rapidamente. É possível que caso o autor do mimemagic não queira retornar seu projeto à operação (ele recusou até o momento), seja necessário criar um fork do mimemagic e substituir a dependência em todos os projetos relacionados. A transição de projetos baseados em mimemagia para a biblioteca libmagic também está sendo considerada uma opção.

Fonte: opennet.ru

Adicionar um comentário