LGPL อนุญาตให้ฉันทำสิ่งนี้หรือไม่?


16

ฉันวางแผนที่จะพัฒนาซอฟต์แวร์เชิงพาณิชย์โดยใช้ซอฟต์แวร์ LGPL

ในซอฟต์แวร์ LGPL ที่ฉันใช้บางฟังก์ชั่นในชั้นเรียนไม่ได้รับการปรับใช้อย่างสมบูรณ์ ฉันต้องการแก้ไขรหัส LGPL เพื่อให้คลาสและฟังก์ชั่นที่ไม่ได้ใช้งานนั้นถูกทำให้มองเห็นภายนอก dll โดยการเพิ่ม dllexport infront ของคลาสและโดยการเพิ่มคีย์เวิร์ดเสมือนด้านหน้าของฟังก์ชัน

จากนั้นฉันวางแผนที่จะใช้ฟังก์ชั่นเหล่านั้นในซอฟต์แวร์ที่เป็นกรรมสิทธิ์ของฉัน ฉันพร้อมที่จะแจกจ่ายรหัส LGPL ที่แก้ไขแล้ว แต่ไม่ใช่ซอฟต์แวร์ลิขสิทธิ์ที่ใช้งานได้ตามที่ฉันต้องการ

สิ่งนี้ละเมิดข้อกำหนดในการให้บริการของ LGPL หรือไม่?



6
ปัญหาที่เกิดขึ้นกับคำถามของคุณคือคุณไม่ได้พยายามใช้สิทธิ์ใช้งานตามที่เขียนไว้เราอาจตอบคำถามเกี่ยวกับความหมายที่ต้องการของใบอนุญาต แต่เราไม่สามารถรับรายละเอียดทางกฎหมายได้อย่างน่าเชื่อถือ . ด้วยเหตุนี้เราจึงสามารถแนะนำทนายความเท่านั้น ยิ่งไปกว่านั้นสิ่งที่คุณกำลังทำอยู่นั้นขึ้นอยู่กับคำถามทางกฎหมาย (ซอฟต์แวร์ที่ได้มาจาก LGPLed คืออะไร) ที่ยังไม่ได้ตัดสินในสหรัฐอเมริกาในกรณีที่เป็นกฎหมายและฉันเคยเห็นความคิดเห็นที่แตกต่างจากทนายความจริง (ฉันไม่ใช่นักกฎหมาย แต่ฉันได้ติดตามปัญหาเหล่านี้อย่างตั้งใจ)
David Thornley

ยากที่จะพูด. อ่านสิ่งนี้: javalobby.org/java/forums/t15903.html - พวกเขากำลังพูดถึง Java แต่ดูเหมือนว่าใช้ได้กับภาษา OO ใด ๆ
Mike Baranczak

คำตอบ:


26

นี่เป็นคำถามที่ซับซ้อน แต่ฉันเชื่อว่าสิ่งที่คุณเสนอไม่ได้รับอนุญาต

คุณกำลังแนะนำให้เพิ่ม hooks เข้าไปในห้องสมุดเพื่อให้ง่ายต่อการซับคลาสของไลบรารีและอย่างน้อยที่สุด เพื่อหลีกเลี่ยงจิตวิญญาณของ LGPL

ปัญหาคือถ้าคุณคลาสย่อยที่อยู่ภายใต้ใบอนุญาตLGPLในรหัสของคุณเองงานของคุณจะกลายเป็นงานที่ขึ้นอยู่กับห้องสมุดมากกว่างานที่ใช้ห้องสมุดซึ่งหมายความว่ารหัสของคุณเป็นอนุพันธ์ งานที่กล่าวถึงในส่วนที่ 2 ( LGPL v2.1 ) มากกว่างานที่กล่าวถึงในส่วนที่ 6 ( LGPL v2.1 ) นั่นคือมันจะขึ้นอยู่กับ LGPL !

ฉันคิดว่า Stephen Colebourne ให้บทสรุปที่ดีเกี่ยวกับ javalobby

ฉันไม่ใช่แฟนตัวยงของการพูดคุยกับทนายความของคุณแต่ในกรณีนี้ฉันคิดว่ามันจะคุ้มค่าถ้าคุณวางแผนที่จะทำสิ่งนี้มิฉะนั้นคุณอาจได้รับจดหมายน่ารังเกียจจากซอฟต์แวร์ฟรี มูลนิธิทีมกฎหมาย

หรือคุณสามารถถามFSFโดยตรง จากหน้าผู้ติดต่อ :

สำหรับคำถามเกี่ยวกับลิขสิทธิ์ซอฟต์แวร์ฟรีและลิขสิทธิ์

