โครงการ Forking GPL: ฉันมีสิทธิ์เต็มในการแยกใหม่หรือยังคงขึ้นอยู่กับเจ้าของเดิม


34

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

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

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


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

GPL อนุญาตให้ใช้ในเชิงพาณิชย์!
feklee

คำตอบ:


75

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

คุณทำมีลิขสิทธิ์ใด ๆ (ขี้ปะติ๋ว) การปรับเปลี่ยนหรือเพิ่มเติมที่คุณทำ


คำตอบที่ยาว:

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

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


2
คำอธิบายที่ดีเกี่ยวกับปัญหาลิขสิทธิ์
โรรี่ฮันเตอร์

2
@ArtB ไม่แน่ใจเกี่ยวกับ GPL -> AGPL แต่ LGPL อนุญาตให้คุณปล่อยรุ่นที่แก้ไขภายใต้ GPL โดยเฉพาะ ( ดูบทความ 2 ) สิ่งที่คุณได้รับอนุญาตให้ทำขึ้นอยู่กับว่าใบอนุญาตเริ่มต้นคืออะไร
Bruno

3
@ 2rs2 ไม่แน่ใจว่าสิ่งที่คุณพูดนั้นเป็นความจริง (ดูหัวข้อ 13ของ GPLv3 ... แน่นอนขึ้นอยู่กับว่าเรากำลังพูดถึง GPLv2 หรือ GPLv3) นอกจากนี้การเปลี่ยนแปลงของคุณมักเป็นของคุณเสมอ หากคุณเพิ่มวิดเจ็ตเวทย์ลงในโครงการ GPL คุณอาจต้องแจกจ่ายล็อตใหม่ภายใต้ GPL แต่ถ้าคุณเพิ่มวิดเจ็ตเวทย์มนตร์เดิมให้กับโครงการ B ของ BSD คุณสามารถอนุญาตเนื้อหาของคุณอีกครั้ง(และไม่ใช่เนื้อหาจากโครงการ A) วิธีใดก็ได้ที่คุณต้องการ (เข้ากันได้กับใบอนุญาตของโครงการ B) (เช่นเคยรับคำแนะนำทางกฎหมายหากคุณต้องการแน่ใจนี่ไม่ใช่)
Bruno

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

4
@ โลฮาริส: คุณพูดถูกที่คุณสามารถปล่อยแพทช์ที่คุณเขียนด้วยใบอนุญาตใด ๆ ที่คุณต้องการ แต่หากการเลือกใบอนุญาตที่ไม่ระมัดระวังสามารถทำให้รหัสที่ได้รับการแก้ไขไม่สามารถแจกจ่ายได้
Bart van Ingen Schenau

24

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

ดังนั้นไม่คุณไม่สามารถปล่อยรหัสภายใต้ลิขสิทธิ์ที่เป็นกรรมสิทธิ์ได้หากมาจากรหัสที่ไม่อนุญาต


คำตอบของ Bart แสดงถึงเงื่อนไขที่เข้มงวดกว่าของคุณในเรื่องข้อกำหนดสิทธิ์ใช้งานของรหัส forked - ข้อใดที่ถูกต้องในกรณีทั่วไป?
โทมัส

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

4
@Thomas Dan's ถูกต้องหากใบอนุญาตดั้งเดิมอนุญาตให้ทำการ relicensing ได้คุณสามารถขออนุญาตโครงการใหม่ได้ ฉันไม่เชื่อว่าคำตอบของบาร์ตระบุสิ่งที่คุณตีความ OP พูดถึงรหัสที่ได้รับอนุญาตภายใต้ GPL ดังนั้นทั้งสองจึงเทียบเท่ากันในกรณีนี้
Taemyr

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

@Taemyr ใช่ฉันเดาว่าฉันสับสนว่าคำตอบของ Bart นำไปใช้กับใบอนุญาตทั้งหมดหรือไม่ (ตามที่เขียนไว้) หรือ GPL เท่านั้น
โธมัส

17

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

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

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

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


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