Free and open source licenses are a source of widespread confusion. Many people think they're all alike. They think a license lets them use software with no conditions attached. Both of these notions are seriously mistaken, and some businesses have found themselves on the losing end of lawsuits as a result.
Even the term "open source" isn't universal. A lot of software is released as "free software," whose proponents vehemently insist isn't the same as open source. Understanding the differences lets you understand what you can do with the software. If you plan to release your own software for others to use without payment, it lets you decide which license is most appropriate.
The term FOSS (free and open source software) is often used to cover both. The "and" means it includes both kinds of software, not that all FOSS is both free and open source.
Certain features are common to all free and open source licenses.
- You have free access to the source code and should be able to build a working version of the software.
- You can run it without paying anyone.
- You can modify it for your own use.
- You can distribute your modified version. There may be restrictions on how you can do it.
- You can distribute software of your own creation which incorporates the code. Again, there may be restrictions.
Free software vs. open source
The difference between open source and free software comes into play when you distribute software based on FOSS code. The biggest proponent of free software is the Free Software Foundation, which has published several widely used licenses. They're called GNU licenses, after the GNU family of software products. The GNU General Public License (GPL) is the archetype for free software licenses.
The key point of the GPL is that it's "sticky." If you use GPL-licensed software in a modified form or incorporate it into your product, you have to make it available under the same terms. You can sell the software, but you also have to make its source code freely available. Free software advocates call granting rights this way "copyleft."
Open source licenses generally don't impose this restriction. They may place other requirements on the code, such as clearly identifying modified versions.
Patent and trademark issues
Any kind of software can encounter difficulty with patent and trademark claims, and FOSS isn't exempt. Patent holders may demand license fees, making it effectively impossible to distribute software free of charge. Figuring out what patents might apply to a piece of software would require an exhaustive search of patent databases. Even then, it may take a court decision to determine whether a patent is valid and applicable.
For this reason, creators of FOSS can't guarantee that their code is free of patent encumbrances. If a patent holder makes a claim, they may not be in a position to fight it in court. They may have written the code in their spare time and have no financial resources for defending it. If a court rules in favor of the claim, everyone using the software commercially may have to pay a big license fee or stop using it.
People who distribute software need to be concerned about trademarks, especially if their product works with a commercial product. An example of this would be a plugin for WordPress. It's necessary to explain that the product works with WordPress, but expressing it in the wrong way can result in a cease and desist order. The product's name, for example, can't include "WordPress." This normally doesn't cause problems for users of the software, but a violation could lead to withdrawing the code or abruptly changing its name.
Being free or open source doesn't mean that software is unsupported. Many businesses make their money by giving away the software and charging for support. This lets users try out the software and then decide if paying for help is worth it to them.
Many licenses are available, and each one has different benefits and drawbacks, depending on the developer's purpose. These are some of the best known.
Open source licenses
- MIT License: A very brief open source license that doesn't require an MIT degree to understand it. The only requirement is to include the license and copyright notice when distributing copies.
- BSD License: A short, simple set of licenses. The two-clause license is nearly equivalent to the MIT License, except that it requires distributing the license with any copies. The three-clause license adds a restriction on using the licensor's name for publicity.
- Creative Commons licenses: A family of licenses placing different restrictions. Software creators can choose the conditions they prefer for attribution, commercial use, and modification. There is even a license which places the work in the public domain. These licenses aren't specifically intended for software and are often used with other creative works.
- Apache License: A widely used open source license from the Apache Software Foundation. It licenses patents to the extent possible, requires notice of any modifications that are distributed, and includes various legal disclaimers.
Free software licenses
- GNU General Public License: As already discussed, the best known of the free software licenses. It requires publication of the source code and extends to any published software which includes GNU-licensed code.
- GNU Lesser General Public License: A variant of the GPL which doesn't extend its requirements to software that incorporates it. The Free Software Foundation makes it available with great reluctance, but it can be a good choice for software libraries intended for use within applications.
- GNU Affero General Public License: The AGPL is even stickier than the GPL. Its stickiness extends to code which runs on servers, even if it's never published. The rise of cloud services has made this a common situation.
- Mozilla Public License: A free software license from the Mozilla Software Foundation. It stakes out a position between open source licenses and the GPL. If you create an application that incorporates MPL-licensed code, you need to make only the licensed files available. This includes any modifications you have made but doesn't include code which is original with you.
Whether you're licensing your own software or using FOSS from other sources, being aware of the nuances is important. Free software licenses can be especially tricky. However, this model is tremendously useful to software creators as well as users. Software creators can distribute their products widely and then leverage them for revenue. Other developers can use existing software to avoid re-inventing known solutions. End users can save money compared with commercial software.