กรุณาตรวจสอบของเราคำถามที่พบบ่อยการออกใบอนุญาตที่รายการใบอนุญาต , ข้อมูลลิขทั่วไปและหน้าเว็บที่เกี่ยวข้อง หากคำถามยังคงอยู่ให้ส่งอีเมล <licensing@gnu.org>

อนึ่งในคำถามที่เกี่ยวข้องสะท้อนและแอลจี , gbjbaanbคำตอบกับมุมมองของแอลจี 3.0


4
ฉันชอบคำแนะนำ "ขอให้ FSF"
ZJR

การอ่านของฉันคือพวกเขาต้องการแสดงฟังก์ชั่นเพิ่มเติมใน LGPL lib ตราบใดที่ lib ที่เกิดขึ้นยังคงเป็น LGPL และผู้ใช้ซอฟต์แวร์ของ OP มีอิสระที่จะแทนที่ lib ด้วยการสร้างได้ - ฉันจะมีความสุข
Martin Beckett

3
@MartinBeckett - ไม่เป็นไรผู้ถามพยายามหลีกเลี่ยง LGPL โดยแก้ไขไลบรารีเพื่อให้ง่ายขึ้นสำหรับเขาในการแก้ไขไลบรารีในซอร์สโค้ดที่ปิดไว้อย่างลับๆ หากเขาเพิ่มฟังก์ชั่นห้องสมุดใหม่ของเขาลงใน LGPL โดยตรงแล้วใช้สิ่งนั้นในรหัสของเขาเองก็จะไม่มีปัญหา มันเป็นความจริงที่ว่าเขาพยายามที่จะปิดฟังก์ชั่นใหม่ของตัวเอง แต่ยังคงเป็นส่วนหนึ่งของห้องสมุดนั่นคือปัญหา
Mark Booth

6
LGPL 3.0กล่าวว่า: "การกำหนดคลาสย่อยของคลาสที่กำหนดโดย Library ถือว่าเป็นโหมดของการใช้อินเทอร์เฟซที่จัดทำโดย Library" ดังนั้นควรอนุญาตอย่างน้อยภายใต้ LGPL 3.0
David

3
@ David - ฉันเชื่อว่าการแก้ไขไลบรารี LGPL เพื่อให้คุณสามารถแทนที่ฟังก์ชั่นที่ปกติไม่สามารถ over-ridden ได้คุณยอมรับโดยปริยายว่าโค้ดของคุณนั้นแน่นหนาพอสมควรและมันมี 'อิง' มากกว่า ความสัมพันธ์ 'ใช้โดย' กับไลบรารีดังนั้น copyleft ที่อ่อนแอจึงเปิดใช้งาน
Mark Booth

13

มาตรฐานฉันไม่ได้เป็นข้อจำกัดความรับผิดชอบของนักกฎหมาย

LGPL ต้องการการแก้ไขโค้ดซอร์สของไลบรารีเพื่อแจกจ่ายให้กับทุกคนที่ใช้รหัสของคุณ มันไม่จำเป็นต้องให้รหัสของคุณซึ่งใช้ห้องสมุดเป็นโอเพนซอร์สและปล่อยออกมาภายใต้ใบอนุญาตแบบเดียวกัน

วิกิพีเดียสำหรับรายละเอียดมากขึ้น แต่ไม่ใช่ทนายความรายละเอียดของแอลจีรวมทั้งส่วนบนมรดกระดับ


