DEV Community


Posted on

Explain GPLv2 License like I am five

Top comments (5)

guyzmo profile image
zmo • Edited

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.

genichm profile image

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?

guyzmo profile image

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.

Thread Thread
jabowery profile image
James Bowery

Edit this passage so it is a sentence:

" when has been invented the 'Cake as a Service', it's a service to throw cakes in your face."

admi_t profile image

a programmer recently told me that if you change 20% of the code in an app software, you can claim the app as your own? With your explanation above, this kind of makes what he says true...

If you eat "someone else's cake" and look at the recipe and then add to the recipe and create your own recipe book and sell the recipe book all around the world (like what others (major celebs) have done...) or make this cake and sell it to others, you are claiming it's your product and you are making money off of it...

So following this sound logic, i.e. it happens presently every day at the moment, a generally accepted this programmer right?

If you change or add 20% or more of the foundation code.... you can sell it as your own and make money for yourself and register it as your own creation, you do not have to share it with the original creator (you can if you want to, but legally you are not required to?)

Please share with us your thoughts on this?