สิทธิ์การใช้งานที่ใช้งานร่วมกันได้กับ GPL เช่น MIT สามารถใช้งานได้ในโปรแกรม GPL โดยไม่ต้องอยู่ภายใต้บทบัญญัติของลิขสิทธิ


19

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

จากสิ่งที่ฉันเข้าใจเกี่ยวกับ GPL ตราบใดที่มีการใช้แอปพลิเคชันภายในไม่มีข้อผูกมัดที่จะต้องปล่อยรหัสของมัน (แม้ว่าสำเนาจะถูกย้ายไปยัง บริษัท ย่อยที่มีการควบคุม)

สิ่งที่ฉันไม่เข้าใจคือประเด็นต่อไปนี้จากคำถามที่พบบ่อย:

หากไลบรารี่ออกภายใต้ GPL (ไม่ใช่ LGPL) นั่นหมายความว่าซอฟต์แวร์ใด ๆ ที่ใช้จะต้องอยู่ภายใต้ GPL หรือลิขสิทธิ์ที่เข้ากันได้กับ GPLหรือไม่? ใช่เพราะซอฟต์แวร์ที่ทำงานจริงรวมถึงห้องสมุด

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

(หมายเหตุ: มีส่วนประกอบใน Adobe Photoshop ที่ได้รับอนุญาตภายใต้การเพิ่มประสิทธิภาพและฉันไม่คิดว่ามีรหัสตามที่ต้องการ)

คำอธิบายที่สมเหตุสมผลที่สุดคือฉันไม่ได้ทำอะไรซักอย่าง ... คุณช่วยบอกฉันทีว่าฉันทำผิดพลาดได้ไหม?


1
+1 สำหรับการอธิบายเพียงเพราะเหตุใดคุณจึงเคยใช้คำนั้นในประโยค
จิมมี่ฮอฟฟา

@JimmyHoffa +1 สำหรับความรักในภาษาของคุณ
Racheet

1
คุณแดงที่ไหน Boost เป็น GPL มันมีใบอนุญาตของตัวเอง กฎมาตรฐานคือ GPLv2 ไม่ได้ผสมกับซอฟต์แวร์ที่เป็นกรรมสิทธิ์ มีคำถามหนึ่งสัปดาห์ในไซต์นี้เกี่ยวกับวิธีหลีกเลี่ยงปัญหานี้ เราควรแบนคำถาม GPL ทั้งหมด
Andrew T Finnell

ฉันเห็นว่าเขาบอกว่า Boost รองรับ GPL ส่วนที่เหลือของความคิดเห็นของฉันยืนอยู่
Andrew T Finnell

คำตอบ:


26

สิทธิ์การใช้งานที่ใช้งานร่วมกันได้กับ GPL เช่น MIT สามารถใช้งานได้ในโปรแกรม GPL โดยไม่ต้องอยู่ภายใต้บทบัญญัติของลิขสิทธิ

คำตอบสั้น ๆ :พวกเขาไม่ได้ พวกเขาจะกลายเป็นเรื่องที่ copyleft

คำตอบยาว:

บทความวิกิพีเดียเข้ากันได้ใบอนุญาตมีส่วนดีในGPL ความเข้ากันได้ :

ใบอนุญาตซอฟต์แวร์ที่ใช้กันทั่วไปจำนวนมากเช่นใบอนุญาต MIT / X ดั้งเดิม ... คือ "รองรับ GPL" นั่นคือรหัสของพวกเขาสามารถใช้ร่วมกับโปรแกรมภายใต้ GPL ได้โดยไม่มีข้อขัดแย้ง ( ชุดค่าผสมใหม่จะมี GPL ที่นำไปใช้กับทั้งหมด )

[เน้นเพิ่ม]

และชัดเจนยิ่งขึ้นจากคำถามที่พบบ่อยของ FSF เกี่ยวกับความเข้ากันได้ของ GPL :

หมายความว่าใบอนุญาตอื่นและ GNU GPL เข้ากันได้ คุณสามารถรวมรหัสที่เผยแพร่ภายใต้ใบอนุญาตอื่น ๆ กับรหัสที่เผยแพร่ภายใต้ GNU GPL ในโปรแกรมขนาดใหญ่กว่าหนึ่งโปรแกรม

และสำหรับการแก้ไขนี่คือความคิดเห็นของ FSF เกี่ยวกับใบอนุญาตต่างๆ

ความคิดเห็นของ FSF เกี่ยวกับใบอนุญาตเพิ่ม

