markdown guide
 

Let's talk about cakes. 🍰

If you eat a cake that's GPLv2 licensed, then it guarantees you the following:

  • freedom of knowing how it's made, basically it's access to the recipe,
  • freedom of preparing it yourself, and once prepared eat it,
  • freedom of modifying it, because you thought you could add some lemon zest to make it taste better,
  • freedom of sharing it, whether it's the original version, or your modified version.

And whenever somebody eats a cake made with that recipe, or with any modification based on that recipe, he's guaranteed to have that same freedoms.

But the limitation of that, it's when has been invented the 'Cake as a Service', it's a service to throw cakes in your face. You get to smell the cake, see the cake, get covered by the cake. But you don't get to actually eat the cake, so you have no right to claim any of the above freedoms.

So what to remember about this?

The GPL is a license which ensures that when you can enjoy one freedom about a given software, you can enjoy all four freedoms.

It's also called a viral license, because if you modify and/or share the software, it shall stay licensed the same way, also because if it's used within a larger software, that whole software shall provide the same freedoms.

To stay with the cake, if the GPL cake is part of a bigger cake, that cake shall ensure the same freedoms to the user with a similar compatible license.

 

Thanks for the explanation, I did't completely understand limitations of usage in SAAS systems. If I use some component that is GPLv2 inside of API that is exposed to external usage does some limitations apply on the API?

 

Well, it's the 'Cake as a Service' example.

The limitation of GPLv2, is that it states that whoever has one freedom β€” like the ability to run the code, they'll have all four freedoms.

But when it comes to SaaS, the loophole is that users of a SaaS don't run the code. It's whoever owns the servers that's running it, only offering an 'API' (that includes the web, as it is some sort of weird, complex, shiny, blinking human facing API).

This is why we had the AGPL (Affero GPL) which closes the loophole, and whenever you're a user of a service, but not the user running the service, then you must be provided access of the source code of said service.

The GPLv3 is an improvement of many aspects of the GPLv2 (making a case against DRM, software patents…), which is what the AGPL is based on.

Classic DEV Post from May 25

TypeScript monorepo for React project

What problems to expect from TypeScript monorepo for React project?

genichm profile image
Hands-on Software Architect and Technical Lead of SAAS team.