If you, for whatever reason, want to make sure your code does not get used by Google - license it under AGPL :)

@jwildeboer I was a little confused by his comment, because I didn't think mithro (Tim Ansel) worked for google. So I tracked down the issue in question. I found his later explanation even more disturbing and disappointing. Don't license AGPL because we *might* want to try to get funding from Google in the future. Wow...

@jwildeboer Sorry I missed that! We had the same reaction. smh

(I had assumed you deliberately didn't link to it, so I did the same.)

I had to sign some legal thing saying "I affirm that the project I'm developing/delivering does not include and third party libraries licensed under AGPL" while working @ Intel for what it's worth.
@p @jwildeboer That definitely sounds like Intel. I've never worked directly with them because they always want me to sign something unreasonable like not working with any other semiconductor company for 2 years after the end of the project.

@jwildeboer Itโ€™s worth noting that Debian had a discussion about accepting AGPL software in their main repository and that they didnโ€™t see any issue at the time.

@jwildeboer As of today, many programs installed on my computer right now are using this license so it seems like itโ€™s still all good!

@jwildeboer Really good to see confirmation that the license works as it should.

@jwildeboer I don't recommend licensing things as AGPL willy nilly, since it can restrict its use even in other Free Software. The AGPL should be used for code expected to be used as a service, otherwise it doesn't really make sense.

@robby Of course, practically all software is used as a service these days. And if it isn't now, it will be. ;)

@cstanhope @robby Yeah, it makes sense to license software as AGPL if it might at some point end up in a service.

And generally, it very well might.

The argument when choosing between AGPL and GPL goes something like the argument of GPL vs LGPL. The GPL is analogue to the LGPL on a network service level.โ€ฆ

@robby All software should be AGPL licensed, the GPL should only be used where competitors are more easily available.


@robby Arguably you should consider making contributors sign you code as GPL-3 such that you can relicense if needed.


@juliank @robby @jwildeboer If you use the GPL, make sure to also dual-license under AGPL. That makes it easier for people to make AGPL derived works,
without having to have a confusing aggregate license.

@wizzwizz4 @juliank @jwildeboer This is not necessary. Section 13 of the GPLv3 allows combined works to be licensed under the AGPLv3. When combined the AGPLv3 applies to the whole combined work.

@robby @jwildeboer @juliank I thought AGPL's โ€œnetwork use is useโ€ behaviour only applied to the parts of the work that were AGPL-licensed. Does it apply to the whole work?

@wizzwizz4 @jwildeboer @juliank โ€œThe terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.โ€ IANAL but to me this means the combined work must follow the requirements of the AGPLv3

@robby That's technically not correct. It says:

The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

@jwildeboer @wizzwizz4

@juliank @jwildeboer @wizzwizz4 We quoted the same exact thing :P does that not say the special requirements of the AGPL apply to the combination?

@robby @jwildeboer @juliank Yeah, but the AGPL itself doesn't apply to the whole source, afaict.

You also can't create a GPL derivative work licensed under AGPL without messing around with what's the original code and what's the AGPL'd code โ€“ you can't say โ€œthe whole code is licensed under AGPLโ€, but only that โ€œit is combined GPL / AGPL, and can be used under AGPLโ€.

@wizzwizz4 @jwildeboer @juliank I see what you mean. It seems like more of a convenience to distribute your code under both AGPLv3 and GPLv3 when the GPL is desired, to allow the whole work to be licensed as cleanly AGPL when combined. It legally doesnโ€™t change usage / compatibility, right?

@robby @jwildeboer @juliank Technically, it does, but not in any noticeable way. It's just cleaner, and less hassle.

@robby It has notable impact in that you can then simply take the source code and make all your changes AGPL-only, which is something the language in the GPL is supposed to limit.

@jwildeboer @wizzwizz4

@juliank @robby @jwildeboer But you can do that anyway; simply delete GPL'd lines and add AGPL'd lines (or provide AGPL patches, etc.). It's just easier to work with if things are dual-licensed.

@wizzwizz4 Dual licensing typically also means that every contributor must sign/agree to some kind of CLA (Contributory License Agreement), which for me is a big NoNo. Make contributions easy. Stick to one license, please. I prefer GPL but also have no problem with BSD/MIT/X11 style. I just need to know upfront.

@juliank @robby

@jwildeboer @juliank @robby No CLA necessary. If the file says โ€œlicensed under the GPLv3-or-later or AGPLv3-or-later (at your discretion)โ€ (or whatever the standard wording is) and somebody submits a patch whilst retaining that notice, you can assume that's the (dual) license they're providing their code under.


Maybe. Depends on that being there from the beginning. If the owner decides to dual license at a later point, things get complicated. That's why I always advise to fork when a license change or switch to dual licensing happens. And only after ALL previous contributors have agreed in a provable way. This stuff is complicated. Been there, got the T-Shirt.

@juliank @robby

@juliank @jwildeboer @wizzwizz4 @robby The GPLv3 explicitly allows adding the requirements added by the AGPLv3, that's how you can legally redistribute AGPLv3+GPLv3 software at all.

@clacke The wording is explicitly *not* allowing a relicensing to AGPL 3.

It allows you to add the restriction to the combination as such, but you'll still receive the covered work subject to the GPL-3, not the AGPL-3.

Which gives you the freedom to take it back out of a combined work and reintegrate it into another GPLed work.

@jwildeboer @wizzwizz4 @robby

@juliank @jwildeboer @wizzwizz4 @robby I think it's the explicit text in the AGPLv3 that "the work with which it is combined will remain governed by version 3 of the GNU General Public License" that allows you to do that. That text wouldn't be required otherwise.

@juliank @clacke @jwildeboer @robby Technically you can do that anyway, so long as you have a valid GPL license for the code (which you almost certainly do, given that you know it's also GPL-licensed).

@wizzwizz4 @jwildeboer @juliank @robby Some parts being offered as this or that license means that code is being offered separately from the combined work, and that's fine, it can continue to do that, but the author of the combined work will "license the entire work, as a whole, under this License to anyone who comes into possession of a copy" to quote the GPLv3.

That means when you are running a GPLv3 or AGPLv3 program, in that moment the whole work is licensed to you under that license, and all the terms apply to it.
@jwildeboer @juliank @wizzwizz4 @robby I don't know if people do this, but the way I read it, an AGPLv3 program that links with e.g. zlib should offer "an opportunity to receive the Corresponding Source of" the exact version of zlib used to build the program.

I'm not 100% clear on this, because the definitions are circular: The covered work is the Program and the Program is whatever is covered by the license. ๐Ÿ˜
It does mention the GPLv3 specifically and specifically says that GPLv3 parts also need to be offered, but I don't think that implies non-GPLv3 parts are exempt, it's just that two copyleft licenses are necessarily incompatible unless made explicitly compatible. For the parts with licenses that allow it, they're simply part of the covered work, no explanations necessary.
@sindastra @jwildeboer You skipped the key word in your quote: "expected". When you write code, you have expectations about how it will be used. They might not always be correct, but you should choose a license that best protects the expected use case.

Let's say you make an XMPP client library. The intended use is to be used in an application that the end user downloads, to talk over the XMPP network. It's possible that this library could be used on a server though, so maybe you decide to license the library as AGPL. Now all clients that use this library must also be under the AGPL.

If I'm chatting with you over XMPP, and I'm using a client under the AGPL that I've made some modifications to, I believe that I'm required under the terms of the AGPL to distribute the source, including my modifications, to the people I chat with and request it. Even though people I'm chatting with aren't really "doing their computing" using my client, they are just sending messages that show up in my client.

I like the AGPL a lot. I've put code I've written under it, and recommended it to friends of mine for code they've written. I don't think it's a "one size fits all" license though.

@sindastra @robby @jwildeboer have you heard of SaaS? It just means the end user doesn't own/operate the machine that executes the program.

Usually this happens over a web interface of some sort.

@benjaminpaikjones @robby @jwildeboer Yeah, software as a service, in common tongue it's just called "cloud". But I was confused about "code as a service". But it was clarified that it's the resulting software/service that's meant and not actually the code. It was a misunderstanding of wording.

@jwildeboer I can confirm that it's basically the default at non-floss companies to go "For a GPL you can use it if Legal says it's okay and there's no permissive alternative. For AGPL forget about it"

@jwildeboer Feature, not a bug. Everything I write is AGPL or GPLv3.

> Do not install AGPL-licensed programs on your workstation, Google-issued laptop, or Google-issued phone without explicit authorization from the Open Source Programs Office.


@inexcode @jwildeboer oh boy, that's even better!

This is a *very* good reason to license even desktop and CLI tools udner #AGPL.

@jwildeboer That's really cool ๐Ÿ˜Ž My code is AGPL licensed.

@jwildeboer You know, when Google says it could cause legal problems for them I'd more blame how integrated they say their code is rather than the AGPL...

@MicroCheapFx No. AGPL was specifically created to fix the loophole in GPL when it comes to hosted services, SaaS setups.

Well worth knowing, thank you for sharing.
Wonder what would happen if the Linux kernel was licenced this way? Umm...

The real question most people might need to get answered is, what can and can't others do with that license? Curious about that loophole @Jan Wildeboer. Not sure about who I am answering since you seem to have several accounts :-)

@jwildeboer hmm, that reminds me, I need to check the permitted OSS licenses for Intel. Though we are heavily contributors to free software, much of what we do are trade secret stuff.

@jwildeboer my own company does not want anything to do with GPL or AGPL

Sign in to participate in the conversation

Mastodon instance for people with Wildeboer as their last name