Open Source Software License 101

Are you using open-source software? Are you aware of what right are you given to use that software? Are you publishing open-soft software yourself? This post is a 101 guide towards popular OSS licenses to give you an idea of what they are and how are they different. What you need to be aware of when using them.

This blog post is not legal advice and if you have any concerns, please consult a legal professional for advice

Copyleft and Permissive Licenses

Most open-source licenses can be put into 2 main categories, copyleft and permissive Licenses. To put it shortly, copyleft licenses are more restrictive and any software based on any GPL component must be released as open source. On the other hand, permissive licenses provide more freedom and permit proprietary derivative works with almost no restriction.

OSI Approved Licenses

There are a lot of licenses out there in the world and sometimes it is hard for developers, who are not legal experts, to judge which ones are considered “open-source” and “good to use”. The Open Source Initiative (OSI) put together a list of approved licenses. I would suggest choosing a license for your project from their list (there are more than 80 of them), especially choosing the ones that are popular and with a strong community.

To further help you to pick and get a basic understanding of the popular licenses, we put a list here. You can use it as a base and look into more information if any of the ones below look like what you want or if you are using anyone of them.

The MIT License

  • category: permissive

The MIT License, as the name suggested, it was created at the Massachusetts Institute of Technology in the late ‘80s. It is one of the most popular and permissive free software licenses. You can do whatever you want as long as you add a copy of the original MIT license and copyright notice to it.

Apache License

  • category: permissive

Just like the name suggested, this license is released by the Apache Software Foundation (ASF). It’s popular and is backed by a strong community. The Apache License allows you to freely use, modify, and distribute any Apache-licensed product. However, you’re required to follow the terms of the Apache License.

BSD License

  • category: permissive

Nowadays, BSD Licenses are mainly used as two variants from the original – the Modified BSD License (3-clause), and the Simplified BSD License/FreeBSD License (2-clause). They are both permissive free software licenses.

The BSD License lets you modify and distribute your software’s code in the source or binary format freely as long as you retain a copy of the copyright notice, list of conditions, and disclaimer.

Eclipse Public License

  • category: semi-permissive (copyleft)

As you can guess, this is a license developed by the Eclipse Foundation. If you modify a component under this license and distribute it in the source code form as part of your program, you must disclose the modified code under the EPL. If you distribute such a program in its object code form, you must state that the source code can be made available upon request, and you must explain how to request the source code.

If you redistribute a program with an EPL component, you must include the full license text and the copyrights.

The EPL protects the author of the software from possible lawsuits or damages caused if a company uses their component in a commercial product. It also offers a patent grant.

Mozilla Public License

  • category: semi-permissive (copyleft)

The Mozilla Public License is maintained by the Mozilla project. It is sitting between the Apache license, which does not require modifications to be shared, and the GNU family of licenses, which requires modifications to be shared under a much broader set of circumstances than the MPL.

The MPL’s “file-level” copyleft is designed to encourage contributors to share modifications they make to your code, while still allowing them to combine the original code with code under other licenses (open or proprietary) with minimal restrictions.

Common Development and Distribution License

  • category: semi-permissive

CDDL is an open-source license published by Oracle. You’re free to reproduce and distribute any original or derivative works of any software licensed under the CDDL. However, you must not remove or make any changes to any copyright, patent, or trademark notices contained in the software. You must also retain any notices of licensing or any descriptive text that attributes any contributor or the initial developer.

When you distribute your software in an executable form (i.e. any form other than source code), you must make the source code available under the CDDL. This source code should include your contributions if they in some way modify the contents of a file containing the original software, or new files that contain parts of the original program. The executable form may be released under the CDDL or any CDDL compatible licenses.

If your modifications are in separate and independent files that do not contain the original code, you do not have to release it under the CDDL. Furthermore, you must include a copy of the CDDL with any source code that you distribute. For each modification that you make, you must identify yourself as the modifier by including a notice in your modified files.

GNU (Lesser) General Public Licenses

  • category: copyleft

The GNU’s General Public License is a copyleft license. This means that any software based on any GPL component must be released as open source. It does have a strong community and is quite popular among open-source licenses.

Last thought

Choosing and understanding licenses is not easy, luckily there are communities out there to help individual developers. On top of the restriction with licenses, there are extra government regulations (like the EU Cyber Resilience Act) that in putting in extra complications on the responsibility of distributing open-source software. This blog is just covering the basics about OSS licenses, if you are working for a company/ client and are in doubt, please consult legal professionals like company lawyers.


Cover Photo by Clarisse Meyer on Unsplash

After having a career as a Data Scientist and Developer Advocate, Cheuk dedicated her work to the open-source community. She has co-founded Humble Data, a beginner Python workshop that has been happening around the world. She has served the EuroPython Society board for two years and is now a fellow and director of the Python Software Foundation.