Why GPL violations are bad - Gary explains

The Perils of Open Source: A License to Use and Abuse

As we navigate the vast expanse of open source software, it's essential to acknowledge the role that licenses play in shaping our interactions with this type of code. The fact is, some of my own work has been influenced by the eyes of someone else, literally - their pages and pages of handwritten notes, but the point remains that permissive licenses like BSD allow users to do whatever they please with the software, including mixing it with proprietary code without consequence.

One such license worth mentioning is the Apache 2.0 license, which has become the standard for most Android open source products. This permissive license grants users a worldwide royalty-free right to use the software, essentially allowing companies like Samsung and LG to take the Android source code and produce their own version of Android without fear of reprisal. Google intentionally chose this license for Android because it provides flexibility and freedom for developers.

However, not all open source licenses are created equal. The Linux kernel, which runs at the heart of Android, is licensed under the General Public License (GPL). This means that any company using Android with Linux has to publish their changes under the same GPL license, creating a social contract between the contributors and users of the software. Breaking this contract can have severe consequences, as it not only violates the terms of the license but also erodes the trust and community that makes open source possible.

The role of the kernel in Android cannot be overstated. It serves as an interface between the hardware and the rest of the framework, providing a critical layer of functionality that enables the various components of the operating system to communicate with each other. As I mentioned earlier, I have a video all about kernels, which I highly recommend watching for a deeper understanding of this complex topic.

But what happens when companies ship Android handsets without publishing their changes to the Linux kernel? This is known as a GPL violator, and it's a serious breach of trust between the developers who contributed to the software and the users who benefit from its use. It's a reminder that open source licenses are not just about granting permission to use someone else's code but also about creating a social contract that requires reciprocity and respect.

As I often say, "companies have stood on the shoulders of giants" - people who have spent years developing software in their own free time because they wanted to make it available to others. When an OEM comes along and starts selling Android-based handsets without contributing back to the community, they're not just breaking a legal contract; they're also eroding the very fabric of society. This is not just about open source licenses; it's about ethics, morality, and respect for the contributions of others.

In conclusion, open source software is built on the foundation of permissive licenses that allow users to do whatever they please with the code. However, this freedom comes with a price - the need for reciprocity and respect between developers and users. Companies like Samsung and LG are free to use Android as they see fit because they've accepted the terms of the Apache 2.0 license, which grants them permission to modify and distribute the software without consequence. But when it comes to the Linux kernel, the rules change, and companies that fail to respect the GPL contract risk being labeled as GPL violators.

As someone who has written code using their eyes ribbon and pages of notes, I believe it's essential to acknowledge the role of licenses in shaping our interactions with open source software. Whether it's the permissive nature of Apache 2.0 or the restrictive requirements of the GPL, understanding these licenses is crucial for building trust and creating a healthy community around open source projects.