Skip to content

The GPL License

New Course Coming Soon:

Get Really Good at Git

A quick overview of the GPL License

As a developer, you are likely to use a LOT of libraries and software licensed as GPL.

In this post I want to give a high level overview of this license, telling you what you can do with GPL software, what you can’t do with GPL software, and what you must do when you rely on it.

The GPL is, historically, at the core of Open Source software. It was originally created by Richard Stallman in 1989 to be used within the GNU Project, a free software version of the UNIX Operating System, which was proprietary.

Since its introduction, GNU had a tremendous impact on our industry. Servers and computers which we say run “Linux” actually run a GNU/Linux system. Linux is the kernel (the “core”), and a big part of what’s around the kernel is composed by software built under the GNU Project umbrella like Bash and the GNU C library. The full list of GNU packages is very long and includes gems you’ll likely use like wget, nano, gcc, gimp, emacs, gtk+, and many more.

Note: Android uses Linux as its kernel, but does not include GNU software, and includes proprietary software on top, which make it very different from the desktop GNU/Linux distributions. Plus, the Open Source parts of Android are licensed under the Apache 2.0 License, not GPL.

Note: this article talks about the latest version of the GPL license, v3. At the end you’ll find some key differences with GPL v2.

Advantages for producers of GPL v3 software

As a producer of software licensed as GPL v3, you cannot be hold liable for damages that occur while using your software.

You can add a warranty on the software if you want, but by default you cannot be hold liable.

Also, a great benefit is that software licensed as GPL cannot be re-licensed under a more permissive license.

Thing you must provide as a producer of GPL v3 software

As a GPL software producer, you must:

If you distribute the executable version of the software, you have to provide the source code of the software to anyone that requests it.

Also (GPL v3 only) if the software is part of a consumer device you must provide the installation instructions to allow anyone to modify the software, build a binary and reinstall it.

If you are redistributing a modified version of GPL software, you must also:

Advantages for users of GPL v3 software

As a user of GPL v3 software, you have lots of freedom:

  1. You can use GPL software for commercial purposes
  2. You can modify the software and create derivative work
  3. You can distribute the software and any derivative work you produce, without having to ask for permission or pay anyone

Plus, for GPL v3 only (not GPL v1 or v2), you are safe with any patent that is owned by contributors of the software you use (they give you a built-in right to use the software regardless of any patent they own, and they can’t sue you for using it)

Disadvantages for users of GPL v3 software

You cannot change the license of code you received as GPL. You can apply modifications to the software, but you can’t change the license to something else.

Once software is GPL-ed, it will always have that license attached.

Are you intimidated by Git? Can’t figure out merge vs rebase? Are you afraid of screwing up something any time you have to do something in Git? Do you rely on ChatGPT or random people’s answer on StackOverflow to fix your problems? Your coworkers are tired of explaining Git to you all the time? Git is something we all need to use, but few of us really master it. I created this course to improve your Git (and GitHub) knowledge at a radical level. A course that helps you feel less frustrated with Git. Launching Summer 2024. Join the waiting list!

Here is how can I help you: