De auteur van de populaire Ruby-bibliotheek mimemagic, met meer dan 100 miljoen downloads, was gedwongen de licentie te wijzigen van MIT naar GPLv2 vanwege de ontdekking van een schending van de GPLv2-licentie in het project. In RubyGems zijn alleen versies 0.3.6 en 0.4.0, geleverd onder GPL, achtergelaten, en alle oudere uitgaven onder de MIT-licentie zijn verwijderd. Bovendien is de ontwikkeling van mimemagic stopgezet en is de repository op GitHub in archiefstatus geplaatst.
Deze acties hebben geleid tot problemen bij het bouwen van projecten die mimemagic als afhankelijkheid gebruiken en onder licenties vallen die niet compatibel zijn met GPLv2. Bij gebruik van de nieuwe versie van mimemagic zijn ontwikkelaars van andere projecten, inclusief propriƫtaire (de MIT-licentie staat dergelijk gebruik toe), verplicht hun code opnieuw te licentiƫren onder GPL. De situatie werd verergerd omdat oude versies onder de MIT-licentie niet langer beschikbaar waren via RubyGems.org. Als er bij de bouw de server geen pakketcaching is ingeschakeld, zal de poging om projecten met eerdere versies van mimemagic te bouwen mislukken.
Ook het Ruby on Rails-framework, dat mimemagic laadt als een van de afhankelijkheden, is getroffen. Ruby on Rails wordt geleverd onder de MIT-licentie en kan geen componenten onder GPL bevatten. Het probleem heeft een wereldwijde omvang aangenomen - als de directe wijziging 172 pakketten heeft geraakt, dan zijn er met inachtneming van de afhankelijkheden meer dan 577.000 repositories getroffen.
De schending van de GPL-licentie in het mimemagic-project heeft te maken met het leveren van het bestand freedesktop.org.xml in de code, dat een kopie is van de database van MIME-types uit de shared-mime-info-bibliotheek. Dit bestand wordt verspreid onder de GPLv2-licentie, terwijl de shared-mime-info-bibliotheek onder de ISC-licentie valt, welke compatibel is met GPL. De broncode van mimemagic werd geleverd onder de MIT-licentie en het leveren van componenten onder de GPLv2-licentie vereist dat het afgeleide product wordt verspreid onder een licentie die compatibel is met GPLv2. De begeleidende shared-mime-info wees hierop en de auteur van mimemagic stemde in met het verzoek om de licentie te wijzigen.
De oplossing zou een on-the-fly parsing van het XML-bestand zijn, zonder de levering van freedesktop.org.xml in de bibliotheek, maar de bijbehorende mimemagic heeft de repository van het project bevroren, dus dit werk moet snel door iemand anders worden uitgevoerd. Misschien, als de auteur van mimemagic niet bereid is zijn project weer op de rails te krijgen (hij weigert voorlopig), is het nodig om een fork van mimemagic te maken en de afhankelijkheid in alle verwante projecten te vervangen. Als een optie wordt ook overwogen om de afhankelijk op mimemagic gebaseerde projecten over te zetten naar de bibliotheek libmagic.
Bron: opennet.ru
