การแก้ไขการละเมิด GPL ในไลบรารี mimemagic ทำให้เกิดข้อขัดข้องใน Ruby on Rails

ผู้เขียน mimemagic ไลบรารี Ruby ยอดนิยมซึ่งมียอดดาวน์โหลดมากกว่า 100 ล้านครั้งถูกบังคับให้เปลี่ยนใบอนุญาตจาก MIT เป็น GPLv2 เนื่องจากการค้นพบการละเมิดใบอนุญาต GPLv2 ในโครงการ RubyGems เก็บรักษาเฉพาะเวอร์ชัน 0.3.6 และ 0.4.0 ซึ่งจัดส่งภายใต้ GPL และลบเวอร์ชันเก่าที่ได้รับลิขสิทธิ์จาก MIT ทั้งหมด ยิ่งไปกว่านั้น การพัฒนา mimemagic ก็หยุดลง และพื้นที่เก็บข้อมูลบน GitHub ก็ถูกโอนไปยังสถานะที่เก็บถาวร

การกระทำเหล่านี้ส่งผลให้สามารถสร้างโปรเจ็กต์ที่ใช้ mimemagic เป็นการพึ่งพาและเผยแพร่ภายใต้ใบอนุญาตที่ไม่เข้ากันกับ GPLv2 เมื่อใช้ mimemagic เวอร์ชันใหม่ นักพัฒนาโปรเจ็กต์อื่น ๆ รวมถึงโปรเจ็กต์ที่เป็นกรรมสิทธิ์ (ใบอนุญาต MIT อนุญาตให้ใช้งานดังกล่าว) จะต้องอนุญาตโค้ดของตนใหม่ภายใต้ GPL ปัญหารุนแรงขึ้นเนื่องจากความจริงที่ว่าเวอร์ชันเก่าภายใต้ใบอนุญาต MIT ไม่สามารถหาได้จาก RubyGems.org อีกต่อไป หากไม่ได้เปิดใช้งานการแคชแพ็คเกจบนเซิร์ฟเวอร์บิลด์ การพยายามสร้างโปรเจ็กต์ด้วย mimemagic เวอร์ชันก่อนหน้าจะล้มเหลว

กรอบ Ruby on Rails ซึ่งโหลด mimemagic ท่ามกลางการพึ่งพาก็ได้รับผลกระทบเช่นกัน Ruby on Rails ได้รับอนุญาตภายใต้ใบอนุญาต MIT และไม่สามารถรวมส่วนประกอบ GPLed ได้ ปัญหากลายเป็นเรื่องระดับโลก - หากการเปลี่ยนแปลงส่งผลกระทบโดยตรงต่อแพ็คเกจ 172 รายการ เมื่อคำนึงถึงการพึ่งพาของบัญชี พื้นที่เก็บข้อมูลมากกว่า 577 แห่งได้รับผลกระทบ

การละเมิดใบอนุญาต GPL ในโครงการ mimemagic เกี่ยวข้องกับการส่งไฟล์ freedesktop.org.xml ในโค้ด ซึ่งเป็นสำเนาของฐานข้อมูลประเภท MIME จากไลบรารี shared-mime-info ไฟล์ที่ระบุได้รับการเผยแพร่ภายใต้ใบอนุญาต GPLv2 และไลบรารี shared-mime-info นั้นได้รับใบอนุญาตภายใต้ใบอนุญาต ISC ซึ่งเข้ากันได้กับ GPL ซอร์สโค้ดของ mimemagic ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT และการจำหน่ายส่วนประกอบภายใต้ใบอนุญาต GPLv2 จำเป็นต้องมีการจำหน่ายผลิตภัณฑ์อนุพันธ์ภายใต้ใบอนุญาตที่สอดคล้องกับ GPLv2 ผู้ดูแล shared-mime-info สังเกตเห็นสิ่งนี้ และผู้เขียน mimemagic ก็เห็นด้วยกับข้อกำหนดในการเปลี่ยนแปลงใบอนุญาต

วิธีแก้ไขคือการแยกวิเคราะห์ไฟล์ XML ทันทีโดยไม่ต้องให้ freedesktop.org.xml เป็นส่วนหนึ่งของไลบรารี แต่ผู้ดูแล mimemagic หยุดพื้นที่เก็บข้อมูลโปรเจ็กต์ ดังนั้นคนอื่นจะต้องทำงานนี้อย่างรวดเร็ว เป็นไปได้ว่าหากผู้เขียน mimemagic ไม่ต้องการคืนโปรเจ็กต์ของเขาให้กลับมาดำเนินการ (จนถึงตอนนี้เขาปฏิเสธไปแล้ว) ก็จำเป็นต้องสร้างทางแยกของ mimemagic และแทนที่การพึ่งพาในโครงการที่เกี่ยวข้องทั้งหมด การเปลี่ยนโปรเจ็กต์ที่ใช้ mimemagic ไปเป็นไลบรารี libmagic ก็ถือเป็นทางเลือกเช่นกัน

ที่มา: opennet.ru

เพิ่มความคิดเห็น