Every piece of software you build, ship, or buy runs under a license. That license is a legal agreement that says who can use the software, how, and under what conditions. Get it wrong, and the consequences can be expensive to unwind.
This guide covers the four core types of software licenses, explains the key terms you need to know, and ends with a practical framework to help you make the right call.
Key Takeaways
Before diving into specific licenses, it helps to understand how software licensing in general works. Every type of software license falls into one of two categories: proprietary or open source.
Proprietary software is closed. You get the software, but not the code behind it. The vendor owns all rights and sets the rules through a legal agreement called an End User License Agreement (EULA). Modifying, redistributing, or reverse-engineering the software is off-limits unless the vendor explicitly says otherwise. Microsoft Windows, Adobe Photoshop, and most commercial business software fall into this category.
Open source software makes its code publicly available. The key thing to understand here is that "open source" doesn't mean "no strings attached." Some open source licenses let you do almost anything with the code. Others come with conditions. One of the most common conditions is a requirement to share your changes if you distribute the software.
Here is what different licenses mean for open source software:
A few other terms come up regularly when evaluating software licenses:
Real-world examples help to illustrate what each type of software license means. For example, Windows is proprietary in that Microsoft controls how it's distributed and used. Linux runs under the GPL (GNU General Public License), a copyleft license that gives anyone the right to study, modify, and redistribute the code, but requires that any derivative work be released under the same terms, keeping it open for everyone. Photoshop is proprietary under a subscription EULA, which means you're paying for access to the software, not permanent ownership of it. VS Code is MIT-licensed—Microsoft publishes the code and places almost no restrictions on how others use or build on it.
Each type of software license can fit into one of four categories:
A public domain license, or more accurately, a public domain dedication, removes copyright protection entirely. The author gives up all rights, and the work becomes free for anyone to use, modify, or distribute for any purpose, including commercial use, with no attribution required and no conditions attached. The most common examples are the Unlicense and Creative Commons CC0. These exist because copyright is automatic in most countries, so you need a formal legal instrument to actually waive it.
Public domain dedications make sense when maximum freedom is the goal, such as for reference implementations, sample code, or data released for public benefit. The trade-off is simple: no conditions, but also no warranty. If something breaks, most of the time you have to fix it yourself.
Permissive licenses are the most commercially friendly of the open source license types. They let you use, modify, and redistribute code with very few conditions, typically just keeping the original copyright notice and license text intact.
The most common permissive software licenses are:
The practical difference between MIT and Apache 2.0 ultimately comes down to patents. MIT says nothing about them, leaving patent risk undefined. Apache 2.0 explicitly grants a patent license, which gives companies building commercial products a cleaner legal position.
Permissive licenses are generally the right choice for libraries, developer tools, and any project designed to encourage broad commercial adoption.
License | Patent Grant | Attribution Required | Usable in Proprietary Software? | Notable Projects |
|---|---|---|---|---|
MIT | No | Yes | Yes | React, Rails, jQuery |
Apache 2.0 | Yes | Yes | Yes | Kubernetes, Android (AOSP) |
BSD 2-Clause | No | Yes | Yes | FreeBSD, OpenBSD |
BSD 3-Clause | No | Yes (+ non-endorsement) | Yes | Various |
Copyleft licenses are built around one idea: freedom must be preserved downstream. If you distribute software that includes copyleft code—modified or not—you have to make the source code of your entire distribution available under the same license. That's the viral clause that we discussed earlier in action.
Copyleft isn't a single setting. It comes in different strengths:
Copyleft obligations depend not just on which license applies, but on what triggers it. GPL activates upon distribution; AGPL activates upon network use. Know your deployment model before incorporating any copyleft dependency.
License | Copyleft Strength | SaaS Loophole Closed? | Can Link with Proprietary Code? | Notable Projects |
|---|---|---|---|---|
GPL v2 | Strong | No | No | Linux kernel, WordPress |
GPL v3 | Strong | No | No | GCC, Bash |
LGPL | Weak (library) | No | Yes (dynamic linking) | glibc, Qt (LGPL option) |
AGPL | Strong + network | Yes | No | MongoDB, Nextcloud |
MPL 2.0 | Weak (file-level) | No | Yes (separate files) | Firefox, Thunderbird |
Proprietary licenses are the dominant model for commercial software. The source code stays private. Usage rights are defined entirely by the EULA. You can't modify, redistribute, or reverse-engineer the software without explicit permission.
Within this software license category, there are different sub types—each with a different pricing structure and use-case fit:
Model | Upfront Cost | Ongoing Cost | Transferable? | Best For |
Perpetual | High | Low (optional maintenance) | Sometimes | Long-lifecycle desktop/engineering software |
Subscription | None | Recurring | No | SaaS, cloud-delivered software |
Per-Seat | None/low | Per user/year | No (named users) | Enterprise SaaS with consistent users |
Floating | Moderate–high | Low–moderate | Pool-based | CAD, simulation, infrequent-use tools |
OEM | Bundled | None | No | Hardware-bundled software |
Freemium | None | Usage-gated | N/A | B2C/B2B2C growth models |

Picking the right type of software license is a strategic decision. The wrong choice can create legal debt that compounds, like copyleft obligations that clash with your business model, commercial terms that don't scale, and dependency chains that expose you to unanticipated liability.
Here are four important questions that you can ask yourself to help you choose the right type of software license for your product:
For most commercial software vendors, the practical path is:

