คำตอบสั้น ๆ
การรวมกันของ Eclipse Public License และ LGPL ทำให้แน่ใจได้ว่าสิ่งที่คุณต้องการ: การแก้ไขรหัสของคุณจะต้องพร้อมใช้งาน แต่การใช้รหัสในผลิตภัณฑ์ที่มีขนาดใหญ่กว่านั้นไม่ได้บังคับให้ผลิตภัณฑ์ที่มีขนาดใหญ่ขึ้นเชื่อถือ การรวมกันจำเป็นต้องอนุญาตให้ใช้รหัสในโครงการ GPL และที่ไม่ใช่ GPL
นี่เป็นวิธีที่โครงการเช่น JGraphT ทำ พวกเขาเสนอโครงการภายใต้ EPL และ LGPL อีกครั้ง แรงจูงใจและขั้นตอนที่อธิบายไว้ในวิกิพีเดียของพวกเขา
คำตอบยาว
ฉันคิดว่า Mozilla Public License ( MPL ) หรือ Eclipse Public License ( EPL ) เป็นใบอนุญาตที่คุณกำลังมองหาเพราะ "ถ้างานอนุพันธ์จากไลบรารีถูกสร้างขึ้น (ตัวอย่างเช่นการปรับปรุงห้องสมุดใด ๆ ) มัน [IS ] ทำให้ทุกคนสามารถใช้งานได้ภายใต้ใบอนุญาตเดียวกัน "
MPL และใบอนุญาต EPL อยู่ระหว่าง GPL และ MIT
MIT อนุญาตให้ผู้ใช้ทำทุกอย่างกับมันรวมถึงการดัดแปลงการขายและการไม่ให้รหัสที่แก้ไขกลับคืนสู่ชุมชน
GPL บังคับให้ผู้ใช้มอบรหัสทั้งหมดให้กับชุมชนแม้ว่าห้องสมุดของคุณจะมีเพียง 1% ของผลิตภัณฑ์ทั้งหมด
LGPL บังคับให้ผู้ใช้ยกเลิกการแก้ไขส่วนของรหัส LGPL
MPL และ EPL คล้ายกับ LGPL: นอกจากนี้ยังบังคับให้ผู้ใช้ทำให้แหล่งที่แก้ไขมีอยู่ "แหล่งที่แก้ไขแล้ว" รวมเฉพาะส่วนของรหัสที่ครอบคลุม MPL- / EPL ซึ่งหมายความว่าผู้ใช้อาจสร้างผลิตภัณฑ์ใหม่จากห้องสมุดของคุณ หากเขาทำการดัดแปลง MPL- / EPL-part เขาต้องทำการเผยแพร่ สิ่งใหม่โดยเขาไม่จำเป็นต้องเผยแพร่
ฉันรู้สึกว่า MPL / EPL เหมาะสมกว่านี้เนื่องจาก LGPL พูดถึง "ห้องสมุด" อย่างชัดเจนและ MPL พูดถึง "ซอฟต์แวร์ที่ครอบคลุม" (ซึ่งเป็นขอบเขตที่กว้างขึ้น)
อย่างไรก็ตามการเลือก EPL ทำให้เกิดปัญหากับ combing ซอฟต์แวร์ที่มีซอฟแวร์จีพี: EPL กันไม่ได้กับจีพี กรณีนี้ไม่ได้ถ้าคุณเพียงแค่ใช้ MPL
หากคุณต้องการให้แน่ใจว่ารหัสของคุณอาจใช้ทั้งในโครงการ GPL และที่ไม่ใช่ GPL ให้ใช้ใบอนุญาตคู่ภายใต้รหัส LGPL และ EPL ตามที่อธิบายไว้ในคำตอบสั้น ๆ
ตัวอย่าง
- JGraphT
- logback
qooxdoo พวกเขากำลังวางแผน "เพื่อทำให้ง่ายขึ้นและทันสมัยเงื่อนไขการออกใบอนุญาต qooxdoo" และทำให้พวกเขาเปลี่ยนจากการอนุญาตให้ใช้สิทธิ์แบบคู่เป็น MIT