MIT กับ BSD เทียบกับ Dual License


87

ความเข้าใจของฉันคือ:

  • โครงการที่ได้รับอนุญาตของMITสามารถใช้ / แจกจ่ายในโครงการที่ได้รับอนุญาตBSD
  • โครงการที่ได้รับอนุญาต BSD สามารถนำไปใช้ / แจกจ่ายใหม่ในโครงการที่ได้รับอนุญาตจาก MIT
  • สิทธิ์การใช้งานของ MIT และ BSD 2 ข้อนั้นเหมือนกันหมด
  • BSD 3-clause = BSD 2-clause +ประโยค"no สลักหลัง"
  • การออกใบอนุญาตสองใบอนุญาตให้ผู้ใช้เลือกจากใบอนุญาตเหล่านั้น - ไม่ผูกมัดกับทั้งคู่

หากทุกอย่างถูกต้องแล้วประเด็นของการใช้ใบอนุญาตdual MIT / BSD คืออะไร? แม้ว่า BSD จะอ้างถึงเวอร์ชัน 3 ข้อแล้วผู้ใช้ไม่สามารถเลือกที่จะปฏิบัติตามกฎหมายลิขสิทธิ์ของ MIT ได้หรือไม่?

ดูเหมือนว่าถ้าคุณต้องการใช้ประโยค "no สลักหลัง" จริง ๆ แล้วคุณต้องอนุญาตมันเป็นแค่ BSD (ไม่ใช่คู่) หากคุณไม่สนใจคำสั่ง "ไม่มีการรับรอง" MIT เพียงอย่างเดียวก็เพียงพอแล้วและ MIT / BSD ซ้ำซ้อน

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


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

@Yanis ใช่ฉันสงสัยว่าคนที่ได้รับใบอนุญาตเป็นสองเท่าพวกเขาจะชัดเจนมากขึ้นสำหรับคนที่ไม่รู้จัก แต่ฉันคิดว่ามันทำให้พวกเขาสับสนมากขึ้น
ryanve

อ่านน่าสนใจ: tomhull.com/ocston/docs/mozgpl.html
Dipan Mehta


1
จากประสบการณ์ของฉันผู้คนส่วนใหญ่ใช้สิทธิ์ใช้งานแบบคู่สำหรับสิทธิ์ใช้งานที่เข้ากันไม่ได้ เช่น MPL + (L) GPL หรือใบอนุญาตแบบชำระเงินโดยไม่มีลิฟท์ร่วมกับ (A) GPL
CodesInChaos

คำตอบ:


60