Understanding license types gets you halfway there. The bigger risks are structural, buried in dependency chains that most teams never fully audit. When you’re choosing a software license, it’s important to be aware of these potential “traps” so you can be proactive in mitigating your overall risk.
Most of an application's codebase isn't code you chose, it's the indirect dependencies your direct dependencies pulled in. These hidden layers often go unvetted, which is where license violations and security vulnerabilities originate. So for example, let’s say you’re integrating “Library A” codebase into your software. Including Library A means inheriting the licenses of everything Library A depends on, which could be Libraries B through F and beyond. Library A might be MIT-licensed, but a deep sub-dependency could be GPL. If a viral license appears anywhere in that chain, it may legally require you to open-source your entire proprietary codebase. Most developers never audit past the first level of dependencies. That's where compliance failures originate.
Open source maintainers, or the companies backing them, can change licenses between versions. For example, HashiCorp moved Terraform from MPL to Business Source License. Redis changed terms on several modules. A developer updating a dependency from v2.1 to v2.2 to patch a bug may not notice the license changed. The result: you're in violation of terms you never agreed to, or facing a commercial requirement you didn't budget for.
If a critical library is maintained by one person who stops maintaining it, you're stuck. When a CVE surfaces and there's no maintainer to patch it, you can't ship a secure product. You're forced to fork (create a separate copy of the coding database) and maintain the code yourself, or rewrite the affected component. Both are expensive options. In regulated industries, an unpatched CVE is also a compliance failure, not just an engineering problem.
Different parts of your codebase may require conflicting versions of the same library. For example, Library X needs Helper A v1.0 while Library Y needs v2.0. When requirements conflict, you're forced onto an outdated, potentially insecure version. This becomes a licensing issue when the pinned version carries different terms than the current release.
The risks described above are manageable with the right tooling. Software composition analysis (SCA) tools like FOSSA and OSS Review Toolkit scan your full dependency tree, flag license conflicts, and alert your team when a package update brings a license change. For businesses managing commercial software entitlements at scale, a purpose-built license management platform like LicenseSpring provides the audit trails, true-up tracking, and entitlement visibility that spreadsheets can't.
"Free software" is a term defined by the Free Software Foundation. It refers to software that gives users four specific freedoms: to run it, study it, modify it, and distribute it. In other words, the word "free" means freedom, not price.
Open source software covers much of the same ground but comes from a different tradition—one focused on the practical benefits of transparent code rather than the ideological framing the FSF uses. In most cases, the two overlap almost completely. The difference is mainly in emphasis and community culture.
It depends on how you use it. If you're running GPL software internally, such as a development tool or internal service, without distributing it, GPL obligations generally don't apply. If you distribute software that incorporates GPL code to customers or the public, you must make the corresponding source code available under the GPL. That's incompatible with keeping your product closed source. Many companies structure their architecture specifically to avoid GPL code in distributed components, using LGPL or permissive alternatives instead.
In most jurisdictions, copyright is automatic. Software is protected the moment it's created, even without registration. If code has no license attached, it's not public domain. Technically, no one has the right to use, modify, or distribute it except the author. Consuming unlicensed code from a public repository creates legal risk because the author can assert copyright claims at any point. This is why license awareness isn't optional for any organization that builds on third-party code.
The Unlicense and CC0 are the most permissive options because they dedicate code to the public domain entirely, with no attribution required and no conditions at all. Among licenses that still technically function as licenses rather than dedications, MIT and BSD 2-Clause come closest: a single requirement to include the copyright notice and license text. Apache 2.0 adds a patent grant, which introduces a little more structure but remains highly permissive in practice.
A software license defines your legal right to use software. A subscription is a payment and access model. A perpetual license grants the right to use a specific version of software indefinitely after a one-time purchase. A subscription bundles usage rights with an ongoing payment obligation—stop paying, and access ends. The two are related but distinct: you can have a perpetual license to software you paid for once, or a subscription that renews your license each year. For a detailed comparison, see LicenseSpring's guide to perpetual vs. subscription licensing.
A software license isn't a formality. It's a decision that shapes your obligations, your business model, and your risk exposure.
For developers, the practical rule is: audit your dependency tree before you ship, and again every time you update. A permissive top-level license doesn't guarantee a permissive supply chain. Tools like FOSSA and OSS Review Toolkit make this tractable.
For businesses evaluating commercial software, the licensing model matters as much as the feature set. Whether you choose perpetual, subscription, floating, per-seat, or a hybrid model, each carries a different cost structure and different constraints on how usage can grow.
For procurement and legal teams, licensing is ongoing work. True-up clauses, renewal terms, and entitlement limits require active tracking. High-profile license changes at HashiCorp and Redis are a reminder that the commercial open source landscape is still being renegotiated, and that any single vendor dependency carries more risk than it may appear.
Clear visibility into what you've licensed and what your obligations are is the foundation of sound software operations.
LicenseSpring gives software vendors the infrastructure to design, enforce, and manage licensing with precision: from defining entitlements and enforcing usage limits to handling activations across air-gapped environments and complex deployment models.
If you're structuring a licensing model for your own software, explore what LicenseSpring can do. Get started today.