| |

LFCA 108 ๐Ÿง Open Source Licensing โ€” Overview

Open source licenses fall into a spectrum from permissive to strong copyleft, and understanding where each license sits on that spectrum is essential for anyone working with open source software. The choice of license determines what you can and cannot do with code, whether you must share your modifications, and what obligations you carry when distributing software.

Key point: Permissive licenses (MIT, BSD, Apache 2.0) allow proprietary reuse with minimal requirements, usually just attribution. Copyleft licenses (GPL) require derivative works to use the same license and share source code. Weak copyleft (LGPL, MPL) applies copyleft only to the licensed component, not the entire application that uses it.


Why open source licensing exists

The legal foundation problem. Software is protected by copyright by default. Without a license, no one has the right to use, modify, or distribute your code, even if you publish it publicly. An open source license grants those rights explicitly, with conditions that define what “open” means for that project.

The collaboration problem. Open source thrives on contribution, but contributions require clear terms. A license defines the rules under which others can use, modify, and redistribute the code. Without a license, potential contributors and adopters have no legal basis to participate.

The business model problem. Different licenses support different business models. Permissive licenses maximize adoption and allow companies to build proprietary products on top. Copyleft licenses ensure that improvements flow back to the community, and dual-licensing models use copyleft as leverage to sell commercial exceptions.

The compliance problem. Organizations must track the licenses of the open source components they use. A permissive license is safe for commercial products; a strong copyleft license may require open-sourcing proprietary code. Misunderstanding a license creates legal risk.


a. The license spectrum

Open source licenses exist on a spectrum from highly permissive to strongly protective. The Open Source Initiative (OSI) approves licenses that meet the Open Source Definition, which requires free redistribution, source code availability, and no discrimination against persons, groups, or fields of endeavor.

Permissive licenses impose minimal restrictions. They allow anyone to use, modify, and distribute the code, including in proprietary software, as long as they preserve copyright notices.

Weak copyleft licenses occupy the middle. They require that modifications to the licensed component itself remain open source, but allow the component to be combined with proprietary code in a larger work.

Strong copyleft licenses sit on the other end. They require that derivative works and combined works use the same license and that source code be provided. The license “propagates” to software that incorporates or links with the licensed code.


b. Permissive licenses: MIT, BSD, and Apache 2.0

Permissive licenses are the most widely used because they impose almost no conditions on reuse.

The MIT License is the simplest and most common, requiring only that the copyright notice and license text be preserved. Projects using MIT include React, Angular, Node.js, and jQuery.

The BSD licenses are similar. The 2-Clause version is nearly identical to MIT. The 3-Clause version adds a restriction against using the names of copyright holders to endorse derived products without permission.

The Apache License 2.0 is also permissive but adds explicit patent protection. It includes a patent grant from contributors and a patent retaliation clause that terminates the grant if the licensee sues contributors for patent infringement. This makes Apache 2.0 attractive for corporate-backed projects where patent clarity matters. It is compatible with GPL v3 but not GPL v2. Kubernetes, TensorFlow, Android, and Apache Kafka use Apache 2.0.

The key implication for organizations is that permissive licenses are safe for commercial use. You can incorporate MIT, BSD, or Apache 2.0 code into proprietary software without releasing your own source. The only requirement is attribution โ€” preserving copyright notices, typically in documentation or an “About” dialog.


c. Copyleft licenses: GPL and AGPL

The GNU General Public License is the most well-known copyleft license. It requires that derivative works be distributed under the same GPL terms and that source code be provided when binaries are distributed. This “viral” quality ensures that the software remains free as it evolves.

GPL v2 is used by the Linux kernel, Git, and WordPress. GPL v3 adds explicit patent grants similar to Apache 2.0, anti-tivoization provisions that prevent hardware restrictions on modified software, and compatibility with Apache 2.0.

The AGPL (Affero GPL) extends copyleft to network use. Where GPL requires source disclosure only when binaries are distributed, AGPL triggers the requirement when the software is made available over a network, closing the “SaaS loophole.”

