El autor de la popular biblioteca Ruby mimemagic, que cuenta con más de 100 millones de descargas, se vio obligado a cambiar la licencia de MIT a GPLv2 debido al descubrimiento de una infracción de la licencia GPLv2 en el proyecto. Solo las versiones 0.3.6 y 0.4.0, proporcionadas bajo GPL, permanecieron en RubyGems, mientras que todas las versiones anteriores bajo licencia MIT fueron eliminadas. Además, el desarrollo de mimemagic se detuvo y el repositorio en GitHub fue archivado.
Estas acciones han llevado a la interrupción de la capacidad de construir proyectos que utilizan mimemagic como dependencia y que se distribuyen bajo licencias incompatibles con la GPLv2. Al utilizar la nueva versión de mimemagic, los desarrolladores de otros proyectos, incluidos los propietarios (la licencia MIT permite dicho uso), están obligados a re-licenciar su código bajo GPL. El problema se agravó porque las versiones antiguas bajo licencia MIT dejaron de estar disponibles en RubyGems.org. Si en la construcción servidor no se incluyó la caché de paquetes, el intento de construir proyectos con versiones anteriores de mimemagic resultará en un fallo.
El marco Ruby on Rails también se ha visto afectado, cargando mimemagic entre sus dependencias. Ruby on Rails se distribuye bajo la licencia MIT y no puede incluir componentes bajo GPL. El problema ha alcanzado una magnitud global: si bien el cambio afectó directamente a 172 paquetes, teniendo en cuenta las dependencias, más de 577,000 repositorios se han visto afectados.
La violación de la licencia GPL en el proyecto mimemagic está relacionada con la inclusión en el código de un archivo freedesktop.org.xml, que es una copia de la base de datos de tipos MIME de la biblioteca shared-mime-info. El archivo mencionado se distribuye bajo la licencia GPLv2, mientras que la propia biblioteca shared-mime-info está bajo la licencia ISC, que es compatible con la GPL. Los códigos fuente de mimemagic se proporcionaban bajo la licencia MIT, y la entrega de componentes bajo la licencia GPLv2 requiere la distribución del producto derivado bajo una licencia compatible con la GPLv2. El mantenedor de shared-mime-info señaló esto y el autor de mimemagic estuvo de acuerdo con la solicitud de cambiar la licencia.
La solución sería analizar el archivo XML sobre la marcha, sin proporcionar freedesktop.org.xml con la biblioteca, pero el mantenedor de mimemagic congeló el repositorio del proyecto, por lo que este trabajo urgente deberá ser realizado por alguien más. Tal vez, si el autor de mimemagic no desea reactivar su proyecto (por ahora se niega), será necesario crear un fork de mimemagic y reemplazar la dependencia en todos los proyectos relacionados. También se está considerando la posibilidad de migrar los proyectos dependientes de mimemagic a la biblioteca libmagic.
Fuente: opennet.ru
