Software Licensing

Enough to make a safe dependency or release decision. Not legal advice.

  • Permissive — use, modify, distribute, including closed-source; keep the notice. (MIT, Apache-2.0, BSD.)
  • Copyleft — derivative works must ship under the same license. Strength varies. (MPL, LGPL, GPL, AGPL.)
  • Obligations trigger on distribution, never on mere use — except AGPL, where serving over a network counts.
LicenseTypeKey obligationPatent grant
MITPermissiveKeep copyright + license noticeNo explicit
Apache-2.0PermissiveNotice + state changes; NOTICE fileYes
BSD-2/3-ClausePermissiveKeep notice (3-clause: no endorsement)No explicit
MPL-2.0Weak copyleftModified files stay MPL; mixes with proprietaryYes
LGPLWeak copyleftLink from proprietary code OK; changes to the lib stay LGPL, users must be able to swap itYes
GPL-2.0/3.0Strong copyleftWhole distributed work must be GPL, source includedGPLv3: yes
AGPL-3.0Network copyleftGPL + network use counts as distributionYes

Decisions

  • Releasing? MIT for maximum adoption; Apache-2.0 when you want an explicit patent grant.
  • Consuming? Flag (A)GPL in anything you ship or run as a service. Track licenses in CI (license scanner / SBOM).

GPL vs LGPL ownership (Quora)