AGPL - สิ่งที่คุณสามารถทำได้และสิ่งที่คุณทำไม่ได้


188

AGPL เป็นใบอนุญาตที่ค่อนข้างใหม่ที่ตั้งใจจะใช้กับเครือข่าย GPL-over-Networks อย่างไรก็ตามไม่ใช่การเป็นทนายความและไม่ได้อ่านใบขับขี่ทั้งหมดฉันไม่เข้าใจว่าคุณสามารถทำอะไรได้อย่างอิสระและไม่ได้ใช้ AGPL

ความไม่แน่นอนของฉันถูกป้อนโดยโพสต์นี้เกี่ยวกับ MongoDB (ซึ่งเป็น AGPL) และมากยิ่งขึ้นโดยความคิดเห็นด้านล่าง

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

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

  • ถ้าคุณใช้และแก้ไขคุณต้องโอเพนซอร์สทั้งแอปพลิเคชันของคุณหรือคุณต้องแจกจ่ายเฉพาะการเปลี่ยนแปลงใน iText อีกครั้งหรือไม่
  • หากคุณใช้และไม่ได้ทำการแก้ไขคุณต้องเปิดโปรแกรมทั้งหมดของคุณหรือไม่?
  • หากคุณห่อ iText ไว้ในแอปพลิเคชันอื่นที่คุณเริ่มเป็นกระบวนการแยกต่างหาก แต่ใช้มันจากแอปพลิเคชันหลักของคุณคุณควรจะเปิดทุกอย่างหรือไม่ (แอปพลิเคชัน wrapper จะเป็น HTTP-based API ซึ่งจะใช้ไฟล์ pdf และจะส่งคืนผลลัพธ์ของการใช้ iText เป็น JSON) สามารถใช้เพื่อหลีกเลี่ยงใบอนุญาต AGPL ได้หรือไม่

หมายเหตุ: คำถามเกี่ยวกับ AGPLv3


1
ดูคำตอบที่เกี่ยวข้องนี้: opensource.stackexchange.com/questions/5003/…
— Philippe Ombredanne

คำตอบ:


40

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

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

ในกรณีส่วนใหญ่ที่ผู้คนใช้แอปพลิเคชั่น GPL แยกต่างหากในโปรแกรมโอเพนซอร์ซพวกเขาให้งาน GPL เป็นส่วนขยายเพิ่มเติมหรือเป็นทางเลือกส่วนหลังของโค้ดอื่น ๆ

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


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

8
1. "เชื่อมโยงหรืออย่างอื่น" ผิด 2. "ถือว่าเป็นงานที่ได้รับมา" ผิด 3. ฉันคิดว่า "ในกรณีส่วนใหญ่" ผิด 4. "การทำงาน (A) GPL ไม่สามารถแจกจ่ายพร้อมกับแอปพลิเคชันสุดท้ายได้แม้ในขณะที่แอพแยกต่างหาก" นั้นผิดทั้งหมดเช่น Debian แจกจ่ายเนื้อหาที่มีใบอนุญาตประเภทต่างๆทั้งหมดเข้าด้วยกันไม่ใช่ทั้งหมดที่เข้ากันได้กับ GPL ระบบกรรมสิทธิ์สามารถทำสิ่งนี้ได้เช่นกัน ลองดูที่ส่วนที่ 3 ของหน้านี้เริ่มต้นจาก "Questions are arisen": ghostscript.com/doc/current/Commprod.htmอย่าอ่านที่เหลือมันพยายามหลอกให้คุณซื้อมัน
— Sam Watkins

Debian จริง ๆ แล้วมีที่เก็บแยกต่างหาก 3 แห่งเนื่องจากมีลิขสิทธิ์ mainประกอบด้วยDFSG - แพ็คเกจที่เข้ากันได้ซึ่งไม่ต้องพึ่งพาซอฟต์แวร์นอกพื้นที่นี้เพื่อใช้งาน เหล่านี้เป็นแพคเกจเท่านั้นถือว่าเป็นส่วนหนึ่งของการกระจาย Debian contribแพคเกจประกอบด้วยซอฟต์แวร์ที่รองรับDFSGแต่มีการพึ่งพาที่ไม่ได้อยู่ในหลัก non-freeมีซอฟแวร์ที่ไม่สอดคล้องกับDFSG
— Kevin Brey

Re: "ไม่สามารถแจกจ่ายพร้อม" - คุณสามารถชี้ไปที่สำรองสิทธิ์การใช้งานเฉพาะที่ได้หรือไม่ ฉันเข้าใจอย่างถ่องแท้ว่าทำไมคุณไม่ต้องการส่งรหัสลิขสิทธิ์ AGPL ในผลิตภัณฑ์สำหรับผู้บริโภค แต่นั่นเป็นสถานการณ์ที่ค่อนข้างแคบ
— Charles Duffy

1
เช่น ... วัด ... ดังนั้นตอนนี้โทรศัพท์ Android ทั้งหมดที่มีเมล็ด Linux ของพวกเขาผิดกฎหมาย ...
— Antti Haapala

10

AGPL เหมือนกับ GPL ดังนั้นหากแอปของคุณใช้รหัส AGPL จะต้องมีใบอนุญาต AGPL

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

สำหรับ Mongo ฉันคิดว่าแอปที่ใช้มันไม่ได้ใช้เป็นรหัสแค่ API บางตัวเท่านั้นซึ่งไม่ได้รับอนุญาต AGPL


โดยทั่วไปฉันไม่ได้ใช้รหัสของ iText เช่นกัน - ฉันใช้ API ซึ่งเป็น binary java API แทนที่จะเป็น JSON API ในกรณีของ Mongo
— Bozho

@Bozho และ API นั้นมีลิขสิทธิ์แบบใด
— Let_Me_Be

2
@Bozho Mongo DB ไดรเวอร์ทั้งหมดได้รับอนุญาตภายใต้ใบอนุญาต Apache (ฉันอ้างถึงเว็บไซต์ที่คุณเชื่อมโยง)
— Let_Me_Be

2
ดีนั่นคือสิ่งที่หลบ - เราทำอะไรให้ API และไคลเอนต์ API Btw คุณสามารถตอบคำถามกระสุนสามข้อข้างต้นได้หรือไม่
— Bozho

2
ไม่มีคำถามว่างานที่ใช้รหัส AGPL จะได้รับอนุญาตภายใต้ AGPL (ยกเว้นรหัส GPLv3 ซึ่งได้รับอนุญาตเป็นการเฉพาะในการผสมระหว่างกันโดยไม่มีข้อกำหนด AGPL ที่ใช้กับรหัส GPLv3) ปัญหามาในคำจำกัดความของการใช้เครือข่ายซึ่งอ้างอิงถึง "Modified version" และคำจำกัดความของ "Modified version" ในคำจำกัดความหมายความว่ามันใช้กับสิ่งที่ต้องการลิขสิทธิ์เท่านั้น (เช่นการกระจาย) ดังนั้นมันจึงค่อนข้างมืด
— Erik Funkenbusch
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.