นี่เป็นใบอนุญาตซอฟแวร์ฟรีที่ไม่มีลิขสิทธิ์ซึ่งไม่อนุญาตให้ใช้งานได้และสามารถใช้งานร่วมกับ GNU GPL ได้

ซึ่งหมายความว่าสิ่งใดก็ตามที่ได้รับอนุญาตภายใต้ Boost จะได้รับการจัดทำโดย GPL อย่างง่ายดาย

มันจะยุ่งยากที่ไหน

สมมติว่าเรามีโครงการที่Fooได้รับใบอนุญาตภายใต้ Boost และโครงการBarที่ได้รับอนุญาตภายใต้ GPL Fooและซึ่งต้องการที่จะใช้

Bar+Fooได้รับอนุญาตเนื่องจากใบอนุญาตเข้ากันได้และการเปิดตัวของBar+Fooต้องเป็น GPL เช่นเดียวกับBarGPL Fooด้วยตัวเองและไม่มีBar หรือ Bar+Fooยังคงมีอยู่ภายใต้สิทธิ์ใช้งาน Boost กล่าวอีกวิธีหนึ่งBar+Fooไม่มีผลกระทบต่อใบอนุญาตกับFooตัวเอง

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

ดังนั้นถ้ามีคนอื่นอยากFooทำและทำอย่างอื่นกับมันพวกเขาก็ยังมีอิสระที่จะทำเช่นนั้นได้โดยไม่ต้องมีบทบัญญัติของ GPL อย่างไรก็ตามหากพวกเขาใช้Bar+FooลบBarและใช้งานเท่านั้น+Fooพวกเขาจะยังคงผูกพันตามข้อกำหนดของ GPL เนื่องจากBar+Fooเป็น GPL

คำถามอื่นของคุณ:

จากสิ่งที่ฉันเข้าใจเกี่ยวกับ GPL ตราบใดที่มีการใช้แอปพลิเคชันภายในไม่มีข้อผูกมัดที่จะต้องปล่อยรหัสของมัน (แม้ว่าสำเนาจะถูกย้ายไปยัง บริษัท ย่อยที่มีการควบคุม)

นี่เป็นคำตอบโดยตรงจากคำถามที่พบบ่อยเกี่ยวกับการแจกจ่ายแหล่งที่มา

GPL ไม่ต้องการให้คุณปล่อยเวอร์ชั่นที่แก้ไขหรือส่วนหนึ่งส่วนใดของมัน คุณมีอิสระในการแก้ไขและใช้งานแบบส่วนตัวโดยไม่ต้องปล่อยออกมา สิ่งนี้ใช้กับองค์กร (รวมถึง บริษัท ) ด้วย; องค์กรสามารถสร้างเวอร์ชันที่แก้ไขและใช้งานภายในได้โดยไม่ต้องเผยแพร่นอกองค์กร

บริษัท ย่อยที่ถือหุ้นทั้งหมดถือเป็นส่วนหนึ่งขององค์กรแม่ดังนั้นคุณจะต้องถูกกฎหมายอย่างชัดเจน FSF จะชี้ให้เห็นว่าคุณกำลังฝ่าฝืนเจตนารมณ์ของซอฟต์แวร์เสรี


3
ฉันสงสัย: หากพนักงานคือใช้ฉบับแก้ไขที่ไม่ถูกเผยแพร่ใน บริษัท ที่เขาจะมีสิทธิที่จะได้รับรหัสที่มาจาก บริษัท หรือไม่
UNOR

@ GlenH7: ขอบคุณสำหรับคำอธิบายที่เป็นประโยชน์มากของคุณ (โดยเฉพาะอย่างยิ่งส่วน "ที่จะทำให้ยุ่งยาก")
Louis Morazzani

2
@unor - ไม่ว่าจะเป็นการใช้ส่วนตัวโดย บริษัท (พนักงานเป็นส่วนหนึ่งของ บริษัท ไม่ใช่นิติบุคคลอื่น)
iheanyi

