Der Autor der beliebten Ruby-Bibliothek mimemagic, die über 100 Millionen Downloads verzeichnet, sah sich gezwungen, die Lizenz von MIT auf GPLv2 zu ändern, nachdem in dem Projekt ein Verstoß gegen die GPLv2-Lizenz festgestellt wurde. In RubyGems wurden nur die Versionen 0.3.6 und 0.4.0, die unter GPL bereitgestellt werden, belassen, während alle alten Releases unter der MIT-Lizenz gelöscht wurden. Darüber hinaus wurde die Entwicklung von mimemagic eingestellt und das GitHub-Repository in den Archivstatus versetzt.
Diese Maßnahmen führten zu Problemen beim Erstellen von Projekten, die mimemagic als Abhängigkeit nutzen und unter Lizenzen stehen, die mit GPLv2 inkompatibel sind. Bei der Verwendung der neuen Version von mimemagic sind die Entwickler anderer Projekte, einschließlich proprietärer, (die MIT-Lizenz gestattet eine solche Nutzung) gezwungen, ihren Code unter GPL neu zu lizenzieren. Das Problem wird dadurch verschärft, dass die alten Versionen unter der MIT-Lizenz nicht mehr auf RubyGems.org verfügbar sind. Wenn im Build-Prozess Server kein Paket-Cache aktiviert ist, wird der Versuch, Projekte mit früheren Versionen von mimemagic zu erstellen, fehlschlagen.
Auch das Ruby on Rails-Framework, das mimemagic als Abhängigkeit lädt, ist betroffen. Ruby on Rails wird unter der MIT-Lizenz vertrieben und kann keine GPL-kompatiblen Komponenten enthalten. Das Problem hat globale Ausmaße angenommen – während die direkte Änderung 172 Pakete betraf, wurden durch die Abhängigkeiten über 577.000 Repositories beeinträchtigt.
Der Verstoß gegen die GPL-Lizenz im Projekt mimemagic steht im Zusammenhang mit der Lieferung einer Datei freedesktop.org.xml im Code, die eine Kopie der MIME-Typ-Datenbank aus der shared-mime-info-Bibliothek ist. Die genannte Datei wird unter der GPLv2-Lizenz verbreitet, während die Bibliothek shared-mime-info unter der ISC-Lizenz steht, die mit der GPL kompatibel ist. Die Quelltexte von mimemagic wurden unter der MIT-Lizenz bereitgestellt, und die Lieferung von Komponenten unter der GPLv2-Lizenz erfordert die Verbreitung des Derivats unter einer Lizenz, die mit der GPLv2 kompatibel ist. Der Begleittext von shared-mime-info wies darauf hin und der Autor von mimemagic stimmte der Aufforderung zu, die Lizenz zu ändern.
Die Lösung wäre die Durchführung der XML-Dateianalyse zur Laufzeit, ohne die Bereitstellung von freedesktop.org.xml in der Bibliothek, aber der Begleitmimemagic hat das Projekt-Repository eingefroren, daher muss diese Arbeit schnell von jemand anderem erledigt werden. Möglicherweise, wenn der Autor von mimemagic nicht möchte, dass sein Projekt wieder aktiv wird (derzeit weigert er sich), wird es notwendig sein, einen Fork von mimemagic zu erstellen und die Abhängigkeit in allen verwandten Projekten zu ersetzen. Eine weitere Option besteht darin, die Projekte, die auf mimemagic basieren, auf die Bibliothek libmagic umzustellen.
Quelle: opennet.ru