ความเข้าใจของฉันคือ:

  1. โครงการที่มีลิขสิทธิ์ของ MIT สามารถนำไปใช้ / แจกจ่ายใหม่ในโครงการที่ได้รับอนุญาต BSD
    TRUE (แต่ถ้าไม่มีการแก้ไขผู้ใช้สามารถรับได้จากแหล่งต้นฉบับด้วย

  2. โครงการที่ได้รับอนุญาต BSD สามารถนำไปใช้ / แจกจ่ายใหม่ในโครงการที่ได้รับอนุญาตจาก MIT ใบอนุญาต
    FALSE MIT อนุญาตให้มีการแจกจ่ายโดยไม่มีเครดิตการสนับสนุน BSD ไม่ได้

  3. สิทธิ์การใช้งานของ MIT และ BSD 2 ข้อนั้นเหมือนกันหมด
    FALSEดูด้านบน

  4. BSD 3-clause = BSD 2-clause + ประโยค "no สลักหลัง"
    TRUE

  5. การออกใบอนุญาตสองใบอนุญาตให้ผู้ใช้เลือกจากใบอนุญาตเหล่านั้น - ไม่ผูกมัดกับทั้งคู่
    TRUE (ฉันคิดอย่างนั้น!)

ในทำนองเดียวกันเนื่องจากใบอนุญาต MIT และ BSD มีทั้ง "เข้ากันได้กับ GPL" และสามารถแจกจ่ายในโครงการที่ได้รับอนุญาต GPL ดังนั้นการออกใบอนุญาตสองใบ MIT / GPL จึงดูเหมือนซ้ำซ้อน

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

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

เป็นไปได้ที่จะใช้รหัสลิขสิทธิ์ MIT, Apache หรือ BSD, แก้ไขและแจกจ่ายภายใต้ GPL เมื่อฐานรหัสมีการกระจายเป็น GPL รุ่นที่ได้รับเพิ่มเติมจะไม่สามารถเผยแพร่ภายใต้ใบอนุญาต MIT, Apache หรือ BSD แต่ต้องเป็น GPL เท่านั้น

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

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

แก้ไข 2 การ เพิ่มการอ่านที่น่าสนใจ - ใบอนุญาต GPL และ MPL มีข้อขัดแย้งที่ร้ายแรง อ่านนี่. http://www.tomhull.com/ocston/docs/mozgpl.html


4
@Dipan หากโครงการได้รับอนุญาตเป็นคู่ภายใต้ MIT / GPL ก็สามารถนำไปใช้ในโครงการที่เป็นกรรมสิทธิ์ b / c ผู้ใช้สามารถเลือกที่จะปฏิบัติตาม MIT เท่านั้น หากโครงการมีเพียงใบอนุญาต MIT ก็สามารถแจกจ่ายภายใต้ใบอนุญาตอื่น ๆ รวมถึง GPL นั่นคือสิ่งที่ฉันหมายถึงโดยซ้ำซ้อน
ryanve

11
@DipanMehta คุณหมายถึงอะไร "เครดิตบริจาค" ใน # 2 ดูเหมือนว่าคุณกำลังอ้างถึงใบอนุญาต BSD 4-clause ซึ่งไม่ได้รับการรับรองโดย FSF เช่น 3-clause และ 2-clause คือ ผมกำลังพูดถึง 3 ข้อและคนที่ 2 ข้อซึ่งในกรณีนี้ผมค่อนข้างแน่ใจว่าทั้งห้างบเป็นจริง
ryanve

4
คุณสามารถใช้รหัสลิขสิทธิ์ BSD ร่วมกับรหัสลิขสิทธิ์ MIT คุณต้องกล่าวถึงในเอกสารของโครงการว่า "BazApp ใช้ libfoobar ซึ่งเผยแพร่ภายใต้ใบอนุญาต BSD" หรืออะไรทำนองนั้น สิทธิ์การใช้งาน BSD และ MIT จะใช้กับไฟล์ต่อระดับแทนที่จะเป็นต่อโครงการ
mipadi

10
@Dipan_Mehta ตามที่ ryanve ได้บอกคุณแล้วคุณกำลังพูดถึงใบอนุญาต BSD 4 ข้อต้นฉบับในขณะที่ OP กำลังพูดถึงใบอนุญาต BSD ที่ปรับปรุงใหม่ 3 และ 2 ข้อ ใบอนุญาต BSD 2 ข้อนั้นจริง ๆ แล้วเทียบเท่ากับ MIT แม้แต่หน้า OSI ก็ยังระบุ

17
จุด # 2 (รหัส BSD ไม่สามารถรวมอยู่ในรหัส MIT) ทำงานตรงกันข้ามกับข้อมูลทุกชิ้นที่ฉันเคยอ่านเกี่ยวกับข้อ 3 และข้อ 2 BSD จุดที่ # 2 จะเป็นจริงเกี่ยวกับ BSD 4 ข้อ (ตอนนี้เก่าแก่และถูกลืม) แต่ OP ได้ทำให้ชัดเจนแล้วคำถามนี้ไม่เกี่ยวกับ BSD 4 ข้อ ดูเหมือนว่าค่อนข้างอันตรายที่จะมีข้อมูลที่ทำให้เข้าใจผิดอย่างมหาศาลในคำตอบที่ดีและน่าเชื่อถือ
apsillers

4

ห้าคะแนนของคุณทุกคนจริง

คำตอบอื่น ๆ ดูเหมือนว่าจะสมมติว่าคุณกำลังรวมเก่าที่ไม่ค่อยได้ใช้4 ข้อใบอนุญาต

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

หากทุกอย่างถูกต้องแล้วประเด็นของการใช้ใบอนุญาตคู่ MIT / BSD คืออะไร?

ในทางเทคนิคไม่ควรมีความต้องการมัน สามารถใช้ทั้งในสถานการณ์เดียวกัน

แม้ว่า BSD จะอ้างถึงเวอร์ชัน 3 ข้อแล้วผู้ใช้ไม่สามารถเลือกที่จะปฏิบัติตามกฎหมายลิขสิทธิ์ของ MIT ได้หรือไม่?

นั่นฟังดูถูกต้อง

ดูเหมือนว่าถ้าคุณต้องการใช้ประโยค "no สลักหลัง" จริง ๆ แล้วคุณต้องอนุญาตมันเป็นแค่ BSD (ไม่ใช่คู่) หากคุณไม่สนใจคำสั่ง "ไม่มีการรับรอง" MIT เพียงอย่างเดียวก็เพียงพอแล้วและ MIT / BSD ซ้ำซ้อน

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

ในทำนองเดียวกันเนื่องจากใบอนุญาต MIT และ BSD มีทั้ง "เข้ากันได้กับ GPL" และสามารถแจกจ่ายในโครงการที่ได้รับอนุญาต GPL ดังนั้นการออกใบอนุญาตสองใบ MIT / GPL จึงดูเหมือนซ้ำซ้อน

ใช่.

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

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

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