"อย่างไรก็ตามหากพวกเขาใช้ Bar + Foo ให้ลบ Bar และใช้เพียง + Foo เท่านั้นพวกเขาจะยังคงผูกพันตามข้อกำหนดของ GPL เนื่องจาก Bar + Foo เป็น GPL ที่ต้องการ" คุณแน่ใจไหม? Foo ยังได้รับอนุญาตภายใต้สิทธิ์ใช้งาน Boost ตามที่ฉันเข้าใจแล้วสิทธิ์การใช้งาน Boost ไม่ควรถูกลบแม้เมื่อรวมกับรหัส GPL ("[... ] สิทธิ์ใช้งานด้านบนข้อ จำกัด นี้และข้อจำกัดความรับผิดชอบต่อไปนี้จะต้องรวมอยู่ในสำเนาทั้งหมดของซอฟต์แวร์ทั้งหมดหรือบางส่วนและงานดัดแปลงทั้งหมดของซอฟต์แวร์ [... ]")
lesderid

2
@ GlenH7 แน่นอน แต่พวกเขาจะได้รับอนุญาตให้เชื่อถือFooภายใต้ GPL หรือไม่ การออกใบอนุญาตจะดี แต่พวกเขาก็ต้องเก็บใบอนุญาต Boost ไว้Bar+Fooด้วยใช่ไหม?
lesderid

8

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

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

กล่าวอีกนัยหนึ่ง GPL บอกว่า "คุณต้องอนุญาตให้ $ A, $ B และ $ C" ใบอนุญาตใด ๆ ที่อนุญาตให้ $ A, $ B, $ C และ $ D และ $ E เข้ากันได้ ใบอนุญาตที่อนุญาต $ A และ $ B แต่ไม่ใช่ $ C จะไม่เป็น


4
ดังนั้นงานใหม่ที่รวมเข้าด้วยกันจะได้รับอนุญาตทั้งหมดภายใต้ GPL ใช่ไหม แต่รหัสดั้งเดิมที่ได้รับอนุญาตภายใต้ MIT ยังคงสามารถกระจายแยกต่างหากภายใต้ MIT โดยไม่ต้องใช้ GPL อย่างถูกต้อง
Robert Harvey

1
IANAL แต่ใช่นั่นคือวิธีการทำงาน
Fabio Fracassi

4
" เพราะมันไม่ได้ จำกัด ผู้ใช้รหัสไม่ให้ทำสิ่งใดที่ GPL จะอนุญาตให้ผู้ใช้ทำ " - และเพราะมันไม่ได้ป้องกันผู้ใช้จากการทำสิ่งใด ๆ ที่ GPL ต้องการให้พวกเขาทำ
Ross Patterson

2
ผู้เยาว์ nitpick แต่ GPL ไม่ได้ห้ามการเรียกเก็บค่าธรรมเนียมอะไรเลย ดูgnu.org/licenses/gpl-faq.html#DoesTheGPLAllowMoney
Maximus Minimus

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

1

คุณไม่ได้ทำผิด: คำตอบที่พบบ่อยไม่สมบูรณ์ มันควรจะกล่าวว่าโปรแกรมที่รวมกันนั้นต้องได้รับอนุญาตภายใต้ GPL ไม่ใช่ใบอนุญาตที่เข้ากันได้กับ GPL มันได้รับการแก้ไขแล้ว (ดูด้านล่าง: ฉันได้เน้นบิตสำคัญ):

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

ก่อนหน้านี้ฉันเคยบอกว่า "ถ้าไลบรารี่นั้นเปิดตัวภายใต้ GPL ซอฟต์แวร์ใด ๆ ที่ใช้มันจะต้องอยู่ภายใต้ GPL นั้นเองเนื่องจากธรรมชาติที่เรียกว่า 'ไวรัส' สิทธิ์การใช้งานที่เข้ากันได้ของ GPL ที่อนุญาตเช่นเพิ่มไม่สามารถใช้ได้ ." โดย "ซอฟต์แวร์ที่ใช้มัน" ฉันหมายถึงโมดูลและไลบรารีที่รวมกัน


ฉันเชื่อว่านี่เป็นความเข้าใจผิดที่พบบ่อย มันไม่จำเป็นที่จะปล่อยของคุณเป็นส่วนหนึ่งของรหัสภายใต้จีพีตราบเท่าที่มันมีใบอนุญาตเข้ากันได้ ใบอนุญาตสำหรับชิ้นส่วนของคุณสามารถอนุญาตได้มากกว่า แต่ไม่น้อยกว่า GPL มีเพียงงานที่รวมกันเท่านั้นที่ยังคงอยู่ภายใต้ GPL ดังนั้นข้อ จำกัด เพิ่มเติมของ GPL จะมีผลเฉพาะในกรณีที่ใช้รหัสของคุณพร้อมกับไลบรารี GPL ที่เชื่อมโยง ดูgnu.org/licenses/gpl-faq.html#GPLModuleLicense
ert

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