Autorul bibliotecii Ruby populare mimemagic, care a avut peste 100 de milioane de descărcări, a fost nevoit să schimbe licența de la MIT la GPLv2 din cauza descoperirii unei încălcări a licenței GPLv2 în proiect. În RubyGems au fost lăsate doar versiunile 0.3.6 și 0.4.0, livrate sub GPL, iar toate versiunile anterioare sub licența MIT au fost șterse. Mai mult, dezvoltarea mimemagic a fost oprită, iar repository-ul de pe GitHub a fost transformat în stare de arhivă.
Aceste acțiuni au dus la o imposibilitate de a construi proiecte care folosesc mimemagic ca dependență și care sunt livrate sub licențe incompatibile cu GPLv2. Când se folosește noua versiune a mimemagic, dezvoltatorii altor proiecte, inclusiv cele proprietare (licența MIT permite o astfel de utilizare), sunt obligați să re-licențieze codul lor sub GPL. Problema a fost agravată de faptul că versiunile anterioare sub licența MIT nu mai erau disponibile pe RubyGems.org. Dacă în procesul de construire server nu este activat caching-ul pachetelor, încercarea de a construi proiecte cu versiunile anterioare ale mimemagic va duce la eșec.
Printre cele afectate se numără și framework-ul Ruby on Rails, care încarcă mimemagic printre dependențe. Ruby on Rails este livrat sub licența MIT și nu poate include componente sub GPL. Problema a căpătat o amploare globală — dacă modificarea direct a afectat 172 de pachete, având în vedere dependențele, au fost afectate peste 577.000 de repository-uri.
Încălcarea licenței GPL în proiectul mimemagic este legată de livrarea în cod a fișierului freedesktop.org.xml, care este o copie a bazei de date MIME tipuri din biblioteca shared-mime-info. Fișierul respectiv este distribuit sub licența GPLv2, iar biblioteca shared-mime-info sub licența ISC, compatibilă cu GPL. Codurile sursă ale mimemagic erau livrate sub licența MIT, iar livrarea componentelor sub licența GPLv2 necesită distribuirea produsului derivat sub o licență compatibilă cu GPLv2. Însoțitorul shared-mime-info a atras atenția asupra acestui lucru, iar autorul mimemagic a fost de acord cu cerința de a schimba licența.
Soluția ar fi fost efectuarea unei analize a fișierului XML în timp real, fără a livra freedesktop.org.xml ca parte a bibliotecii, dar mimemagic, care însoțește, a suspendat repository-ul proiectului, astfel că această sarcină va trebui să fie realizată rapid de altcineva. Este posibil ca, dacă autorul mimemagic nu va dori să readucă proiectul în funcțiune (deocamdată refuză), să fie necesară crearea unui fork mimemagic și înlocuirea dependenței în toate proiectele asociate. De asemenea, se consideră o tranziție a proiectelor legate de mimemagic la biblioteca libmagic.
Sursa: opennet.ro