+1 เพื่อสรุป: เราคิดว่าไม่ละเมิด LGPL (แต่
IANAL

@ MarkJ - ตามที่ฉันอธิบายในคำตอบของฉันฉันไม่แน่ใจว่าถูกวางคำถามเป็นเพียงเรื่องของมรดกชั้น
Mark Booth

9
ฉันคิดว่าคนชอบพิมพ์ IANAL เพราะมี "ANAL"
g33kz0r

5

"ฉันต้องการแก้ไขรหัส LGPL ... "นี่บอกได้เพียงพอที่คุณจะต้องปล่อยรหัสดัดแปลงใด ๆ จากนั้นการขยายว่ารหัสที่แก้ไขนั้นเป็นงานต่อเนื่องหรือไม่และถ้าเป็นเช่นนั้นจะขึ้นอยู่กับ LGPL

สิ่งที่ดูเหมือนว่าคุณกำลังพยายามทำคือหลีกเลี่ยง LGPL ซึ่งในกรณีนี้ด้วยเทคนิคเหล่านี้คุณไม่สามารถทำได้

หากเป็นงานดัดแปลงจากนั้นข้อกำหนดของโปรแกรมจะต้องอนุญาตสำหรับ "การปรับเปลี่ยนสำหรับการใช้งานของลูกค้าเองและวิศวกรรมย้อนกลับสำหรับการแก้ไขข้อบกพร่องการแก้ไขดังกล่าว" งานที่ใช้โปรแกรม LGPL นั้นเป็นงานดัดแปลงหรือไม่เป็นปัญหาทางกฎหมาย

แต่ถ้าสิ่งที่คุณกำลังพยายามที่จะทำคือการหลีกเลี่ยง LGPL ฉันจะติดต่อ FSF เป็นที่แนะนำโดยมาร์คบูธ


1
ปัญหาคือ LGPL อนุญาตงานบางรูปแบบในขณะที่ไม่อนุญาตงานอื่น ฉันได้อัปเดตคำตอบของฉันเพื่อแยกความแตกต่างระหว่างงานที่ได้รับซึ่งตกอยู่ในหมวดหมู่ของงานตามห้องสมุด (ซึ่งจำเป็นต้องเป็น LGPL) และงานที่ใช้ห้องสมุด (ซึ่งไม่ได้)
Mark Booth

@ MarkBooth ฉันเห็นด้วยกับคุณและคนอื่น ๆ ว่าในกรณีนี้มันเป็นwork based onเพราะพวกเขากำลังทำการเปลี่ยนแปลง LGPL เพื่อแสดงรหัสส่วนตัวก่อนหน้านี้

1

ฉันเดา: (แต่ IANAL) คุณควรปล่อยโอเพนซอร์สในไลบรารีที่ถูกปรับเปลี่ยนเป็นรหัส LGPL แล้ววางลงในโปรแกรมเชิงพาณิชย์ ที่จะทำงาน อย่างมีประสิทธิภาพคุณจะต้องจบลงด้วยการเป็นโอเพ่นซอร์สของห้องสมุดรอบ ๆ แล้วคุณจะขายส่วนหน้าของมัน

แต่อย่างที่คนอื่น ๆ พูดอย่างถูกต้องถาม FSF : มันเป็นสถานการณ์ทางเทววิทยาที่คุณสนใจ พวกเขาอาจสงสัยว่าคุณใช้งานได้หรือไม่ (หรืออย่างน้อยก็กังวลเกี่ยวกับมันมากพอที่จะเผยแพร่รายการคำถามที่พบบ่อยในหัวข้อ)


1

https://www.gnu.org/licenses/lgpl-java.html

หากคุณเผยแพร่แอปพลิเคชัน Java ที่นำเข้าห้องสมุด LGPL เป็นเรื่องง่ายที่จะปฏิบัติตาม LGPL ใบอนุญาตของแอปพลิเคชันของคุณต้องอนุญาตให้ผู้ใช้แก้ไขไลบรารีและทำวิศวกรรมย้อนกลับโค้ดของคุณเพื่อแก้ไขข้อบกพร่องเหล่านี้ นี่ไม่ได้หมายความว่าคุณต้องระบุซอร์สโค้ดหรือรายละเอียดใด ๆ เกี่ยวกับ internals ของแอปพลิเคชันของคุณ แน่นอนการเปลี่ยนแปลงบางอย่างที่ผู้ใช้อาจทำกับไลบรารีอาจทำให้อินเทอร์เฟซหยุดพักซึ่งทำให้ไลบรารีไม่สามารถทำงานกับแอปพลิเคชันของคุณได้ คุณไม่จำเป็นต้องกังวลเกี่ยวกับสิ่งนั้น - ผู้ที่แก้ไขไลบรารีมีหน้าที่ทำให้มันใช้งานได้

กล่าวโดยย่อก็คือไม่มีปัญหากับการสืบทอดตราบใดที่คุณไม่เปลี่ยนรหัสไลบรารีเอง แต่แม้ว่าคุณจะเปลี่ยนคุณจะต้องปล่อยเฉพาะรหัสที่ปรับเปลี่ยนไลบรารีเท่านั้นไม่ใช่รหัสแอปพลิเคชันของคุณ


1
คำตอบของคุณขัดแย้งกับคำตอบอื่น ๆ อีกหลายข้อ แต่ไม่ได้ให้การสนับสนุนข้อเรียกร้องของคุณมากนัก คำตอบอื่น ๆ มีรายละเอียดมากขึ้นและอธิบายการยืนยันของพวกเขาได้ดีขึ้น โปรดแก้ไขคำตอบของคุณเพื่อเสนอราคาที่เกี่ยวข้องจากใบอนุญาตหรือ FSF เพื่อคืนการเรียกร้องของคุณ

จริง ๆ แล้วคำตอบของฉันไม่ได้ให้การชดเชยการเรียกร้องของฉันมาก? ฉันใส่ลิงค์ไปยังหน้า GNU อย่างเป็นทางการซึ่งช่วยลดความสับสนเกี่ยวกับ LGPL และการสืบทอดชั้นเรียน มันได้รับการอัพเดตเพื่อให้ครอบคลุม LGPL v3
Nik.B

1
ดูเพิ่มเติมที่: meta.stackexchange.com/questions/225370/…
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.