ฉันสร้างโปรแกรมตามโครงการ LGPL และฉันไม่ได้รับอนุญาตให้เผยแพร่ซอร์สโค้ด


13

ฉันคิดว่า LGPL เป็นใบอนุญาตที่อนุญาตเช่นเดียวกับ MIT, BSD หรือ Apache แต่วันนี้ฉันอ่านว่าอนุญาตให้เชื่อมโยงไปยัง LGPL (ไลบรารี่และอื่น ๆ ) ได้จากโค้ดแหล่งที่มาปิดเท่านั้น - นอกเหนือจากนั้นคือลิขิต - ดังนั้นฉันต้องเผยแพร่โค้ดที่ใช้โปรแกรม LGPL

ฉันสร้างโปรแกรมสำหรับนายจ้างที่ใช้โปรแกรม LGPL แต่มีการปรับเปลี่ยนที่สำคัญ แน่นอนว่าฉันไม่ได้รับอนุญาตให้นำซอร์สโค้ดที่ปรับเปลี่ยนนั้นออกไป ในเวลาเดียวกันฉันต้องถ้าฉันแจกจ่ายมัน (ใช่ไหม)

ดังนั้นฉันสงสัยว่าจะมีวิธีแก้ปัญหานี้หรือไม่ดังนั้นฉันสามารถเก็บแหล่งข้อมูลปิดนี้ได้ (ฉันหวังว่าฉันจะสามารถเผยแพร่แหล่งที่มา) - คำแนะนำใด ๆ

ความคิดของฉัน: ฉันสามารถใส่ฟังก์ชั่นส่วนใหญ่ของแอพ LGPL ต้นฉบับลงในไลบรารีภายนอกเขียนหลักปฏิบัติการจากศูนย์ แต่อ้างอิงกลับไปที่ไลบรารีสำหรับฟังก์ชั่นทั้งหมดที่ฉันยังไม่ได้แก้ไข?

ปัจจุบันทุกอย่างอยู่ในไฟล์. jar (เป็น Java / Swing) หากคุณคิดว่าความคิดของฉันมีความถูกต้องตามกฎหมาย / เป็นไปได้ทางเทคนิค - จะพยายามแยกสิ่งที่ฉันเขียนออกไปมากน้อยแค่ไหน ฉันไม่เข้าใจจาวามากที่สุด


ในโพสต์นี้ผู้ชายคนนั้นบอกว่า "นอกจากนี้ LGPL ยังสามารถหลบเลี่ยงได้ด้วยการใส่ dll ตัวใหม่และใช้ผู้ได้รับมอบหมายหรืออินเทอร์เฟซเพื่อเรียกมันจากซอร์สโค้ด LGPLed" - ใครบางคนสามารถอธิบายเพิ่มเติมอีกเล็กน้อยว่าฉันจะทำสิ่งนี้กับแอพ Java ดั้งเดิม?

16
นี่ไม่ใช่เว็บไซต์ทางกฎหมายฉันจะไม่ขอคำแนะนำในเรื่องกฎหมายจากใครที่นี่ยกเว้นคำแนะนำในการขอคำแนะนำทางกฎหมายที่แท้จริง

5
LGPL ส่วนใหญ่เกี่ยวข้องกับการแจกจ่ายและคุณไม่ได้ให้ข้อมูลเกี่ยวกับวิธีที่คุณวางแผนแจกจ่ายรหัสนี้ให้เรา คำถามไม่น่าจะได้คำตอบที่ถูกต้องจนกว่าคุณจะทำเช่นนั้น ในกรณีใด ๆ ผมจะย้ำว่าคุณไม่ควรใช้คำแนะนำทางกฎหมายจากอินเทอร์เน็ต
Rein Henrichs

ฉันเชื่อว่าตอนนี้ฉันเข้าใจ LGPL ค่อนข้างดีในแง่ของกฎหมาย ดังนั้นฉันขอให้พวกคุณเกี่ยวกับวิธีที่จะทำให้มันทำงานทางเทคนิค - แม้ว่าคุณจะถูกต้องแน่นอน - ในกรณีที่มีข้อสงสัยฉันจะปรึกษาทนายความ
Esuus

คุณไม่ได้พูดว่าคุณใช้ซอฟต์แวร์อะไร แต่ผู้ให้บริการบางรายของซอฟต์แวร์ GPL / LGPL (และอื่น ๆ ) ให้ใบอนุญาตการค้าสำหรับผู้ที่อยู่ในสถานการณ์ของคุณ
Jaydee

คำตอบ:


13

ก่อนอื่นการรับคำแนะนำทางกฎหมายที่นี่ (เช่น: internets) ไม่ใช่ความคิดที่ดี

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

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

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

อีกครั้งนั่นเป็นเพียงฉันพูด

รับคำแนะนำจากทนายความที่แท้จริง


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

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

การเปลี่ยนแปลงเหล่านั้นที่คุณเผยแพร่ตามข้อกำหนดสิทธิการใช้งาน

