Understanding Open Source Licenses, Rock Climbers' Edition
Twenty-eight years ago, Lynn Hill became the first person to free climb the Nose in Yosemite. When this happened, a no less remarkable milestone occurred in the open source community. With help from a decentralized group of collaborators, a university student from Finland, Linus Torvalds, published version 1.0 of Linux under GNU GPL license (pronounced ‘guh noo’ GPL). GNU GPL was a new and unusual software license unlike any others at the time. The license permits users to modify and share the source code, and also requires users to pass on those same rights to the next users.
Today you can even hop on a Zoom meeting at the crag, and later update your friends about sending (or not sending) your project on Instagram. Many of the apps we rely on daily utilize other open source programs to function. For example, React.js, the underlying tool that Facebook and many leading tech companies use to build apps like Instagram, is available for anyone to use under MIT license.
What exactly is an open source license? What are the main differences between popular licenses such as GPL and MIT? In this post I will delve into some of the fundamental concepts of open source licenses.
The Importance of Source Code
Imagine you’re buying chocolate chip cookies from a local pastry shop. Some of us might like to know how the cookie was made, which ingredients to use, and the correct temperature to use so that we can bake them at home. While we may be able to make an educated guess from the ready-to-consume product, it’s difficult to do so without having access to the recipe. Once we have the recipe, we can bake our own and even adjust the recipe to our taste, for example, making ours crunchier and more chocolatey. We can also give the new recipe variation to friends who share similar preferences.
A program source code is no different than a cookie recipe. It allows us to understand how a program is constructed so that if we’d like, we can assemble our own. Linux by far is one of the most prolific open source projects with over 28 million lines of code in 69,325 files and an army of 4,000 contributors per year (source). For thirty years, the GNU GPL license has enabled users access to the source code and permission to remix original source with new changes; it's also catalyzed vibrant communities of tech companies and individual coders who lend their time and expertise to improve the software.
Permissive and Copyleft
Open Source software is a software that can be freely accessed, used, changed, and shared (in modified or unmodified form) by anyone.
A license typically specifies what users can and cannot do with a computer program. The Open Source Initiative, a nonprofit educational organization, defines open source software as “a software that can be freely accessed, used, changed, and shared (in modified or unmodified form) by anyone”. In general, open source licenses that meet such requirements fall under two main categories: permissive and copyleft.
As the name implies, permissive licenses have few restrictions. Informally speaking, it’s another way for the author to say, “here take my code, do whatever you want with it and don’t sue me.” At the very least, you are required to include unmodified text of the original license when you distribute the software. You may mix permissive licensed code with your own code and publish the final software with a more restrictive or proprietary license. In such cases, you are not even required to publish the source code. Some permissive licenses have strange stipulations, such as the Beerware license, which asks you to treat the author to a beer if you ever meet them in person.
Popular permissive licenses: MIT, BSD and Apache.
Notable software using MIT: Ruby on Rails, Reactjs, and Ghost blogging platform.
Like permissive licenses, copyleft licenses also grant you the freedom to use (for personal or commercial purposes), modify, and distribute the source code. What sets it apart from permissive licenses is the additional reciprocal or “pay-it-forward” requirement. If you take copyleft licensed source code and make additional improvements or mix with your own code and later release (or sell) the software to the public, you must release your software under the same copyleft license, and publish the source code. The reciprocal philosophy ensures the source code continues to stay as open as it was when you received it.
Popular copyleft license: GNU GPL.
Notable software using GPL: Audacity, Wordpress, MySQL, Linux kernel.
Climbing and Open Source
While there is no source code involved in sending a route or a boulder, you can certainly find the spirit of creativity and collaboration in many aspects of climbing as you would in open source. Route development is a creative process and a form of self-expression. Climbers also have a strong tradition of sharing “beta”, passing on knowledge from one generation to the next. Open source projects such as OpenBeta are humble attempts to make climbing route data more accessible in the digital age.
At OpenBeta, we adopt Open Source Initiative-approved licenses for all of our projects. Complete applications such as the Climbing route catalog and the GraphQL API are published under Affero GPL. Tools and libraries are available under MIT or Apache 2.0. We are currently collaborating with an experienced Intellectual Property lawyer and will soon release the climber-contributed dataset under Creative Commons public domain (CC0), a permissive license.
It’s worth noting that since data about climbing routes are not source code, we follow a common practice to license the data under a CreativeCommons license. The concept of permissive and copyleft still holds true.
Like protein chains in living organisms, open source software are vital building blocks in our digital society, from apps running on mobile phones to the SpaceX Falcon 9's onboard computer. Permissive licensed programs rely on goodwill and altruism from users. An individual or a corporation that benefits from an open source project may choose to contribute back to the original project. On the other hand, copyleft licenses such as GNU GPL leave nothing to chance. The reciprocal obligation is explicitly built into the license as the source is passed down from one user to the next.
Where can I learn more about open source licenses?
Open source FAQ from the Open Source Initiative
Celebrating 30 years of the Linux kernel and GPLv2 – A brief history and explanation of the famous GNU GPL license.
OpenBeta is a nonprofit initiative (501c3) that enables open access and innovative uses of data about rock climbing routes. You can help support the initiative by becoming a sustaining backer for as little as $3/month.