When you are writing a License Agreement for open source software, there are particular clauses that you need to include. These clauses should cover, for example, definitions, the scope of the license, redistribution and modification terms, warranties, and limitations of liability.
We'll take a look at each of these clauses with some examples of each one, so you can see the most important clauses your License Agreement should contain.
Definitions of Terms Used in the Open Source License Agreements
Any Licence Agreement for open source software should have a definitions clause.
This clause makes sure the terms used in the agreement are clear to anyone reading it or agreeing to it. This reduces the likelihood of misunderstandings or legal liabilities arising from potentially confusing terms.
Here's an example from the GNU General Public License (GPL), one of the most common open source licenses:
You can see that all the relevant words for the license are clearly defined and explained, so that readers can understand what key terms refer to.
Here's another example from the Apache 2.0 License:
Each license defines things slightly differently. In this example from the Common Development and Distribution License 1.0, there are more definitions because the license is slightly more complex:
However you write your open source License Agreement, make sure that you have a definitions section with key terms.
Scope of the License
For any open source License Agreement you'll also need a clause stating the scope of the license.
This should cover what rights users have to the software, e.g to use it, share it, display it, sublicense it, copy it, modify it, etc., as well as what conditions apply, if any. The clause should also cover the terms of the license itself, e.g. irrevocable, worldwide or geographically limited, exclusive or non-exclusive.
Here's one example in which a copyright license and a patent license are granted, from Apache 2.0. You can see they are both perpetual, worldwide, non-exclusive, no-charge, royalty-free and irrevocable, and allow users to do many different things with the software:
The Apache 2.0 license is a popular "permissive" type of open source license, meaning that the rights offered under the license are quite broad. This can be a good example if you want to provide open source software that is very easy to share, use, modify and redistribute, without many restrictions.
Another example of a permissive license is the MIT License, which is one of the most popular for its broad and uncomplicated scope. You can see this in the example below:
Other types of licenses like the GNU GPL are less permissive, putting some restrictions on modifications and additional versions of software. We'll look at this under the Modifications section below.
Redistribution Terms
Redistribution terms are those that cover the further redistribution of your software, i.e. if you license it to someone and they want to share it further, you can decide if there are any additional rules that apply.
Here's an example of redistribution terms from the Apache 2.0 License:
In this case, the clause requires for redistribution of the software that distributors have to:
- Provide a copy of the license
- Provide a notice on any modified files stating that they have been modified
- Retain, in the source code, copyright, patent, trademark, and attribution notices
Distributors are also allowed to add their own copyright notices to their modifications under different license terms. The use of clauses like this allows a lot of flexibility for software to be shared and also modified.
Another example comes from the 3-Clause BSD License:
In this clause you can see that redistribution is only permitted if the source code or binary also contains:
- The copyright notice from the original software code (which states "Copyright <YEAR> <COPYRIGHT HOLDER>")
- List of conditions (the three clauses as above)
- The disclaimer (clause 3)
Other than these terms, there are no restrictions on redistribution or modifications. These redistribution terms are, in this case, also the scope of the license.
If you want to write a simple License Agreement, including redistribution terms and a clear scope, this is a good approach to keep things uncomplicated.
Modifications of the Software
Similar to redistribution terms, most open source license agreements allow modifications of the software without any restrictions.
If your software is likely to be modified, and you want to place some terms around it instead of leaving it completely open, you can include a modifications clause that tells users what they have to do if they modify the software.
This example from the GNU GPL outlines some conditions required:
You can see that those modifying the software have to:
- Include a notice saying the software has been modified, with a date
- Include a notice saying that the software is released under the GNU GPL License
- License the entire new (modified) work under the GNU GPL License
- Include legal notices if there are interactive user interfaces
Licenses such as the GNU GPL above are known as "copyleft" open source licenses, because they are restrictive in some ways: they require that modifications of the software have the same license applied.
Here's another example from the Mozilla Public License 2.0 that explains how the license works when the original software is combined with other software or works that have different licenses:
If you want to make sure that the terms of your license are preserved, even when the software is combined with other things covered by other licenses, you'll need to include a clause like this.
Warranty Disclaimer
A disclaimer of warranty clause ensures that you are not giving any warranties for your software, i.e. not claiming that it will perform in any given way, or necessarily even function correctly.
Here's an example from the GNU GPL, in which you can see that no warranty for software is given:
Note that in the clause it states "no warranty" is given, and that the software is provided "as is." This means that the user cannot expect the software to behave perfectly or even at all. It also states that any risks related to quality and performance remain with the software user.
Clauses like this protect you from liability and from having software users claim that it should have performed in a particular way that it failed to achieve.
Here's another example from the Common Development and Distribution License 1.0:
Here you can see explicitly that no warranties are given that the software is free of defects, merchantable, fit for purpose, or even that the software is non-infringing of someone else's work.
When you draft a clause like this, you can either leave it more general, like in the GNU GPL example, or be more specific like in the CDDL example, about what things you are not giving warranties for. Either way, it protects you from liability.
Limitation of Liability
A limitation of liability clause makes sure that users know that if there is a problem with the software, or it causes damage (e.g. they lose files or data because of it), that you are not liable for these consequences. When you are offering free and open source software, these types of clauses ensure you don't have to pay money to users for any problems.
In the example below, from GNU GPL, you can see that in "no event" will anyone be liable for damages, including "general, special, incidental, or consequential damages." You can see that the clause specifically mentions the loss of data or data being "rendered inaccurate" because of the software:
In this next example below, from the MIT License, you can see they have combined their warranty and limitation of liability into one clause.
If you want to draft a short, to-the-point license agreement, models like the MIT License and the 3-Clause BSD License can be good examples for this approach.
The 3-Clause BSD License has a combined warranty and limitation of liability clause, as you can see below:
Summary
Open source licenses vary widely, from the extremely brief MIT License with just a short statement, to the more comprehensive GNU GPL License with 17 different clauses. When you want to draft an open source License Agreement to distribute your software, it's up to you how complex or simple you make it.
However, important clauses like a warranty clause and limitation of liability are contained in almost every license, and offering additional clarity through a scope clause, redistribution and modification clauses, as well as a definition clause, can ensure that your software is shared and used in ways that you are happy with.
Comprehensive compliance starts with a Privacy Policy.
Comply with the law with our agreements, policies, and consent banners. Everything is included.