Programování

Open source licence – MIT, Apache, GPL a jak vybrat správnou

Srozumitelný přehled open source licencí – permisivní vs. copyleft, MIT, Apache 2.0, GPL, AGPL a MPL. Jak licenci použít a co hlídat u závislostí.

12. 10. 2026 · 4 min čtení

Kód bez licence není „volně k použití“. Podle autorského práva si autor ponechává všechna práva a ostatní ho bez svolení nesmějí legálně kopírovat, upravovat ani šířit – i když je veřejně na GitHubu. Licence je právě to svolení. Tento článek vysvětluje hlavní typy licencí a jak se mezi nimi rozhodnout. Nejde o právní radu; u komerčně důležitých rozhodnutí se poraďte s právníkem.

Dvě hlavní rodiny

Permisivní licence dovolují s kódem dělat téměř cokoli, včetně použití v uzavřeném komerčním softwaru. Požadují hlavně zachování copyrightu a textu licence.

Copyleft licence dovolují použití i úpravy, ale odvozená díla, která šíříte, musí být pod stejnou (kompatibilní) licencí a se zdrojovým kódem. Cílem je, aby software i jeho úpravy zůstaly svobodné.

Přehled nejpoužívanějších licencí

Licence Typ Hlavní podmínky Patentová doložka
MIT permisivní Zachovat copyright a text licence Ne (výslovně)
BSD 2-Clause / 3-Clause permisivní Jako MIT; 3-Clause zakazuje použít jméno autora k propagaci Ne
Apache 2.0 permisivní Zachovat licenci a NOTICE, označit změněné soubory Ano
MPL 2.0 slabý copyleft (na úrovni souborů) Upravené soubory MPL musí zůstat otevřené Ano
LGPL 3.0 slabý copyleft (knihovny) Úpravy knihovny otevřít; aplikace, která ji jen používá, může být uzavřená (za podmínek) Ano
GPL 3.0 silný copyleft Při šíření celého odvozeného díla zdrojový kód pod GPL Ano
AGPL 3.0 silný copyleft + síť Jako GPL, ale povinnost platí i při poskytování přes síť (SaaS) Ano

Klíčové rozdíly, které je dobré chápat

„Šíření“ a SaaS

Povinnosti GPL se spouštějí při šíření softwaru (předání binárky, prodej, stažení). Když GPL software jen provozujete na svém serveru jako webovou službu, nešíříte ho – zdrojový kód zveřejňovat nemusíte. Tuto „mezeru“ uzavírá AGPL: pokud uživatelé se softwarem komunikují přes síť, musíte jim nabídnout zdrojový kód včetně vašich úprav.

Patenty

Apache 2.0, MPL 2.0 a GPLv3 obsahují výslovné udělení patentové licence od přispěvatelů a ukončení licence tomu, kdo kvůli patentu žaluje. MIT a BSD to výslovně neřeší. U větších firemních projektů je to jeden z důvodů, proč volí Apache 2.0.

Kompatibilita

Licence nejdou kombinovat libovolně. Několik pravidel:

  • Permisivní kód (MIT, BSD, Apache 2.0) lze obvykle začlenit do GPL projektu.
  • Apache 2.0 je kompatibilní s GPLv3, ale ne s GPLv2 (podle Free Software Foundation).
  • GPL kód nelze začlenit do projektu pod permisivní licencí a šířit ho jako celek pod MIT.

Jak vybrat licenci pro svůj projekt

Chcete… Zvolte
Maximální rozšíření, nic neřešit MIT
Totéž, ale s patentovou ochranou (firemní prostředí) Apache 2.0
Aby úpravy vaší knihovny zůstaly otevřené, ale šla použít i v uzavřeném SW MPL 2.0 nebo LGPL 3.0
Aby všechna odvozená díla zůstala otevřená GPL 3.0
Totéž i pro SaaS provozovatele AGPL 3.0

Pomocníkem je web choosealicense.com (provozuje GitHub), kde jsou licence porovnané srozumitelně.

Jak licenci správně použít

  1. Do kořene repozitáře přidejte soubor LICENSE s plným textem licence (GitHub ho nabídne při vytváření repozitáře nebo přes Add file → Create new file → LICENSE → Choose a license template).
  2. U MIT/BSD doplňte rok a jméno držitele práv.
  3. Uveďte licenci v metadatech balíčku pomocí SPDX identifikátoru:
// package.json
{ "license": "MIT" }
# pyproject.toml (PEP 639, novější nástroje)
[project]
license = "Apache-2.0"
  1. Volitelně hlavička v souborech: // SPDX-License-Identifier: MIT.

Pokud do projektu přijímáte příspěvky, ujasněte si, pod jakou licencí je přispěvatelé poskytují. Běžné je pravidlo „inbound = outbound“ (příspěvek pod stejnou licencí jako projekt), případně DCO (git commit -s) nebo CLA.

Kontrola licencí závislostí

Vaše aplikace přebírá licenční povinnosti od všech závislostí. Zjištění, co používáte:

# Node.js
npx license-checker --summary
npx license-checker --onlyAllow "MIT;ISC;BSD-2-Clause;BSD-3-Clause;Apache-2.0"

# Python
pip install pip-licenses
pip-licenses --format=markdown

Na co dát pozor v komerčním (uzavřeném) produktu:

  • GPL a AGPL v závislostech – ověřte, zda a jak vás zavazují.
  • Balíčky bez licence (UNKNOWN, UNLICENSED) – formálně je nesmíte použít.
  • „Source-available“ licence (BSL, SSPL, Elastic License, Commons Clause) – nejsou open source ve smyslu OSI a obvykle omezují komerční provoz nebo konkurenční služby.

A co kód od AI?

Kód vygenerovaný AI může náhodně připomínat existující kód z veřejných repozitářů. U krátkých obecných úryvků je to běžné a nevýznamné. U delších, specifických bloků (celé algoritmy, neobvyklé funkce) je rozumné ověřit původ, obzvlášť pokud je produkt uzavřený a kód by mohl pocházet z GPL projektu. Licenční podmínky samotných AI nástrojů ohledně vlastnictví výstupu se liší, přečtěte si je u služby, kterou používáte.