When you create software that you want to share, or you use a product that you want to adapt, questions about what is and is not legal pop up. Even programs that have an open source license aren’t free-for-alls. If you don’t know the specifics of what the license allows, you could get into legal hot water. Knowing your limits – or if there are any – gives you the freedom to use and share software with confidence.
What Are Open Source Licenses?
Open source licenses follow the Open Source Definition. That says that the software or product – its blueprint, design and/or source code – can be used, modified and/or shared however the user wants. In layman’s terms, the user can customize the product to suit their needs and then share that product with others.
The conditions of how to share it vary, though – open source licenses are not limitless. Stipulations include retaining the authors’ names and redistributing derivatives with the same license. Also, if the license permits modification or redistribution of the product for only non-commercial purposes, it’s not open source.
An open source license is a legally binding contract between the author of the software and the user. Software that’s publicly posted and available for free is not automatically open source. The license makes it officially open source. A lot of open source software is free, but that doesn’t mean that being free is a requirement or guarantee of open source software.
Two Main Types of Open Source Licenses: Copyleft vs. Permissive
Copyleft and permissive are the two primary categories of open source licenses. Those aren’t names of actual open source licenses, but they’re categories that specific licenses fall into.
Copyleft Open Source Licenses
Copyleft is a type of open source license that requires the user to apply the same license to their version of the product. That means that if the user modifies and shares the software, he has to maintain the open source license.
Permissive Open Source Licenses
Permissive open source licenses are as flexible as they come. They’re not copyleft licenses, so the user isn’t required to keep their version of the product open source. They usually have few restrictions; users can create proprietary derivative works without having to meet many obligations.
The Most Common Types of Open Source Licenses
There are a lot of different kinds of open source licenses that authors and companies can choose from. Let’s go over the most popular ones.
The Apache License is an open source license by the Apache Software Foundation. Under the license, you can use, modify or distribute any Apache-licensed product.
There have been two main changes made to the Apache License. In 2000, the original advertising clause was removed. Now, if there are advertising materials created for a derivative work, they don’t have to include attribution to the Apache License – though attribution does have to remain in the documentation. In 2004, another update to the license allowed for patent rights.
Berkeley Software Distribution (BSD)
There are two types of BSD licenses:
Each BSD license gives permission to modify and distribute software code, source or binary. However, you must retain a copy of the conditions, copyright notice and disclaimer.
The original BSD license had four clauses, including advertising and non-endorsement clauses. The modified 3-clause license does not include the advertising clause. The simplified/free 2-clause license does not have the non-endorsement clause.
Common Development and Distribution License (CDDL)
The CDDL is an open source license created by Sun Microsystems (acquired by Oracle). The current CDDL is version 2, and it’s a spin on the Mozilla Public License. It also replaced the Sun Public License, which came with free and open source Sun products until 2004.
Under the CDDL, you can reproduce and distribute original or derivative works of licensed software. You cannot make changes to or remove any notices about copyright, patent or trademark, though. Additionally, the user must retain notices or text with attribution to contributors or developers.
If you distribute the software in an executable form, meaning a form that’s not the source code, you have to make the source code available. You can release the executable form under the CDDL or a CDDL-compatible license. You’re required to release the source code for your contributions if they meet one or both of the following guidelines:
- They’re additions to, modifications of or deletions from the original software.
- They’re new files that include parts of the original product.
When you release source code, you have to include a copy of the CDDL. Furthermore, for every modification you make, you have to include a notice in the modified files that you’re the modifier. If you made additions in separate, independent files that don’t have any of the original code, you don’t have to release it with a CDDL.
Eclipse Public License (EPL)
The Eclipse Public License is a copyleft, open source license from the Eclipse Foundation. The EPL’s aim is to protect authors from getting into legal trouble if a company uses their component in a commercial product. The license also offers a patent grant.
If you modify an EPL component and distribute it as source code, you have to disclose the modified code. If you distribute your product in object code form, you have to clarify that you’ll deliver the source code upon request. You also have to clarify how to request the source code. When you redistribute a program that includes part of an EPL-licensed product, you have to include the full copyright and license text.
The EPL also says that interfacing or interoperating with a plugin does not automatically make it a derivative work. To put it simply, unless you’re actually modifying part of the plugin, it’s not a derivative work.
GNU General Public License (GPL)
The GPL is the most popular open source license (WordPress plugins and themes must have this license). It’s a copyleft license, so any software that uses any GPL component has to be open source, even if just a tiny percentage of the code is in the modified code.
Software can be used and modified anywhere without almost any restrictions, whether you’re using it in a private or commercial way. There are restrictions if you distribute outside your own organization, though. In this case, you must distribute the full source code, as well as the same license terms as the original software.
If the new product contains just part of the GPL software, do you have to distribute the full source code? Maybe. According to GPL, all derivative works have to be licensed under the complete licensing terms. However, if you distribute the GPL software alongside a proprietary system and they’re two separate works – meaning they don’t share data structures and they run in separate processes – then you may not have to release the source code for all of the software.
GNU Lesser General Public License (LGPL)
Under the LGPL – which is a weaker version of the GPL – products licensed can be linked to proprietary applications. The proprietary code may still be able to remain proprietary, depending on if the programs are dynamically or statically linked. This license often accompanies free software, allowing it to be incorporated into either free or proprietary software. You’re not required to open up the source code for your own extensions.
Microsoft Public License (Ms-PL)
The Ms-PL is a free, open source software license from Microsoft, and it accompanies Microsoft’s own open source projects.
Users can create and distribute original or derivative works of software, but you can’t use the contributor’s name, logo or trademark. The Ms-PL requires retention of original attribution, copyright, patent and trademark notices. Also, if the code doesn’t work in a derivative work, the author is not liable – there are no guarantees or warranties regarding code performance.
When you distribute a product under the Ms-PL, you’re not obligated to distribute the source code, though you can if you want to. If you opt to distribute the source code – or even a portion of the source code – you have to include a complete copy of the Ms-PL license.
Here’s where it gets trickier: if you distribute any part of the software in compiled or object code form, the license you choose must comply with the Ms-PL.
Source Code vs. Object Code
A programmer writes source code. It’s a text-based document (or file) that’s written in a language that’s readable by humans, and the file is in a programming language. Machines can’t actually read source code as it’s written, though.
To make it machine-readable, the machine has to compile the source code language into machine-executable code – i.e., object code. Object code is written as binary digits, and the process of generating binary code is “compilation.” While source code is not system-specific, object code is. The source code may be the same across different systems, but each machine may compile it into different object code.
When it comes to licensing object code with the Ms-PL, here’s what you need to know: you can set your own terms, but they cannot give recipients more rights than the Ms-PL license. They can grant fewer rights, though.
Massachusetts Institute of Technology (MIT) License
The MIT license is one of the most flexible open source licenses out there, and it grants all the end-user rights you’d expect from an open source license: copying, distributing, merging, modifying, etc. It’s mostly known for what it doesn’t include, specifically an advertising clause. Also, it allows the copyright owner’s name in promotional content.
You can pretty much do whatever your heart desires with a product under this license. However, the copyright year and holder information have to be in the license for your derivative.
Mozilla Public License 2.0
The Mozilla Public License 2.0 is a copyleft license. Contributors can share modifications made to code. They can also combine code with code under other open or proprietary licenses.
If you want to use MPL software for any purpose and distribute it within your organization, you don’t have to do anything special. If you want to modify MPL source code and distribute your derivative work outside of your organization, you have to:
- Tell recipients that the source code (including source code for modifications) is available to them according to the MPL.
- Afford MPL grants to recipients, meaning that they have a non-exclusive, royalty-free license to use, modify, display, reproduce, distribute, etc.
- Respect restrictions on removing or altering notices in the source code. You can’t remove or change license notices about copyright, patents, warranties or liability.
Final Thoughts About Open Source Licenses
Choosing an open source license for your product or software isn’t as straightforward as you may want it to be. If you don’t care who does what with your product, you can go with one of the super-flexible licenses, like the MIT license. Otherwise, you’ll want to speak with a professional, whether that’s an experienced developer or a lawyer, to discuss what you have, what you want and which license matches best. Knowing the basics beforehand, though, particularly the terminology and the common licenses that you’re bound to cover, will help you start out on the right foot.
Check out our roundup of the 13 best open-source software apps for web professionals.