Nedávno jsem byl výzkum na Open Source otázky licencí. Předtím, než jsem začal s výzkumem jsem měl velmi malou představu o skutečném smyslu Open Source, i když jsem byl s použitím Linux (open source OS) po dobu více než 4 roky!

Musíte se ptát, proč měli byste si přečíst tento? Na základě mých zkušeností existuje spousta zdrojů, které jsou k dispozici na Internetu, který bude hovořit o těchto otázkách, ale žádný z nich začít od základní úrovni, tj z úrovně, kde může i nováček IT člověk také pochopit, co se děje.

Přichází z inženýrské zázemí, jsem chtěl začít s velmi základní a pak stavět na téma, aby se ujistil, že chápu, většina detailů - menší / major.

Předpoklady

  1. Budu používat slova "programu" a "software" zaměnitelně.
  2. Když jsem se odkazovat na source operační systém otevřený (OS), obecně mám na mysli OS Linux.

Co myslíš tím, Open Source?
Ve skutečnosti mnoho lidí si myslí, že Open Source znamená, že zdrojový kód by měl být otevřený, tj dostupné pro každého jen. Ale víš co? Mýlí se. Toto není celý správná definice Open Source. Existuje několik dalších kritéria, které by měly být uspokojeny, než budeme moci volat něco jako software Open Source.

Znamená Open Source znamená, že musím používat GPL licence?
Noways. Jakmile víte, že váš program je Open Source, musíte se rozhodnout, vhodný licenci pro to na základě vaší strategii (pokud jste firma), je s nimi nakládáno a knihovny (pokud existuje), které jste použili k napsat svůj program. GPL je jen jedním z několika typu Open Source licencí, i když to je jeden z nejvíce populárních licencí v Open Source komunity.

Mohu prodat svůj open source program?
Ano. Neexistuje žádné omezení, kolik si můžete účtovat za svůj open source program, který jste vytvořili. Tak například, že jste se rozhodli zvolit GPL licenci pro vaši open source program a chcete jej prodat; Podle licenčními podmínkami GPL můžete ho prodat, i když existuje jedna výjimka (vztahující se k zdrojového kódu), k tomu, který myslím, že je teď docela zřejmé. Definice svobodného softwaru (= Open Source Software), zahrnuje právo prodávat své kopie programu.

Musím uvolnit zdrojový kód, když jsem se prodat svůj program (Open Source nebo zavřené / proprietární)?
Ve skutečnosti to může být trochu matoucí, a tak jsem se zase začít od velmi základní úrovni.

Obvykle, pokud nechcete, aby se uvolnil zdrojový kód pro veřejnost pak váš program není technicky Open Source programu. V tomto případě se jedná o uzavřený / proprietární software tak dlouho, dokud není "odvozena" od druhého programu. Budeme se dostat do problematiky, co se považuje za "odvozený", později protože neexistuje žádný řádný konsensus týkající se tohoto.

Tak například, pokud používáte Debian nebo Ubuntu Linux OS a vy se rozhodnete napsat jednoduchý program (test.c) v jazyce C pomocí editoru, jako je vi nebo Emacs, a vy jej kompilovat pomocí GCC kompilátor, pak váš výsledný binární / programu (test) může být nazýván proprietární software a můžete prodat na veřejnosti, aniž by uvolnění zdrojového kódu, pokud jsou splněny následující podmínky:

1. Váš program nemá zahrnuje přímo žádnou část licencovaného softwaru GPL / knihovny.

2. Váš program není odvozen z jakéhokoliv GPL licenci na bázi softwaru / knihovny.

Nicméně, v tomto okamžiku se můžete rozhodnout, aby vaše Open Source software přijetím žádnou licenci Open Source, jako je například, GPL. Předpokládejme, že se rozhodnete vybrat GPL licenci pro vaši test.c programu. Nyní stále můžete prodat svůj binární za poplatek / poplatek, ale zároveň musíte uvolnit zdrojový kód také spolu s binárního souboru. To je důvod, proč se tomu říká Open Source.

Kromě toho, jeden by měl mít na paměti, že někdy volba licence není zcela založen na nás. Předpokládejme například, že jste silně použít kód s licencí GPL knihovny ve vašem test.c programu. Pak by ve výchozím nastavení bude tento program (test.c) musí být považovány za odvozené software a budete muset použít GPL licence pro váš program, a uznat, že jste použili kód z tak-a-tak knihovna a.ka. "virový účinek" GPL. Stále můžete prodávat tento software (test.c), ale teď jste povinen k uvolnění zdrojového kódu spolu s binární, pokud se rozhodnete distribuovat jej na veřejnosti pod licencí GPL .