จากนั้นคุณสร้างไลบรารี่ภายนอกของคุณเองด้วยรหัสกรรมสิทธิ์ของคุณและขอให้โปรแกรมนั้นโหลดและรันโดยใช้การดัดแปลงที่คุณทำไว้

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

อย่างไรก็ตามอีกครั้ง ...

รับคำแนะนำจากทนายความ


4
โปรดทราบว่า FSF ซึ่งเป็นผู้เขียนตระกูลใบอนุญาต GPL ให้พิจารณาการเชื่อมโยงแบบไดนามิกเพื่อสร้างงานที่ได้รับดังนั้นจึงอาจไม่ทำงาน (คนอื่นคิดว่า FSF ผิด) ฉันไม่คิดว่าจะมีการตัดสินทางกฎหมายแม้ว่าฉันจะผิด
David Thornley

จริงๆ? ฉันเชื่อว่าคุณรู้เรื่องนี้มากกว่าฉัน David แต่วิกิพีเดียบอกว่าคุณสามารถลิงก์ไปยังไลบรารี่ที่มีลิขสิทธิ์ของ GPL ได้แบบไดนามิกโดยไม่ต้องเผยแพร่ภายใต้ GPL: "ตัวอย่างเช่นข้อยกเว้นการเชื่อมโยง GPL อนุญาตให้โปรแกรมต่างๆ ภายใต้ GPL เพื่อเชื่อมโยงไปยังห้องสมุดที่ได้รับอนุญาตภายใต้ GPL โดยไม่ต้องอยู่ภายใต้ข้อกำหนด GPL " ดังนั้นฉันจึงสงสัยว่าตอนนี้ความแตกต่างระหว่าง GPL และ LGPL คืออะไรฉันคิดว่ามีเพียง LGPL ที่อนุญาตเท่านั้น
Esuus

2
@Dave: ทีมกฎหมายขนาดใหญ่ของนายจ้างของฉันจะไม่เห็นด้วย พวกเขาก้าวร้าวมากเกี่ยวกับการปกป้องทรัพย์สินทางปัญญาของพวกเขาและเราถูกห้ามอย่างชัดเจนจากการเชื่อมโยงรหัส GPLed กับเราเองเว้นแต่ว่าเราจะแจกจ่ายรหัสภายใต้ GPL คุณพบข้อยกเว้นนั้นที่ไหน ฉันไม่เห็นมันใน GPLv2 หรือ v3 ดูเหมือนว่าคุณกำลังอ้างถึงข้อยกเว้นการเชื่อมโยงที่ไม่ได้เป็นส่วนหนึ่งของวานิลลา GPL อย่างไรก็ตามเจ้าของลิขสิทธิ์อาจเพิ่มข้อยกเว้นการเชื่อมโยงไปยังรหัส GPLed ตามดุลยพินิจของตน ให้คำปรึกษาทีมกฎหมายของคน ๆ หนึ่งเป็นสิ่งที่ดีที่สุดที่จะทำ
โมฆะ

5
ฉันจะไม่เชื่อใน Wikipedia เกี่ยวกับเรื่องนี้ สำหรับทุกสิ่งที่คุณรู้รายการที่เขียนโดยอายุ 14 ปีที่อ่านเกี่ยวกับการออกใบอนุญาตเมื่อสุดสัปดาห์ที่แล้ว รับคำแนะนำที่แท้จริง หรือคุณอาจเดิมพันฟาร์มและหวังว่า บริษัท ของคุณจะไม่เดือดร้อน อะไรก็ตามที่ใช้งานได้
Lasse V. Karlsen

@Dave การเชื่อมโยงไปยัง GPL เป็นปัญหา เท่าที่ผมรู้ว่านี้เป็นหนึ่งในเหตุผลสำคัญสำหรับ FreeBSD GCC จะลดลงในความโปรดปรานของเสียงดังกราว
เลโกลัส

4

ส่วนใหญ่มาเปิดห้องสมุดเผยแพร่ภายใต้แอลจีหรือใบอนุญาตเทียบเคียงที่คนน้อยที่ดีพอที่จะใช้ในโครงการของคุณจะถูกสร้างขึ้นโดยใช้เปิด / ปิดหลักการ: http://en.wikipedia.org/wiki/Open/closed_principle

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


รหัส LGPL ที่ฉันใช้เป็นแอปพลิเคชั่นไม่ใช่ห้องสมุด .. ดังนั้นคำถามคือฉันสามารถเปลี่ยนเป็นห้องสมุดหรือ - เหมือน Lasse แนะนำ - เปลี่ยนรหัสของฉันเป็นห้องสมุดและเก็บ LGPL / open ที่เหลือ
Esuus

1
@Dave: LGPL เคยรู้จักกันในชื่อ Library GPL ฉันไม่ได้เห็นแอปพลิเคชันใด ๆ ที่ใช้ใบอนุญาตนี้ คุณใช้อะไรถ้าไม่ใช่ความลับ
Olaf

FSF เรียกมันว่า Lesser GPL การใช้งานอย่างเดียวที่ฉันนึกได้ตอนนี้คือแอปที่สามารถลิงก์ในไลบรารีที่เป็นกรรมสิทธิ์และสิ่งที่คล้ายกัน
David Thornley

