Licence a autorství třídy, která používá kus kódu z Nette
- Zax
- Člen | 370
Předchozí téma od Šamana ve mně vzbudilo dost podobnou otázku (kterou mi Filip Procházka smazal s dost nepříjemně jízlivou poznámkou, protože co si to sakra vůbec dovoluju ptát se na licence v tématu které se týká licence, že? Proto tedy zakládám nový thread a ještě ho musím komentovat těmito debilními kecy, což ve finále dělá větší bordel a přidělává víc práce všem zúčastněným, než kdybych se prostě mohl zeptat tam – enjoy. Fakt nechci podkopávat něčí moderátorskou činnost, zvlášť probíhá-li ve tři v noci, ale jen prostě chci zdůraznit, že není třeba hned útočit, když něco jednomu nepřijde jako OT a druhému ano. Každý jsme se nenarodili jako géniové s dokonalým přehledem o světě.).
Konečně samotný dotaz:
Co když potřebuji vzít jednu třídu z Nette a upravit chování jedné
metody, ovšem tím stylem, že celou tu metodu musím zkopírovat? Příkladem
z reálného světa budiž tento
form renderer, do kterého jsem si musel zkopírovat celou metodu
renderPairMulti, abych dosáhnul požadovaného efektu. Jak moc jsem
„v háji“, kdybych chtěl tento kus kódu použít pro něco komerčního?
Stačí takto dopsané credits? Nebo musím do hlavičky zkopčit celou licenci?
Nebo to vůbec nevadí a řeším blbost?
Díky.
EDIT: A BTW je to prakticky totožný dotaz, akorát se netýká celého sandboxu, ale jen jedné třídy (resp. metody). Kde jsem tak moc OT, abych si zasloužil takový útok, ukaž mi to přesně, Filipe. Díky.
Editoval Zax (19. 7. 2014 16:26)
- enumag
- Člen | 2118
Předpokládám že s kopírováním metody problém nebude, protože mnoho
doplňků nějakou metodu Nette kopíruje s drobnou úpravou. Nejspíše
stačí něco jako @author David Grudl
+ poznámka odkud kód
pochází (opravte mne pokud se mýlím).
Rád bych ale věděl jak je to s podobným případem kdy potřebuju upravit jednu metodu třídy Route, ovšem kvůli tomu že všechny properties třídy Route jsou private to nemohu vyřešit dědičností a jsem nucen kopírovat komplet celou třídu. Co všechno musím zachovat u takto naklonované třídy kde jsem změnil cca 3 řádky + namespace?
EDIT: Mimochodem Nette\Security\Permission je víceméně zkopírované ze Zendu, ale je tam Nette copyright. Znamená to že se copyright zachovávat nemusí? (Nebo se v tomto ohledu licence Zendu a Nette liší?)
Editoval enumag (20. 7. 2014 1:43)
- Majkl578
- Moderator | 1364
Zax napsal:
kterou mi Filip Procházka smazal
Tvůj i Filipův příspěvek jsem pak smazal já, jelikož tvůj obsahoval něco jako „smazáno“, aby to tam zbytečně neplevelilo. Snad to nevadí.
Co když potřebuji vzít jednu třídu z Nette a upravit chování jedné metody, ovšem tím stylem, že celou tu metodu musím zkopírovat?
Záleží na použité licenci. U Nette jde o New BSD, která vyžaduje dodržení následujících tří bodů:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of „Nette Framework“ nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
Pokud zkopíruješ celou třídu, měl by jsi v PHPDoc uvést:
- copyright původní třídy;
- výše uvedené podmínky, stačí jako název licence nejlépe s odkazem na znění;
- ve výsledném produktu uvést, že jsi použil Nette Framework a přiložit jeho licenci.
U metody je to obdobné, jen se to týká PHPDocu dané metody – tady
je reálný příklad ze Symfony, která používá metodu Zendu – je uveden
pouze copyright a původní licence (s odkazem na její znění, aby ji
nemuseli vypisovat).
Odobně se to dá řešit i pro útržek kódu, třeba část metody, např zde
v Symfony zkopírovaná pluralizace pro jazyky.
enumag napsal:
Mimochodem Nette\Security\Permission je víceméně zkopírované ze Zendu, ale je tam Nette copyright. Znamená to že se copyright zachovávat nemusí? (Nebo se v tomto ohledu licence Zendu a Nette liší?)
Nette copyright tam sice je v hlavičce souboru, ale třída samotná zmiňuje původní copyright:
This solution is mostly based on Zend_Acl © Zend Technologies USA Inc. (http://www.zend.com), new
BSD license
@copyright Copyright © 2005, 2007 Zend Technologies USA Inc.
- enumag
- Člen | 2118
@Majkl578: Díky za vysvětlení. :-) Ještě pro upřesnění, co znamená
ve výsledném produktu uvést, že jsi použil Nette Framework a přiložit jeho licenci.
Že jsem použil Nette by bylo uvedené v hlavičce té kopírované metody či třídy. Přiložit licenci znamená zkopírovat license.md z Nette a přidat jej do mého repozitáře jako např. license-nette.md? Je toto opravdu nutné?
- Filip Procházka
- Moderator | 4668
<offtopic>
@Zax nevadilo mi že jsi se ptal, vadilo mi že jsi se ptal v tématu které s tvým problémem souvisí jen okrajově. Nechápu proč je problém založit vlastní téma.
V momentě kdy tvůj dotaz začíná na „mě by zajímalo spíš …“ tak je to automaticky offtopic.
Nic jsem ti nemazal, jen jsem ti (podle mě) slušně napsal, aby jsi si založil vlastní vlákno. Původní příspěvek se mi nedaří dohledat, protože @Majkl578 byl moc aktivní a okamžitě všechno smazal. Dokonce jsem ti tam tuším psal (což se mi nedaří dohledat) že „ti to rovnou nemažu, aby jsi si příspěvek mohl zkopírovat do nového vlákna a nemusel ho psát znovu“.
</offtopic>
- David Grudl
- Nette Core | 8282
Je to jednoduché: dělejte to férově, tak jak byste chtěli, aby ostatní používali váš kód. Abyste měli čisté svědomí.
Přikládání celého znění (a asi ani odkazování na) well-known licence nikomu nepomůže a určitě to žádný tvůrce open-source už z principu nebude vyžadovat nebo očekávat.
- Zax
- Člen | 370
@Majkl578: Díky moc. Svou třídu upravím tak, aby obsahovala původní copyright, přídám odkaz na licenci a doplním, že je to z Nette.
<ot> @FilipProcházka: Mně nejde o to smazání, ale o princip. Tvá reakce na mě začala zhruba slovy „to snad nemyslíš vážně“, po které jsem zůstal jen nechápavě čumět s otevřenou hubou. Chvíli jsem přemýšlel – opravdu jsem tak moc OT? Nebo jsem tě snad něčím naštval v minulosti? Nebo snad prostě jen blbej den? Kdybys napsal něco jako „hele tobě to možná OT nepřijde, ale mně teda jo, smaž to a založ si nové téma“, tak v poho, informaci bys mi sdělil úplně stejně a já bych si nemusel připadat jak totální idiot. Být to jasný OT, tak mě seřvi jak je libo, ale v takovém sporném případě jít hnedka do útočného režimu mi prostě nepřijde zrovna fér (zvlášť když tu lidi jsou kolikrát mnohem víc OT a nikdo jim nic neřekne). To fakt sorry.
V momentě kdy tvůj dotaz začíná na „mě by zajímalo spíš …“ tak je to automaticky offtopic.
Ale, vážně?? Tak to mi laskavě pošli seznam zakázaných frází, ať si můžeme ušetřit starosti. Nikde není psáno, že tahle fráze je automaticky OT. „Mě by spíš zajímal fotbal“ v tématu o licenci by určitě bylo OT, ale „mě by spíš zajímal stejný dotaz, ale nikoliv z pohledu sandboxu, ale z pohledu jedné třídy“ prostě není automaticky OT jen kvůli jedné frázi na začátku. A jestli tohle nechápeš, tak pro mě nemá cenu se s tebou dál snažit komunikovat.
Jo, odteď si teda budu hodně dobře rozmýšlet, jestli sem chci něco poslat (ať už dotaz nebo odpověď), protože kdo chce psa bít, hůl si najde. Tak ať ten pes je radši někdo jinej než já.</ot>
Přeju hezký zbytek dne a omlouvám se za mnohem větší OT, než byl ten OT kvůli kterému jsem teď OT..
Editoval Zax (20. 7. 2014 17:23)
- Majkl578
- Moderator | 1364
@enumag napsal:
Ještě pro upřesnění, co znamenáve výsledném produktu uvést, že jsi použil Nette Framework a přiložit jeho licenci.
Tak to platí hlavně pro binární distribuci, kde zdrojový kód není
dostupný.
U binárně distribuovaného software se to většinou dává někam do About,
popř. About > License, kde se vypíše použitý software. Třeba Firefox to
má v About, kde je odkaz na licence (otevře about:license
) a tam
jsou vypsané jednotlivé 3rd-party knihovny a jejich licence. Chrome má
v About v patičce: „Google Chrome staví na projektu s otevřeným
zdrojovým kódem Chromium a využívá i další otevřený software.“
s odkazem na chrome://credits.
U PHP aplikace si myslím, že bohatě stačí to, jak to @DavidGrudl udělal
v sandboxu – název knihovny a licenci. Což když používáš Nette
vlastně neznamená nic navíc, protože Nette už tam máš. :)
Ale to samozřejmě záleží na typu licence, různé licence, různé
požadavky, některé mohou vyžadovat uvedení přímo na webu apod.
@FilipProcházka napsal:
Nic jsem ti nemazal, jen jsem ti (podle mě) slušně napsal, aby jsi si založil vlastní vlákno. Původní příspěvek se mi nedaří dohledat, protože @Majkl578 byl moc aktivní a okamžitě všechno smazal.
On tvoji odpověď četl, protože na základě jí smazal obsah svého původního příspěvku. Jinak bych samozřejmě ani jeden nemazal.