Nyní se můžete ptát, co když nemám v úmyslu ho redistribuovat a prostě si to pro sebe, nebo na mé organizace. Ještě stále mám uvolnit zdrojový kód, protože jsem použil spoustu kódu z knihovny GPL bázi?
No vůbec V tomto případě, nejste povinen uvolnit zdrojový kód, a že se rozhodnete udělat něco se svým softwarem (test.c) interně.

Je jasné, pro mě, co představuje jako odvozený software? Je to matoucí. Je nějaká jiná lepší řešení?
Bohužel neexistuje žádný univerzální shoda o tom, co lze nazvat jako odvozen software. Ale naštěstí je zde lepší řešení, které bude držet co nejdál od porušení jakékoliv licenční smlouvy - používat LGPL licencované knihovnu, která je známá také jako Lesser-GPL, která je spíš jako permisivní / proprietární licence. Před chápeme hlavní rozdíl mezi LGPL a GPL je třeba rozumět tomu, co je považována za "odvozený".

Někteří lidé v komunitě se domnívají, že pokud váš program dynamicky odkazy na softwarové knihovny pak se váš program nemůže být označován jako "odvozený" softwaru. Ale pokud jste staticky propojit softwarové knihovny do svého programu, pak se nazývá "odvozený" software, a proto není možné tvrdit, úplně jako svůj vlastní software. Avšak pro knihovny, které jsou založeny na GPL licencí někteří lidé zvažují dokonce dynamicky propojení s vaším programem (test.c) jako také "odvozené" softwaru.

Řešení - LGPL
Tak, aby zůstali daleko od těchto dvojznačnosti, tam jsou četné knihovny, které jsou nyní uvolněna pod Lesser-GPL (LGPL) licence. To znamená, že můžete propojit na ty knihovny (staticky nebo dynamicky) do vašeho programu (test.c) a stále můžete zvolit, aby váš kód proprietární (uzavřené-source program). I když bude zapotřebí, aby propustila všechny změny, které byste mohli skončit-up tvorby do knihovny LGPL kódu ve vašem test.c programu.

Například, knihovna GNU C je uvolněn pod licencí LGPL, a to je důvod, proč je tak populární a rozšířený. Ve skutečnosti většina z softwarových knihoven open-source je šířen pod licencí LGPL. Existují však důvody , pro které by člověk chtěl uvolnit knihovny pod licencí GNU GPL spíše než LGPL

Proto je velmi důležité, že jste se rozhodli typ licencované (řekněme například GPL nebo LGPL), knihovny, který byste chtěli použít ve svém programu v závislosti na vaší strategii.

Jak můžu vydělat peníze, když jsem se vydat svůj program pod GPL licencí (se zdrojovým kódem)? Není to paradox?
Víš, co jsem se také použít přesně myslet totéž, a to byl jeden z hlavních důvodů, proč jsem chtěl udělat nějaký výzkum na to všechno. Ve skutečnosti existují reálné životní příklady, kde byli lidé vydělávání peněz ani po uvolnění jejich softwaru pod GPL licencí pro více než 10 let.

Myslím, že jedním z hlavních důvodů za to je jednoduchý ekonomický / obchodní princip nákladů příležitosti času . Například, i když jsem se uvolnit software pro mého zákazníka pod GPL, oni by ještě ke mně přišel pro výrobu některé změny / přizpůsobení k tomuto kusu softwaru, i když mají zdrojový kód pro ni. Samozřejmě zákazník mohl udělat to sám / sama nebo může najmout programátora, ale tam bude hodně přes hlavu nákladů spojených v tom, že stejně jako je například, jak poznat kus softwaru, seznámení s knihovnami, atd. Někdo musí dělat práci (provádění změn / úpravy), tak proč ne původní osoba / společnost, která dělal to.

Myslím si, že tato položka blogu je již dlouhá, takže bych to rád skončit tady. V budoucnu, pokud udělat nějaké další výzkum na toto téma, nebo jestli jsem získat více informací o tom, budu poslat ho do nového blogu.

Prosím, zanechte komentář, pokud máte nějaké dotazy nebo připomínky.

Díky za pobyt tak dlouho!

Být společenský, Share!