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.