L'auteur de la bibliothèque Ruby populaire mimemagic, qui compte plus de 100 millions de téléchargements, a été contraint de changer la licence de MIT à GPLv2 en raison d'une violation de la licence GPLv2 constatée dans le projet. Dans RubyGems, seules les versions 0.3.6 et 0.4.0, sous GPL, ont été conservées, tandis que toutes les anciennes versions sous licence MIT ont été supprimées. De plus, le développement de mimemagic a été arrêté et le dépôt sur GitHub a été archivé.
Ces actions ont entraîné des problèmes de compilation pour les projets utilisant mimemagic comme dépendance et fournis sous des licences incompatibles avec GPLv2. Lors de l'utilisation de la nouvelle version de mimemagic, les développeurs d'autres projets, y compris ceux sous licence propriétaire (la licence MIT permettant une telle utilisation), sont contraints de re-licencier leur code sous GPL. Le problème a été aggravé par le fait que les anciennes versions sous licence MIT ne sont plus disponibles sur RubyGems.org. Si la compilation le serveur n'inclut pas la mise en cache des paquets, la tentative de compilation des projets avec d'anciennes versions de mimemagic entraînera un échec.
La framework Ruby on Rails est également touché, chargeant mimemagic parmi ses dépendances. Ruby on Rails est distribué sous licence MIT et ne peut donc pas inclure de composants sous GPL. Le problème est devenu mondial : si le changement a directement affecté 172 paquets, plus de 577 000 dépôts ont été impactés en tenant compte des dépendances.
La violation de la licence GPL dans le projet mimemagic est liée à l'inclusion dans le code d'un fichier freedesktop.org.xml, qui est une copie de la base de données des types MIME de la bibliothèque shared-mime-info. Ce fichier est distribué sous licence GPLv2, tandis que la bibliothèque shared-mime-info est sous licence ISC, compatible avec GPL. Les sources de mimemagic étaient fournies sous licence MIT et la fourniture de composants sous licence GPLv2 exige la distribution du produit dérivé sous une licence compatible avec GPLv2. L'accompagnateur de shared-mime-info a attiré l'attention là-dessus et l'auteur de mimemagic a accepté la demande de modification de la licence.
La solution serait d'exécuter l'analyse d'un fichier XML à la volée, sans fournir freedesktop.org.xml dans la bibliothèque, mais l'auteur de mimemagic a gelé le dépôt du projet, donc ce travail doit maintenant être rapidement réalisé par quelqu'un d'autre. Peut-être que si l'auteur de mimemagic ne souhaite pas remettre son projet en service (pour l’instant, il refuse), un fork de mimemagic devra être créé et la dépendance remplacée dans tous les projets liés. Une autre option envisagée est de migrer les projets reposant sur mimemagic vers la bibliothèque libmagic.
Source : opennet.ru