For organizations, GPL presents significant risk for proprietary software. If you modify GPL code or create a derivative work, you must open-source it when you distribute. Linking proprietary code with GPL libraries can also trigger copyleft requirements, though legal interpretation varies.


d. Weak copyleft licenses: LGPL, MPL, and EPL

Weak copyleft licenses balance openness with commercial usability.

The LGPL (Lesser GPL) is designed for libraries. It requires that modifications to the LGPL-licensed library itself be open-sourced, but allows the library to be linked into proprietary applications without requiring the entire application to be open-sourced.

The Mozilla Public License (MPL) applies copyleft at the file level. Modifications to MPL-licensed files must be shared, but the license does not propagate to other files in the larger work. The Eclipse Public License (EPL) is similar in scope.

These licenses are appropriate when you want improvements to a specific component to remain open, but you also want to allow commercial software to use that component without becoming fully open source.


e. Choosing a license

The choice of license comes down to how much control you want over downstream use.

If maximum adoption is the priority, choose MIT or Apache 2.0. If you want to ensure that improvements to your library stay open, choose LGPL or MPL. If you want every derivative to remain free software, choose GPL. If you also want to close the SaaS loophole, choose AGPL.

The decision also affects who will adopt your project. Permissive licenses remove friction and encourage enterprise use. Strong copyleft licenses signal a commitment to software freedom but are blocked by many corporate policies. Ambiguous or missing licensing is itself a compliance risk.


Complete Example Session

# ============================================
# PART 1: CHECK THE LICENSE OF A PROJECT
# ============================================
# Look for LICENSE, LICENSE.md, or LICENSE.txt
ls LICENSE*
cat LICENSE
# ============================================
# PART 2: IDENTIFY LICENSE TYPE
# ============================================
# MIT: "Permission is hereby granted, free of charge..."
# Apache 2.0: "Licensed under the Apache License, Version 2.0"
# GPL: "GNU GENERAL PUBLIC LICENSE"
# ============================================
# PART 3: MIT LICENSE HEADER
# ============================================
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software...
# The above copyright notice shall be included in all copies.
# ============================================
# PART 4: APACHE 2.0 PATENT GRANT
# ============================================
# "Grant of Patent License" section in the LICENSE file
# Contributors grant patent rights; retaliation clause
# ============================================
# PART 5: GPL SOURCE DISCLOSURE
# ============================================
# If you distribute binaries, you must provide source.
# Modifications must be licensed under GPL.
# ============================================
# PART 6: AGPL NETWORK TRIGGER
# ============================================
# If users interact with the software over a network,
# you must offer them the source code.
# ============================================
# PART 7: LGPL LIBRARY LINKING
# ============================================
# You can link LGPL libraries into proprietary apps,
# but modifications to the library must be shared.
# ============================================
# PART 8: LICENSE COMPLIANCE CHECK
# ============================================
# Use a tool to scan dependencies
npx license-checker --summary
# ============================================
# PART 9: ATTRIBUTION FILE
# ============================================
# Include open source notices in your product
cat THIRD_PARTY_NOTICES.md
# ============================================
# PART 10: DUAL LICENSING
# ============================================
# Some projects offer GPL + commercial license.
# Commercial license removes copyleft obligations.

These ten parts cover checking a license file, identifying license types, reading MIT and Apache terms, understanding GPL and AGPL obligations, LGPL linking rules, license scanning, attribution files, and dual licensing.


Quick Reference

LicenseTypeKey RequirementCommercial Use
MITPermissiveAttributionUnrestricted
BSD 2/3-ClausePermissiveAttribution (+ no endorsement for 3-clause)Unrestricted
Apache 2.0Permissive + patentsAttribution, patent grantUnrestricted
LGPLWeak copyleftShare library modificationsAllowed with conditions
MPL 2.0Weak copyleftShare file modificationsAllowed with conditions
GPL v2/v3Strong copyleftShare derivative worksRestricted
AGPLNetwork copyleftShare network-served derivativesHeavily restricted

Best Practices

โœ… Do This:

# Include license file in every project
# Track open source dependencies
# Preserve copyright notices
# Consult legal for GPL in proprietary products

โŒ Don’t Do This:

