Definice svobodného softwaru

Autorem pojmu „svobodný software“ je americký programátor a zakladatel nadace Free Software Foundation (FSF) Richard Matthew Stallman. Svobodný software, tak jak ho definuje Stallman a Free Software Foundation, zaručuje čtyři základní svobody:

Spouštět program za libovolným účelem: Toto právo zaručuje, že program bude moci použít kdokoli a pro jakýkoli účel. A nejedná se o pouhé vyloučení užití ke komerčním účelům. Pokud by např. autor programu do licence připsal,
že daný software nesmí být použit pro jadernou energetiku nebo pro vojenské účely, již by se nejednalo o svobodný software. Tento bod tedy kromě jiného brání ideologizaci softwaru (byť by mohla být míněná dobře)
a vynucuje myšlenkovou neutralitu – pokud je software svobodný, je svobodný pro všechny bez výjimky a všem zaručuje stejná práva.

Studovat, jak program funguje. Měnit ho, aby dělal, co chcete: Předpokladem k této svobodě je přístup ke zdrojovému kódu programu. Dostupný zdrojový kód je podmínkou nutnou, nikoli postačující – existují programy, jejichž zdrojový kód byl zveřejněn, ale jejich licence do něj dovoluje pouze nahlížet a zakazuje v něm provádět změny a kompilovat z něj nové verze programu. Tento případ se týká např. programů psaných v interpretovaných jazycích jako je PHP nebo JavaScript, které se z principu distribuují ve tvaru zdrojového kódu (který se interpretuje), ale ne vždy je dovoleno tento kód upravovat – v takovém případě se nejedná o svobodný software, přestože uživatel má ke zdrojovému kódu přístup. Někdy dokonce autoři přistupují k tzv. obfuskaci – což znamená, že software je sice šířen ve tvaru zdrojového kódu, ale tento je upravený tak, aby nebyl přehledný a srozumitelný člověku (přejmenované procedury, metody, proměnné, odstraněné odřádkování atd.) Program s takto upraveným zdrojovým kódem není svobodný software.

Svoboda redistribuovat program, takže člověk může pomoci ostatním: Myšlenka svobodného softwaru podporuje vzájemnou pomoc uživatelů, kteří nejsou odkázáni jen na autory a distributory softwaru (jako je tomu v případě nesvobodného softwaru), ale mohou si programy předávat i přímo mezi sebou. Ačkoli tento bod na první pohled evokuje nezištnost a solidaritu, je důležitý i z hlediska komerčního využití svobodného softwaru – je např. možné prodávat CD média obsahující svobodný software, přikládat je k prodávaným knihám (toto je poměrně častý případ – např. příručky k linuxovým distribucím obvykle obsahují CD, ze kterého si čtenář může tento operační systém nainstalovat), prodávat USB flash disky, ze kterých je možné spustit některý ze svobodných operačních systémů, a v neposlední řadě prodej osobních počítačů, multimediálních přístrojů nebo síťových prvků, které jsou postavené na svobodném softwaru.

Svoboda šířit kopie upravené verze ostatním: Tento bod má podobné dopady jako předchozí, ale vztahuje se na upravené verze programu. Je tedy možné šířit (i za úplatu) původní program s nějakou přidanou hodnotou.

Druhé dva body definice přirozeně vyvolávají otázku, zda je nutné u redistribuovaného softwaru poskytnout (vždy přikládat nebo alespoň na vyžádání) i zdrojový kód. Ze samotné definice svobodného softwaru nic takového nevyplývá – vždy totiž záleží na konkrétní softwarové licenci, pod kterou je daný program vydán.

FSF na své stránce Various Licenses and Comments about Them rozlišuje tři kategorie licencí:

  • svobodné licence slučitelné s GPL licencí
  • svobodné licence neslučitelné s GPL licencí
  • nesvobodné licence

Do první kategorie spadá např. i velice volná BSD licence, která umožňuje tzv. uzavření softwaru. Program vydaný pod BSD licencí je svobodný software, ale tato licence nepožaduje, aby k šířeným kopiím programu musel být přiložen (nebo dodán na pořádání) zdrojový kód. Program pod touto licencí je tedy možné prodávat (nebo šířit bezplatně), ať už upravený nebo ne, v binární (zkompilované) formě bez zdrojového kódu. V okamžiku tohoto uzavření přestává být daný program svobodným softwarem – přestože původní verze, ze které vychází, svobodným softwarem byla. Dojde tedy k jakémusi rozvětvení – jedna verze téhož programu je svobodný software a druhá ne (byť mohou být funkčně shodné).

Vedle toho existují licence, které vyžadují zachování svobodného charakteru softwaru – takovou licencí je např. GNU General Public License (GPL), která zaručuje, že i upravené verze programu zůstanou svobodným softwarem.