FOSS and Other Software Licences

Software licences define the terms under which software may be used, modified, and distributed. They range from permissive (minimal restrictions) to copyleft (requiring derivative works to be open source) to proprietary (restricting use and redistribution).

Free and Open Source Software (FOSS)

FOSS licences guarantee four freedoms:

  1. Run the program for any purpose.
  2. Study how the program works and modify it.
  3. Redistribute copies.
  4. Distribute modified versions to the public.

Permissive Licences

Permissive licences impose minimal restrictions. They allow proprietary use and do not require derivative works to be open source.

MIT License

Short and simple. Allows use, modification, and distribution with minimal restrictions, provided the license text is included.

BSD Licences

Similar to MIT. The 2-clause BSD is equivalent to MIT. The 3-clause BSD adds a "no endorsement" clause.

Apache License 2.0

More detailed than MIT/BSD. Includes:

  • Patent grant from contributors.
  • Explicit definition of license applicability.
  • Requirement for state changes in modified files.

Widely used in enterprise and corporate open source.

Copyleft Licences

Copyleft licences require derivative works to be released under the same licence terms, ensuring that modifications remain open source.

GPL (General Public License)

  • GPLv2: Used by Linux kernel. Requires source distribution with binary distribution.
  • GPLv3: Adds anti-circumvention provisions (DRM), patent retaliation clause, and tivoisation prevention (software must run on user-modifiable hardware).

LGPL (Lesser General Public License)

Allows proprietary linking to the library. Modifications to the library itself must be open source, but applications using the library can remain proprietary.

AGPL (Affero General Public License)

Requires network users to have access to the source code. Closes the "ASP loophole" where network services use GPL software without releasing source.

Proprietary Licences

Proprietary licences restrict use, modification, and redistribution. Examples include:

  • Commercial EULAs: Microsoft Windows, Adobe Photoshop.
  • Source-available: GitLab Enterprise Edition (viewable but not modifiable).
  • Freeware: Free to use, but source not available and modification not permitted.

Licence Compatibility

Not all licences are compatible. Key considerations:

  • GPL compatibility: MIT and BSD are GPL-compatible. GPL code cannot be included in Apache-licensed projects without dual-licensing.
  • Patent clauses: Apache 2.0 and GPLv3 have explicit patent grants; MIT and BSD do not.
  • Stacking: Combining multiple licences in a single work may require separating components.

Choosing a Licence

  • Permissive (MIT/BSD/Apache): Maximum adoption, corporate-friendly, minimal compliance burden.
  • Copyleft (GPL): Protect freedom of the software ecosystem, ensure improvements are shared.
  • AGPL: Close the ASP loophole, ensure network services release source.