ก่อนอื่นฉันไม่ใช่ทนายความ แต่ฉันได้ศึกษาใบอนุญาตจำนวนมากและเข้าใจปัญหาที่เกี่ยวข้องกับพวกเขา
ประการที่สองฉันรู้ว่านี่เป็นคำถามเก่า แต่ฉันคิดว่ามันยังคงเป็นจุดสับสนและกังวล ถ้ามันไม่ใช่ประเด็นที่น่ากังวลก็ควรจะเป็น การเลือกใบอนุญาตเป็นเรื่องใหญ่ที่คุณไม่สามารถเปลี่ยนไปตามถนนได้โดยเฉพาะอย่างยิ่งหากมีผู้เกี่ยวข้องหลายคน
(L) GPL เขียนด้วย C / C ++ ในใจโชคไม่ดี มันพูดถึง "ซอร์สโค้ด", "รหัสวัตถุ", "การเชื่อมโยงแบบไดนามิก", "การเชื่อมโยงแบบคงที่", "คอมไพเลอร์" และ "ล่ามรหัสวัตถุ" ดังนั้นการแปลภาษานี้สำหรับภาษาอื่น ๆ ที่ไม่เป็นไปตามเทคนิคการคอมไพล์เดียวกัน (เช่น bytecode ของ Java, การรวบรวมทันเวลาของ Python หรือการตีความตามธรรมชาติของ Javascript) ต้องมีการคาดเดาและสมมติฐาน เมื่อคุณกำลังพูดถึงกฎหมาย - เช่นการพิจารณาคดีในที่สุดศาลที่ทั้งสองฝ่ายโต้เถียงกัน - การไม่มีความแตกต่างที่ชัดเจนเป็นสิ่งที่ไม่ดี
มาตรฐานรหัสลิขสิทธิ์ GPL นั้นค่อนข้างตรงไปตรงมาโดยเจตนา ทุกคนที่ใช้รหัสนั้นจะต้องปล่อยรหัสของพวกเขาให้กับผู้ใช้ทุกคนเมื่อพวกเขาแจกจ่ายหรือขายมัน นั่นคือไวรัส GPL ที่ Richard Stallman ต้องการสร้างและทำอย่างชัดเจนและเรียบร้อย
LGPL เดิมเป็นความพยายามที่จะอนุญาตให้ "ห้องสมุด" ที่ไม่เป็นไวรัส แต่พวกเขายังต้องการให้ผู้ใช้ปลายทางสามารถแทนที่ไลบรารีด้วยตนเองได้ดังนั้นความแตกต่างระหว่างการเชื่อมโยง "แบบคงที่" และ "แบบไดนามิก" - ผู้ใช้สามารถสลับไปยังไลบรารีที่เชื่อมโยงแบบไดนามิกที่แตกต่างกันดังนั้นจึงไม่จำเป็น ได้รับใบอนุญาตเป็น GPL และลิงก์แบบคงที่ต้องการให้ผู้ใช้เป็น GPL ใบอนุญาตพูดถึง "ไฟล์ส่วนหัว" ซึ่งชัดเจนใน C / C ++ แต่เห็นได้ชัดว่าไม่ชัดเจนเมื่อคุณอยู่ในโลกของ Java, Python, Javascript และอื่น ๆ ดังนั้น L ("ไลบรารี่") ของสิ่งที่แอลจีแอลจึงเป็นสิ่งที่ดีที่สุด
นี่เป็นประเด็นสำคัญของเรื่องนี้ สิ่งที่ไม่ชัดเจนคือ BAD ในโลกแห่งกฎหมาย หากฉันกำลังมองหาบางสิ่งบางอย่างที่ใช้องค์ประกอบ GPL หรือ LGPL ฉันต้องการให้แน่ใจว่าสถานะทางกฎหมายของฉันคืออะไรในอนาคตหากฉันลงจอดในศาล แต่ ณ วันนี้ฉันไม่แน่ใจเพราะยังไม่มีคดีในศาลที่ดีที่สร้างแบบอย่างทางกฎหมายมีเพียงข้อโต้แย้งทางปัญญาในฟอรัมเช่นนี้เท่านั้น
ที่นี่เป็นที่ที่การยกเว้น Classpath มีค่า มันชัดเจนระบุว่ารหัสภายใต้ใบอนุญาตคือ (L) GPL แต่สิ่งที่ใช้รหัสนั้นสามารถปฏิบัติตามสิ่งที่พวกเขาต้องการใบอนุญาต ไม่ใช่แค่ ifs, ands หรือ buts หากคุณเปลี่ยนรหัสหลัก (เช่นการแก้ไขข้อบกพร่อง) คุณยังต้องปล่อยการเปลี่ยนแปลงเหล่านั้นโดยเป็นส่วนหนึ่งของ GPL แต่การใช้ไม่ได้ทำให้คุณติดเชื้อ
จากมุมมองทางธุรกิจฉันเข้าใจว่าทำไมบางคนไม่ต้องการแตะรหัส GPL ด้วยโพล 10 ' สถานะทางกฎหมายนั้นไม่ชัดเจนและธุรกิจอาจติดอยู่ในทศวรรษนี้เมื่อมีการตั้งตัวอย่างทางกฎหมายในที่สุด หรือพวกเขาอาจติดอยู่ในศาลเป็นเวลาหลายปีเพื่อต่อสู้เพื่อสร้างแบบอย่างทางกฎหมาย ไม่ว่าพวกเขาเพียงแค่ไม่ต้องการเสี่ยงต้นทุนของการต่อสู้นั้น การเพิ่มข้อยกเว้น Classpath กำจัดคำถามทางกฎหมายและหลีกเลี่ยงคดีในศาลที่อาจเกิดขึ้น (ร้ายแรง)
สำหรับฉันแล้ว Classpath Exception นั้นแตกต่างจาก LGPL มาก มันเป็นวิธีที่สะอาดถูกต้องตามกฎหมายในการวาดเส้นสว่างที่อนุญาตให้ใช้รหัสต้นฉบับหรือไลบรารี GPL หรือ LGPL ที่ไม่ใช่ GPL