Original post

Google is well-known for forbidding the use of software using the GNU Affero General Public License, commonly known as “AGPL”. Google is also well-known for being the subject of cargo-culting by fad startups. Unfortunately, this means that they are susceptible to what is ultimately anti-AGPL propaganda from Google, with little to no basis in fact.

Obligatory: I’m not a lawyer; this is for informational purposes only.

In truth, the terms of the AGPL are pretty easy to comply with. The basic obligations of the AGPL which set it apart from other licenses are as follows:

  • Any derivative works of AGPL-licensed software must also use the AGPL.
  • Any users of such software are entitled to the source code under the terms of the AGPL, including users accessing it over the network such as with their web browser or via an API or internet protocol.

If you’re using AGPL-licensed software like a database engine or my own AGPL-licensed works, and you haven’t made any changes to the source code, all you have to do is provide a link to the upstream source code somewhere, and if users ask for it, direct them there. If you have modified the software, you simply have to publish your modifications. The easiest way to do this is to send it as a patch upstream, but you could use something as simple as providing a tarball to your users.

The nuances are detailed and cover many edge cases to prevent abuse. But in general, just publish your modifications under the same AGPL terms and you’ll be good to go. The license is usually present in the source code as a COPYING or LICENSE file, so if you just tar up your modified source code and drop a link on your website, that’s good enough. If you want to go the extra mile and express your gratitude to the original software developers, consider submitting your changes for upstream inclusion. Generally, the feedback you’ll receive will help to make your changes better for your use-case, too; and submitting your work upstream will prevent your copy from diverging from upstream.

That’s pretty easy, right? I’m positive that your business has to deal with much more onerous contracts than the AGPL. Then why does Google make a fuss about it?

The Google page about the AGPL details inaccurate (but common) misconceptions about the obligations of the AGPL that don’t follow from the text. Google states that if, for example, Google Maps used PostGIS as its data store, and PostGIS used the AGPL, Google would be required to release the Google Maps code. This is not true. They would be required to release their PostGIS patches in this situation. AGPL does not extend the GPL in that it makes the Internet count as a form of linking which creates a derivative work, as Google implies, but rather that it makes anyone who uses the the software via the Internet entitled to its source code. It does not update the “what counts as a ‘derivative work’” algorithm, so to speak — it updates the “what counts as ‘distributing’ the software” algorithm.

The reason they spread these misconceptions is straightforward: they want to discourage people from using the AGPL, because they cannot productize such software effectively. Google wants to be able to incorporate FOSS software into their products and sell it to users without the obligation to release their derivative works. Google is an Internet company, and they offer Internet services. The original GPL doesn’t threaten their scheme because their software is accessed over the Internet, not distributed to end-users directly.

By discouraging the use of AGPL in the broader community, Google hopes to create a larger set of free- and open-source software that they can take for their own needs without any obligations to upstream. Ask yourself: why is documentation of internal-facing decisions like what software licenses to use being published in a public place? The answer is straightforward: to influence the public. This is propaganda.

There’s a bizarre idea that software companies which eschew the AGPL in favor of something like MIT are doing so specifically because they want companies “like Google” to pay for their software, and they know that they have no chance if they use AGPL. In truth, Google was never going to buy your software. If you don’t use the AGPL, they’re just going to take your software and give nothing back. If you do use the AGPL, they’re just going to develop a solution in-house. There’s no outcome where Google pays you.

Don’t be afraid to use the AGPL, and don’t be afraid to use software which uses the AGPL. The obligations are not especially onerous or difficult, despite what Google would have you believe. The license isn’t that long — read it and see for yourself.

Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~sircmpwn/public-inbox@lists.sr.ht [mailing list etiquette]

Are you a free software maintainer who is struggling with stress, demanding users, overwork, or any other social problems in the course of your work? Please email me — I know how you feel, and I can lend a sympathetic ear and share some veteran advice.

Articles from blogs I follow around the net

Status update, July 2020

Hi all! It’s time for another monthly status update. Yesterday I’ve released wlroots 0.11.0 and Sway 1.5! This is a pretty big release, with lots of new features and bug fixes. New features include headless outputs that can be created on-the-fly (one use-cas…

via emersion July 21, 2020

Sourcehut Q2 2020 Financial report

In summary, SourceHut is financially healthy. Our revenue continues to grow and we are profitable and becoming more so. We have also been able to re-invest some of our profits into the broader free software and free culture community. Disclaimer: this report…

via Blogs on Sourcehut July 17, 2020

Keeping Your Modules Compatible

Introduction This post is part 5 in a series. Part 1 — Using Go Modules Part 2 — Migrating To Go Modules Part 3 — Publishing Go Modules Part 4 — Go Modules: v2 and Beyond Part 5 — Keeping Your Modules Compatible (this post) Your modules will ev…

via The Go Programming Language Blog July 7, 2020

Generated by openring