L'autore della popolare libreria Ruby mimemagic, che ha superato i 100 milioni di download, è stato costretto a cambiare la licenza da MIT a GPLv2 a causa di una violazione della licenza GPLv2 scoperta nel progetto. Solo le versioni 0.3.6 e 0.4.0, distribuite sotto GPL, sono rimaste su RubyGems, mentre tutte le versioni precedenti sotto licenza MIT sono state rimosse. Inoltre, lo sviluppo di mimemagic è stato interrotto e il repository su GitHub è stato archiviato.
Queste azioni hanno interrotto la possibilità di costruire progetti che utilizzano mimemagic come dipendenza e distribuiti con licenze non compatibili con GPLv2. Con l'uso della nuova versione di mimemagic, gli sviluppatori di altri progetti, compresi quelli proprietari (la licenza MIT consente tale utilizzo), sono obbligati a ri-licenziare il proprio codice sotto GPL. La situazione è stata aggravata dal fatto che le vecchie versioni sotto licenza MIT non erano più disponibili su RubyGems.org. Se sul server non è abilitata la cache dei pacchetti, il tentativo di costruire progetti con le versioni precedenti di mimemagic porterà a un malfunzionamento.
Il framework Ruby on Rails è stato colpito, caricando mimemagic tra le dipendenze. Ruby on Rails è distribuito sotto licenza MIT e non può includere componenti sotto GPL. Il problema ha assunto una portata globale: se direttamente il cambiamento ha interessato 172 pacchetti, considerando le dipendenze, sono stati colpiti oltre 577.000 repository.
La violazione della licenza GPL nel progetto mimemagic è legata all'inclusione nel codice del file freedesktop.org.xml, che è una copia del database dei tipi MIME della libreria shared-mime-info. Il file indicato è distribuito sotto licenza GPLv2, mentre la libreria shared-mime-info è sotto licenza ISC, compatibile con la GPL. I sorgenti di mimemagic sono stati forniti sotto licenza MIT e la fornitura di componenti sotto licenza GPLv2 richiede la distribuzione del prodotto derivato sotto una licenza compatibile con la GPLv2. La libreria shared-mime-info ha fatto notare questo aspetto e l'autore di mimemagic ha accettato la richiesta di modificare la licenza.
La soluzione sarebbe l'implementazione dell'analisi del file XML al volo, senza fornire freedesktop.org.xml come parte della libreria, ma il project mimemagic ha bloccato il repository del progetto, quindi questo lavoro dovrà essere svolto rapidamente da qualcun altro. È possibile che, se l'autore di mimemagic non desidera riportare il suo progetto in funzione (per ora si rifiuta), sarà necessario creare un fork di mimemagic e sostituire la dipendenza in tutti i progetti correlati. Si sta anche considerando la transizione dei progetti legati a mimemagic alla libreria libmagic.
Fonte: opennet.ru
