The good intentions of the Open Source Community

Marek Cermak
4 min readAug 26, 2018

--

About the GPL Cooperation Commitment

Chances are that if you are reading this article, you know what Open Source (OS) software and the whole mindset around it is. Open Source Initiative (OSI) has been around for about 20 years now. Yet it has been the last decade which steadily improved the position of Open Source thinking in today’s society. OS flourishes and fades along with communities involved and thrives on a simple yet powerful idea of collaboration. To me, being an open source developer and enthusiast, open source has played a major role in my life.

Make no mistake

It is not always rainbows and butterflies, though. OSI pledges ‘to promote and protect open source software, projects and communities’. Of course, great deal in this process is played out via software licensing. OS defines criteria which must be met if a software is about to be distributed. One might think: ‘Labeling a piece of software with an open source license should do the trick, right?’ Indeed, licensing guarantees author‘s integrity and specifies terms of re-distributions, among other things. So what’s the problem? Isn’t that all that’s needed? Not quite.

There are of course some caveats, there always are… The particular one I have in mind and to which this article is dedicated to arises with GPL licenses. The important part to realize here is that a license not only specifies the way source code can be used and distributed, it also specifies the way particular license is enforced in case of its violation and the ‘termination strategy’. Those licenses usually do not get along very well with other licenses, let alone business goals — referring to something what’s called ‘The Curse of GPL license’ — which in a nutshell means that every piece of software you build upon GPL license may only be licensed under GPL. Of course, GPL does not permit charging and fee for the source code itself.

You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

GPL-2.0, TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION, 2.b

Now, putting all pieces of software together maintaining license compatibility is not exactly a piece of cake. I can tell you, it can be pretty daunting. Believe it or not, even developers are humans and humans make mistakes. However, considering specifically GPLv2, there is no place for mistakes. Meaning, in case of (let’s suppose accidental) violation of these terms, what happens in case of strict GPLv2 license (that is, there is not specified that an older version can be applied as well), you are terminated. Just like that, no cure period, no chance for redemption, no mercy. Your program license is revoked and you may not distribute your program any longer. ‘Now that’s scary, let’s not use GPLv2 at all then…’, you say? No need for such drastic solutions as this is where GPL Cooperation Commitment strikes in.

Fair and predictable enforcement

The GPL Cooperation Commitment is a statement by GPLv2 and LGPLv2.x copyright holders and other supporters that gives licensees a fair chance to correct violations before their licenses are terminated. The way this is enforced is specified in GPLv3 which brings in some important changes.

However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

GPL-3.0, TERMS AND CONDITIONS, 8. Termination

That is a longer piece of quotation, so tldr is: you are given a chance to be cured and perhaps most importantly, you can pass this cure on! Even when using strict GPLv2, by signing the GPL Cooperation Commitment one makes a commitment to allow application of GPLv3 cure provisions to the GPLv2 licensed software, allowing for a termination period and a chance for an organization or a single developer to redeem.

The open source community should focus on building great things and encouraging others to participate.

Of course, the initiative does not target developers only, it applies to companies as well. According to the list of companies that already made the commitment, here is a not-so-randomly picked sample in alphabetical order: Amazon, Cisco Systems, Facebook, Google, IBM, Intel, Microsoft, Red Hat, SAP, and others... Support this idea by at least taking a look at the GPL Cooperation Commitment page and consider taking part in this initiative and making your commitment to Open Source.

I felt the obligation to share this piece of information and hopefully contribute to … you know, make the World a better place.

--

--

Marek Cermak
Marek Cermak

Written by Marek Cermak

Software Engineer, Investor and a student of Economy & Finance

No responses yet