น่าสนใจทั้ง Mozilla และ OpenOffice.org ได้รับอนุญาตภายใต้ LGPL
Esuus

@Dave: ถ้าอย่างนั้นฉันก็อยู่กับ @David Thornley Mozilla ให้หมายถึงการสร้างปลั๊กอินที่กำหนดเองซึ่งสามารถเป็นรหัสปิดได้ ฉันไม่คุ้นเคยกับ OpenOffice แต่ฉันคิดว่าพวกเขาทำได้ แอปพลิเคชัน LGPL ที่คุณใช้มีฟังก์ชันการทำงานที่เพิ่มขึ้นเช่นการเพิ่มปลั๊กอินหรือมีภาษาสคริปต์หรือไม่? คุณสามารถใช้กลไกนั้นกับรหัสของคุณได้หรือไม่?
Olaf

2

ข้อจำกัดความรับผิดชอบเดียวกัน: IANAL

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

วิธีเดียวที่จะหลีกเลี่ยงสิ่งเหล่านี้คือการไม่แจกจ่ายมันตั้งแต่แรก


2

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

แต่คุณสามารถติดต่อผู้เขียนต้นฉบับของโปรแกรม LGPL และขอ / ซื้อใบอนุญาตที่แตกต่างและเป็นกรรมสิทธิ์ได้

ทางเลือกอื่นเท่านั้นที่จะปล่อยแหล่งที่มาหรือเขียนใหม่ทั้งหมด


1

IANAL, TINLA, ฯลฯ

ฉันคิดว่า LGPL เป็นใบอนุญาตที่อนุญาตเช่นเดียวกับ MIT, BSD หรือ Apache แต่วันนี้ฉันอ่านว่าอนุญาตให้เชื่อมโยงไปยัง LGPL (ไลบรารี่และอื่น ๆ ) ได้จากโค้ดแหล่งที่มาปิดเท่านั้น - นอกเหนือจากนั้นคือลิขิต - ดังนั้นฉันต้องเผยแพร่โค้ดที่ใช้โปรแกรม LGPL

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

ฉันสร้างโปรแกรมสำหรับนายจ้างที่ใช้โปรแกรม LGPL แต่มีการปรับเปลี่ยนที่สำคัญ แน่นอนว่าฉันไม่ได้รับอนุญาตให้นำซอร์สโค้ดที่ปรับเปลี่ยนนั้นออกไป ในเวลาเดียวกันฉันต้องถ้าฉันแจกจ่ายมัน (ใช่ไหม)

แก้ไข. ใบอนุญาตสั่งให้ผู้รับทุกคนของซอฟต์แวร์ได้รับสิทธิ์ในการเข้าถึงซอร์สโค้ด

ความคิดของฉัน: ฉันสามารถใส่ฟังก์ชั่นส่วนใหญ่ของแอพ LGPL ต้นฉบับลงในไลบรารีภายนอกเขียนหลักปฏิบัติการจากศูนย์ แต่อ้างอิงกลับไปที่ไลบรารีสำหรับฟังก์ชั่นทั้งหมดที่ฉันยังไม่ได้แก้ไข?

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

ปัจจุบันทุกอย่างอยู่ในไฟล์. jar (เป็น Java / Swing) หากคุณคิดว่าความคิดของฉันมีความถูกต้องตามกฎหมาย / เป็นไปได้ทางเทคนิค - จะพยายามแยกสิ่งที่ฉันเขียนออกไปมากน้อยแค่ไหน ฉันไม่เข้าใจจาวามากที่สุด

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

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

หากโปรแกรมนั้นมีให้ภายในบริษัท คุณจะต้องให้แหล่งข้อมูลแก่พนักงาน บริษัท เท่านั้น ฉันขอแนะนำให้เพิ่มลงในการควบคุมแหล่งที่มาของ บริษัท ที่คุณมีอยู่ สิ่งนี้จะเป็นไปตามข้อกำหนดของ LGPL ตราบใดที่ไม่มีใครสามารถเข้าถึงได้


1

คุณสามารถใช้รูปแบบของอะแดปเตอร์และไม่ต้องสัมผัสกับรหัสต้นฉบับ นอกจากนี้ LGPL ยังให้คุณสามารถสืบทอดคลาสและการแทนที่ฟังก์ชันการทำงานของคลาสนั้นในโครงการของคุณเอง


0

นี่คือความเข้าใจของฉัน IANAL

ตรวจสอบข้อความของเวอร์ชั่น LGPL ที่ครอบคลุมรหัสที่คุณใช้ ฉันเชื่อว่าข้อกำหนดคือรหัสใด ๆ ที่ LGPL จะต้องสามารถสลับออกได้ - โดยปกติแล้วจะใช้ไฟล์ไลบรารี / jar ที่แชร์ หากคุณสามารถแยกรหัสที่คุณใช้นั่นคือ LGPL ลงในห้องสมุดคุณสามารถปล่อยมันภายใต้ LGPL ในขณะที่ปล่อยแอปพลิเคชันของคุณภายใต้ใบอนุญาตที่คุณต้องการ


0

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

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