GPL สามารถบอกเป็นนัยได้กับอนุพันธ์หรือไม่


13

มีสามโครงการซอฟต์แวร์: A, B และ C

A เผยแพร่ให้ทุกคนและได้รับอนุญาตภายใต้ GPL

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

C ขยาย B สามารถเผยแพร่ C ภายใต้ GPL ได้หรือไม่ แรงจูงใจจะเป็น "A คือ GPL อนุพันธ์ใด ๆ จะต้องเป็น GPL ด้วยดังนั้น B คือ GPL และ C สามารถเป็น GPL ได้เช่นกัน"


5
ส่วนใดของ B ที่ขยาย C หากพวกเขาทั้งหมดอยู่ใน A แล้วฉันจะเห็นว่าไม่มีปัญหา ถ้า C ขยายส่วนของ B ซึ่งไม่ได้อยู่ใน A สิ่งต่าง ๆ น่าสนใจ

ฉันจะตั้งชื่อโครงการ A, B, C และติดต่อผู้เขียนของ B.
Basile Starynkevitch

1
นอกจากนี้ฉันเชื่อว่าอย่างน้อยคุณสามารถเผยแพร่ C ภายใต้ GPL เนื่องจาก GPL รองรับ LGPL แต่
IANAL

2
@Tichodroma, C ขยายส่วนของ B, B แต่ไม่สามารถอยู่ได้โดยไม่ต้อง A :)
Andrej

ผู้เขียน C ได้เขียน (ส่วนหนึ่งของ) A ด้วยหรือไม่ ถ้าไม่เราไม่มีความคิดว่าใบอนุญาตของผู้เขียนให้กับ B ดังนั้นเราจึงไม่มีความคิดว่าเราสามารถสร้างมันได้หรือไม่
dcorking

คำตอบ:


23

ก่อนอื่น B ​​เป็นการละเมิด GPL ใน A แต่นั่นไม่ใช่ข้อกังวลของคุณและไม่เกี่ยวข้องกับคำถามที่นี่ (ใครจะรู้บางที B ได้รับใบอนุญาต LGPL จาก A บนรหัสของพวกเขาเพื่อที่จะถูกปล่อยภายใต้ LGPL? )

คำถามคือ "คุณสามารถสร้างซอฟต์แวร์ GPL ตามรหัส LGPL ได้หรือไม่" คำตอบสำหรับคำถามนี้คือ "ใช่"

LGPL นั้นมีข้อ จำกัด น้อยกว่า GPL (เหตุใด B จึงละเมิดสิทธิ์การใช้งานบน A เว้นแต่มีการจัดทำข้อกำหนดอื่น ๆ ไว้) แต่ก็อนุญาตให้นำกลับเข้าสู่โครงการ GPL ได้อย่างง่ายดาย

จากใบอนุญาต LGPL:

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

    a) ให้คำบอกกล่าวที่เด่นชัดพร้อมสำเนาของรหัสวัตถุแต่ละอันที่ Library ใช้ในนั้นและ Library และการใช้งานนั้นได้รับการคุ้มครองโดยสัญญาอนุญาตนี้
    b) แนบรหัสวัตถุพร้อมกับสำเนาของ GNU GPL และเอกสารสัญญาอนุญาตนี้

มันเป็นส่วนหนึ่งของใบอนุญาต คุณสามารถสร้างซอฟต์แวร์ GPL ได้อย่างง่ายดายโดยใช้รหัส LGPL

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


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

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

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

หนึ่งไม่สามารถบังคับใบอนุญาตในแหล่งที่มาของคนอื่น มันเป็นไปตามใบอนุญาตหรือในการละเมิดมัน หากมีการละเมิดมันก็จะถูกสะกดออกในใบอนุญาต:

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

การละเมิด GPL ไม่ได้หมายความว่าเนื้อหานั้นอยู่ภายใต้ GPL แต่เป็นสิ่งที่ไม่สามารถแจกจ่ายได้


3
คำตอบที่ดี. คุณพิจารณาที่จะยอมรับข้อเสนอของOpen Source Stackexchangeหรือไม่?
ฟิลิปป์

5
@Andrej บุคคลเพียงคนเดียวที่มีสิทธิ์ในการพิจารณาว่าจะอนุญาตให้ใช้สิทธิ์ B คือผู้ที่เขียน B. หาก A คือ GPL'ed พวกเขามีตัวเลือก "ห้ามแจกจ่าย" หรือ "สิทธิ์การใช้งานเป็น GPL" ว่ามีการแจกจ่ายผิดพลาดไม่ได้หมายความว่าจะได้รับอนุญาตเป็น GPL

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

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

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

4

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

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

B ได้รับอนุญาตภายใต้ใบอนุญาตอื่น ๆ B ควรได้รับใบอนุญาตภายใต้ GPL แต่ไม่ใช่ หากสิทธิ์ใช้งานของ B ให้สิทธิ์มากกว่า GPL คุณจะไม่ได้รับสิทธิ์เหล่านั้นสำหรับรหัสของ A - B ไม่สามารถให้สิทธิ์เพิ่มเติมแก่คุณในรหัสของ A คุณสามารถใช้รหัสของ A ภายใต้ข้อกำหนดของ GPL ได้เนื่องจากรหัสอนุญาตนั้นและรหัสเพิ่มเติมของ B ภายใต้ใบอนุญาตของ B

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


3

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

ในสถานการณ์ของคุณหมายความว่าเป็นไปได้ที่จะมีไลบรารี A ภายใต้ GPL และรหัสใหม่ในไลบรารี B ภายใต้ LGPL งานที่รวมกัน (ไลบรารี่ B) มีการเผยแพร่อย่างมีประสิทธิภาพภายใต้ใบอนุญาต GPL และสามารถแจกจ่ายได้เช่นกันเนื่องจากใบอนุญาต LGPL เข้ากันได้กับใบอนุญาต GPL (คุณสามารถใช้รหัสใบอนุญาต LGPL ในโครงการลิขสิทธิ์ GPL)
ในสถานการณ์ดังกล่าวก็เป็นการดีที่จะมีรหัสใหม่ในไลบรารี C ภายใต้ GPL ด้วยผลลัพธ์ที่ได้ภายใต้ GPL เช่นกัน


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

1
@cpast: ถูกต้องฉันลืมที่จะพูดถึงว่า LGPL เข้ากันได้กับ GPL หากสิทธิ์ใช้งานไม่เข้ากันคุณจะไม่ได้รับอนุญาตให้เผยแพร่ผลลัพธ์
Bart van Ingen Schenau
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.