يؤدي إصلاح انتهاك GPL في مكتبة mimemagic إلى حدوث عطل في Ruby on Rails

اضطر مؤلف مكتبة Ruby الشهيرة mimemagic، والتي لديها أكثر من 100 مليون عملية تنزيل، إلى تغيير ترخيصها من MIT إلى GPLv2 بسبب اكتشاف انتهاك لترخيص GPLv2 في المشروع. احتفظت RubyGems فقط بالإصدارين 0.3.6 و0.4.0، اللذين تم شحنهما بموجب ترخيص GPL، وأزالت جميع الإصدارات القديمة المرخصة من معهد ماساتشوستس للتكنولوجيا. علاوة على ذلك، تم إيقاف تطوير mimemagic، وتم نقل المستودع الموجود على GitHub إلى حالة مؤرشفة.

أدت هذه الإجراءات إلى القدرة على إنشاء مشاريع تستخدم mimemagic باعتبارها تبعية ويتم توزيعها بموجب تراخيص غير متوافقة مع GPLv2. عند استخدام الإصدار الجديد من mimemagic، يُطلب من مطوري المشاريع الأخرى، بما في ذلك المشاريع المملوكة (ترخيص MIT يسمح بهذا الاستخدام)، إعادة ترخيص التعليمات البرمجية الخاصة بهم بموجب GPL. وتفاقمت المشكلة بسبب حقيقة أن الإصدارات القديمة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا لم تعد متاحة على موقع RubyGems.org. إذا لم يتم تمكين التخزين المؤقت للحزمة على خادم البناء، فستفشل محاولة إنشاء مشاريع باستخدام الإصدارات السابقة من mimemagic.

تم أيضًا إصابة إطار عمل Ruby on Rails، الذي يقوم بتحميل الصور المقلدة بين تبعياته. تم ترخيص Ruby on Rails بموجب ترخيص MIT ولا يمكن أن يتضمن مكونات GPLed. أصبحت المشكلة عالمية - إذا أثر التغيير بشكل مباشر على 172 حزمة، مع الأخذ في الاعتبار التبعيات، فقد تأثر أكثر من 577 ألف مستودع.

يرتبط انتهاك ترخيص GPL في مشروع mimemagic بتسليم ملف freedesktop.org.xml في الكود، وهو نسخة من قاعدة بيانات نوع MIME من مكتبة معلومات mime المشتركة. يتم توزيع الملف المحدد بموجب ترخيص GPLv2، ومكتبة معلومات mime المشتركة نفسها مرخصة بموجب ترخيص ISC، المتوافق مع GPL. يتم توزيع الكود المصدري لـ mimemagic بموجب ترخيص MIT وتوزيع المكونات بموجب ترخيص GPLv2 يتطلب توزيع المنتج المشتق بموجب ترخيص متوافق مع GPLv2. لاحظ المشرف على Shared-mime-info هذا الأمر ووافق مؤلف mimemagic على شرط تغيير الترخيص.

سيكون الحل هو تحليل ملف XML سريعًا، دون توفير freedesktop.org.xml كجزء من المكتبة، لكن المشرف على mimemagic جمد مستودع المشروع، لذلك سيتعين على شخص آخر القيام بهذا العمل بسرعة. من الممكن أنه إذا كان مؤلف mimemagic لا يريد إعادة مشروعه إلى التشغيل (لقد رفض حتى الآن)، فسيكون من الضروري إنشاء شوكة من mimemagic واستبدال التبعية في جميع المشاريع ذات الصلة. يُنظر أيضًا إلى انتقال المشاريع المستندة إلى mimemagic إلى مكتبة libmagic كخيار.

المصدر: opennet.ru

إضافة تعليق