โปรแกรม GPLv2 สามารถพึ่งพาไลบรารี่ที่มีลิขสิทธิ์ของ Apache ได้หรือไม่?


12

โปรแกรมซอฟต์แวร์ที่ได้รับอนุญาต GPL (รุ่น 2) สามารถใช้ไลบรารีที่ได้รับอนุญาตภายใต้ APLv2 ได้หรือไม่โดยไม่ต้องใช้ GPL ภาษาที่นี่แนะนำให้ฉันอาจจะไม่

ในกรณีเฉพาะของฉันฉันกำลังดูดีมอนที่ใช้ไลบรารี่ภายนอกที่มีไลเซนส์ APLv2

อัปเดต (เพื่อตอบกลับคำตอบ / ความคิดเห็น)

  1. สำหรับวัตถุประสงค์ของคำถามนี้ฉันไม่สามารถรับรองโปรแกรมหลัก (daemon) ได้
  2. โปรแกรมหลักได้รับการขยายด้วยฟังก์ชั่นการใช้งานapr-utilและส่วนประกอบอื่น ๆ ของ APLv2

คำถามของฉันคือฉันสามารถปล่อย daemon เพิ่มเติมภายใต้ GPLv2 หรือเป็นสิ่งที่ฉันต้องการให้กับตัวเอง (ไม่มีการแจกจ่าย) และ / หรือนำไปใช้ใหม่โดยไม่ต้องใช้ APLv2 ถ้าฉันมุ่งมั่นที่จะ(a)ปล่อยส่วนขยายนี้และ(b)ดูแล daemon GPL'd หรือไม่


2
เอกสารที่คุณเชื่อมโยงระบุไว้อย่างชัดเจนว่าไม่มี อย่างไรก็ตามรหัส GPL ส่วนใหญ่มีข้อกำหนด "หรือตามที่คุณเลือกรุ่นที่ใหม่กว่า" ซึ่งหมายความว่าคุณสามารถถือเป็น GPLv3 และเป็นสิ่งที่ตกลง
Jan Hudec

คำตอบ:


7

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

มันใกล้เคียงกับความหมายของ FSF แต่การให้ copyleft ของ GPL จะช่วยให้ดีขึ้นอีกเล็กน้อย

จากคำถามที่พบบ่อย GPLให้เน้นที่เหมือง

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

ดังนั้นใบอนุญาตใช้งานร่วมกันได้กับ GPL หากข้อกำหนดนั้นสามารถถูกดูดซับไว้ภายใต้ GPL


ลองดูที่ APLv2 และ GPLv3

  • APLv2_Lib + GPLv3_Lib => รวม lib เนื่องจาก GPLv3 นั้นโอเค
  • APLv2_Lib + GPLv3_Lib => รวม lib เนื่องจาก APLv2 นั้นไม่เป็นไร

และ Apache บอกมากที่นี่ :

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


แต่คุณกำลังทำงานกับภูตที่ได้รับอนุญาตภายใต้ GPLv2 ไม่ใช่ v3

FSF ค่อนข้างชัดเจนว่าสิ่งที่คุณต้องการทำไม่ได้เป็นที่ยอมรับสำหรับการเผยแพร่สาธารณะ

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

ดังนั้นเพื่อตอบคำถามของคุณ:

ไม่มีคุณอาจไม่แจกจ่ายรวมภูตใช้ GPLv2 และได้รับใบอนุญาต APLv2 วัสดุ
FSF เรียกชุดค่าผสมนั้นอย่างชัดเจนว่าไม่อนุญาตให้เผยแพร่แบบสาธารณะ

ทางเลือก:

  1. คุณจะได้รับอนุญาตให้ใช้เป็นการส่วนตัว

  2. คุณจะสามารถเขียนฟังก์ชัน APLv2 ได้อีกครั้งและรวมงานใหม่ของคุณเข้ากับงาน GPLv2

  3. คุณสามารถดูว่า daemon สามารถเปลี่ยนเป็น GPLv3 ได้หรือไม่ ถ้าเป็นเช่นนั้นคุณจะเห็นชัดเจนว่าการผสาน APLv2 ทำงานในตอนนี้ GPLv3 daemon


2

มุมมองของฉันสอดคล้องกับ OP ตามข้อความของลิงค์ ASF ของ OP

ASF (มูลนิธิซอฟต์แวร์ Apache) ไม่ชอบแนวคิดของรหัส ASFv2 ที่เป็นส่วนหนึ่งของระบบที่ใช้ GPLv2 ตามข้อมูลที่ จำกัด ในกรณีของคุณและความเข้าใจของฉันเกี่ยวกับใบอนุญาต FOSS ต่างๆ: ไม่ว่าโครงการร่มจะมี GPLv2 หรือไม่ หรือโครงการร่มคือ GPLv2 พยายามรวม ASFv2

นอกจากนี้ดูเหมือนว่าโครงการร่ม ASFv2 ที่มีรหัส GPLv3 ไม่ควรเกิดขึ้น แต่โครงการร่ม GPLv3 สามารถมีรหัส ASFv2 ได้

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

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