# Use code without a license
# Remove copyright notices
# Assume "open source" means "no rules"
# Ignore AGPL for SaaS products

Common Pitfalls

PitfallWhy It HappensFix
No license = no rightsCopyright by defaultAdd a license
GPL in proprietary productUnaware of copyleftAudit dependencies
Missing attributionNotices removedInclude notices file
AGPL ignored in SaaSNetwork trigger overlookedReview AGPL obligations
License conflictIncompatible licenses combinedCheck compatibility

Visual

License Spectrum

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  PERMISSIVE          WEAK COPYLEFT       STRONG COPYLEFT     โ”‚
โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€         โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€       โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€     โ”‚
โ”‚  MIT                 LGPL                GPL v2/v3           โ”‚
โ”‚  BSD                 MPL                 AGPL                โ”‚
โ”‚  Apache 2.0          EPL                                     โ”‚
โ”‚                                                              โ”‚
โ”‚  Fewer obligations โ—€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถ More obligations     โ”‚
โ”‚  More adoption                          More sharing         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

What Each License Requires

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  MIT/BSD        โ†’ Preserve copyright notice                  โ”‚
โ”‚  Apache 2.0     โ†’ Preserve notice + patent grant            โ”‚
โ”‚  LGPL           โ†’ Share library changes                      โ”‚
โ”‚  MPL            โ†’ Share file changes                         โ”‚
โ”‚  GPL            โ†’ Share derivative works under GPL           โ”‚
โ”‚  AGPL           โ†’ Share network-served derivatives           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Summary

ItemValue
PermissiveMIT, BSD, Apache 2.0
Weak copyleftLGPL, MPL, EPL
Strong copyleftGPL v2, GPL v3
Network copyleftAGPL
MIT requirementAttribution
Apache 2.0 additionPatent grant
GPL requirementShare derivative works
AGPL triggerNetwork use
LGPL scopeLibrary modifications
OSIApproves licenses meeting Open Source Definition

Key takeaways:

  • Permissive licenses maximize adoption. MIT, BSD, and Apache 2.0 allow proprietary reuse with only attribution requirements, making them safe for commercial products.
  • Apache 2.0 adds patent protection. It includes an explicit patent grant and retaliation clause, providing legal clarity that MIT and BSD lack.
  • Strong copyleft requires sharing. GPL requires that derivative works and combined works use the same license and provide source code when distributed.
  • Weak copyleft applies to the component, not the application. LGPL and MPL require modifications to the licensed code to be shared, but allow proprietary applications to use the component.
  • AGPL closes the SaaS loophole. It triggers source disclosure when software is provided over a network, not just when binaries are distributed.
  • License compliance is a legal obligation. Organizations must track the licenses of all open source components and ensure their use complies with the terms.

Remember: Open source licensing is not about whether software is free of cost โ€” it is about what you are legally permitted to do with the code. Every license grants rights (use, modify, distribute) and imposes conditions (attribution, source disclosure, same-license requirements). The spectrum from permissive to copyleft reflects different philosophies about how open source should work: permissive licenses prioritize adoption and freedom for users, while copyleft licenses prioritize the freedom of the software itself. Choosing the right license means understanding what you want to happen downstream โ€” whether your code should be freely incorporated into proprietary products or whether it should remain open in all derivatives. For IT professionals, the practical skill is recognizing which licenses are safe for which uses and knowing when to consult legal counsel before incorporating open source code into a product.



Stop using slow, ad-bloated tool sites! ๐Ÿคฎ

๐Ÿ”Ž Search “KandZ Tools” on Google to use many professional utilities for free.

KandZ.me is the ultimate minimalist hub for:
โœ… Finance (Mortgage, Interest, Inflation)
โœ… Tech (Base64, JSON, Dev Suite, IP)
โœ… Health (BMI, BMR, TDEE)
โœ… Productivity (Timer, Workspace, QR)

โšก๏ธ Fast & Private
๐Ÿ”’ No data leaves your device
๐Ÿ’Ž 100% Free

๐Ÿ”— Use it now: https://tools.kandz.me
๐Ÿ”– Bookmark itโ€”youโ€™ll need it later!