AGPL – vad du kan göra och vad du kan ' t
On februari 12, 2021 by adminAGPL är en ganska ny licens som menades att gå GPL-över-nätverk. Men eftersom jag inte är advokat och faktiskt inte har läst hela licensen kan jag inte förstå vad exakt du kan göra fritt och vad inte med AGPL.
Min osäkerhet matas av det här inlägget om MongoDB (som är AGPL) och ännu mer av kommentarerna nedan.
Om vi följer kommentarerna visar det sig att du kan använda AGPL-bibliotek med din slutna, kommersiella programvara på serversidan så länge du inte ändrar biblioteket. Är så fallet? Eller måste du distribuera hela ditt program när du använder ett AGPL-licensierat bibliotek?
Fallet med MongoDB är att det använder Apache-licens för klientkoden, vilket ger en annan fråga. Vad händer om du använder AGPL-programvara, men distribuerar den som en annan applikation än din kommersiella program med slutna källor? Ta till exempel iText – det är ett AGPL-bibliotek:
- om du använder det och ändrar det, måste du öppen källkod för hela din applikation eller om du bara måste distribuera ändringarna i iText?
- om du använder den och don ”t ändra det, måste du öppna hela källkoden?
- Om du slår in iText i ett annat program som du startar som en separat process, men använder det från ditt huvudprogram, ska du ha öppen källkod för allt, eller bara omslagsapplikationen? (Omslagsapplikationen kommer att vara HTTP-baserad API som tar pdf-filer och returnerar resultaten av att använda iText som JSON.) Kan detta användas för att kringgå AGPL-licensen?
Obs: Frågan handlar om AGPLv3
Kommentarer
- Se även detta relaterade svar: opensource.stackexchange.com/questions/5003/…
Svar
AGPL baseras på GPL, inte LGPL. Det innehåller inga undantag för länkar, och allt arbete som använder AGPL-kod (länkat eller på annat sätt, modifierat eller inte) måste också licensieras och distribueras av AGPL.
Med hjälp av separata processer kan kringgå (A) GPL, men detta är grumlig mark. Om din slutapplikation beror på på den externa processen, så att den inte skulle fungera ordentligt utan den, skulle den övervägas ett härlett verk av AGPL-programvaran.
I de flesta fall där människor använder separata GPL-applikationer i slutna källprogram, tillhandahåller de GPL-arbetet som en valfri förlängning, eller som en alternativ back-end till någon annan bit kod etc.
(A) GPL-arbetet kan inte distribueras tillsammans med den slutliga applikationen, inte ens som en separat app (t.ex. lägga dem i samma arkiv eller arkiv), även om det är bra att ge instruktioner om var du hittar GPL-arbetet och hur du använder det med din app.
Kommentarer
- Även om det du säger är sant, är den enda skillnaden mellan GPL och AGPL är kravet på att leverera kod om den ' används interaktivt över ett nätverk. Klausulen som täcker detta säger dock att den endast gäller " Modifierade versioner " av verket och " modifierade versioner " definieras som all användning som kräver upphovsrätt. Att bara köra den omodifierade versionen skapar inte en " modifierad version ", eftersom upphovsrätt endast täcker distribution.
- 1 . " länkad eller på annat sätt " är fel. 2. " det skulle betraktas som ett härlett verk " är fel 3. Jag tror " I de flesta fall är " fel. 4. " (A) GPL-arbetet kan inte distribueras bredvid den slutliga applikationen, även om en separat app " är helt fel, t.ex. Debian distribuerar saker med alla slags olika licenser tillsammans, som inte alla är kompatibla med GPL. Egna system kan också göra detta. Ta en titt på avsnitt 3 på den här sidan, med start från " Frågor har uppstått ": ghostscript.com/doc/current/Commprod.htm Don ' för att inte läsa resten, den försöker lura dig att köpa den.
- Debian har faktiskt 3 separata arkiv på grund av licensiering.
main
består av DFSG -paket som inte är beroende av programvara utanför detta område för att fungera. Dessa är de enda paketen som anses vara en del av Debian-distributionen .contrib
-paket innehåller DFSG -kompatibel programvara, men har beroenden som inte är huvudsakligen (eventuellt förpackade för Debian i icke-fri ).non-free
innehåller programvara som inte uppfyller DFSG . - Gilla … wat … så nu är alla dessa Android-telefoner med sina Linux-kärnor olagliga …
- Det finns inget krav på att offentligt distribuera källan till programvara som beror på AGPL-kod. Det finns bara ett krav att distribuera det till användare av programvaran, vilket AGPL definierar något annorlunda än GPL.
Svar
AGPL är samma som GPL; om din app använder AGPL-kod måste den därför AGPL-licensieras.
Vad AGPL gör ovanpå GPL är omdefinieringen av användaren. För GPL-program som körs på din server är du användare, för AGPL är de riktiga användarna av appen användare av din webbplats eller tjänst. Därför distribuerar du appen om någon annan än du använder den. Och det innebär naturligtvis alla vanliga GPL-krav.
När det gäller Mongo antar jag att appar som använder den inte använder sin kod, bara en del API, som inte är AGPL-licensierat.
Kommentarer
- generellt sett använder jag ' inte heller koden för iText – jag ' m med dess API, vilket är binärt Java API snarare än ett JSON API i fallet med Mongo.
- @Bozho Och under vilken licens finns det API?
- @Bozho Mongo DB-drivrutiner är alla licensierade under en Apache-licens (jag ' med hänvisning till webbplatsen du länkade).
- ja, det ' s tvivelaktiga – vad bygger vi på ett API och vilken API-klient. Btw kan du svara på de tre punkterna ovan?
- Det finns ingen tvekan om att ett verk som använder AGPL ' d-kod är licensierat under AGPL (Förutom GPLv3 kod som specifikt tillåts att blandas utan att AGPL-villkoren gäller GPLv3-koden). Problemet finns i definitionen av nätverksanvändningen, som endast hänvisar till " Modifierade versioner ", och definitionen av " Modifierade versioner " i definitionerna betyder att det bara gäller något som kräver upphovsrätt (dvs. distribution). Så det är ' fortfarande ganska grumligt.
Lämna ett svar