Czy jakikolwiek kod JavaScript jest używany tylko do stron internetowych, open source?

12

Przepisane pytanie:

Nie zadaję pytania związanego z JavaScript, ale wszystkie języki „klienta” używane w Internecie (HTML5, JavaScript, CSS itd.). Jeśli umieszczę kod JavaScript (czyli GPLed) na mojej stronie, a ta strona będzie dostępna dla każdego przez Internet, czy w jakiś sposób naruszam GPL?

Co się stanie, jeśli chcę sprzedać komuś kod klienta (HTML, CSS, JavaScript)? Czy w tym przypadku potrzebuję innej licencji?

Czy JavaScript (gdy jest używany w witrynach) nie zawsze jest oprogramowaniem typu open source? Po otwarciu strony internetowej zawsze możesz przeczytać źródło.

Czy muszę również zwolnić kod po stronie serwera, jeśli sprzedaję witrynę internetową zawierającą kod JavaScript GPLed?

Co się stanie, jeśli ta strona jest częściowo dostępna (część jest bezpłatna, a druga wymaga zapłaty), ale kod GPLed (ta sama część) jest używany po obu stronach witryny?

Co zrobić, jeśli kod GPLed znajduje się tylko w części witryny, która wymaga zapłaty za dostęp?

Jeśli sprzedaję stronę internetową klientowi w ten sposób:

  1. Sprzedaję ci (jednorazowa opłata) cały kod klienta (JavaScript, HTML i CSS)
  2. Ja nie sprzedaje Ci kod po stronie serwera, jesteś wynajmuje je (nie chcę pozwolić ci ponownego użycia mojego kodu po stronie serwera)

Jeśli używam kodu JavaScript GPL, czy coś naruszam? (Witryna jest dostępna dla każdego przez Internet).

Edycja 2:

Dodano nowe szczegółowe pytanie:

Co się stanie, jeśli witryna może działać bez kodu po stronie serwera, to znaczy, że JavaScript wywołuje tylko niektóre strony PHP zawierające dane w formacie JSON. Inne osoby mogą zbudować stronę internetową po stronie klienta, ale będą musiały podać dane. W tym przypadku JavaScript wywołuje kod „PHP” (ale nie odwrotnie). Czy w takim przypadku naruszam GPL?

Fire-Dragon-DoL
źródło
4
Możliwość „zobaczenia” kodu nie ma nic wspólnego z licencjonowaniem, więc JavaScript nie różni się niczym innym. Najlepiej skorzystasz z konsultacji z prawnikiem, który jest ekspertem w tej specjalności.
Sparky,
Jeśli chodzi o javascript na stronie internetowej, czy właśnie tutaj mówisz o kodzie GPL? tzn. czy kod jest wyraźnie licencjonowany na licencji GPL?
Philip
Cóż, nie sprzedaję żadnego produktu, tylko o to pytam, ponieważ nie rozumiem dobrze, jak to działa. Pytam konkretnie, czy jakiś język związany z klientem nie jest już w całości „GPL” (
pobierasz
W nietrywialnej aplikacji kod źródłowy to nie tylko JavaScript, ale także kod po stronie serwera. Czy chcesz to wszystko udostępnić publicznie? Ponieważ tak mówi GPL. Nie oznacza to, że możesz wydać niektóre z nich i nadal zachować zgodność z licencją.
Robert Harvey

Odpowiedzi:

3

W przypadku GPL jednostką wydania jest jednostka licencjonowania.

Jeśli twoja strona internetowa i jej javascript to jedna rzecz, która działa razem, całość ma skuteczną licencję. Jeśli jakakolwiek część jest GPL, efektywną licencją całości jest GPL. (Nie dotyczy to LGPL, MIT itp.)

Jeśli prowadzisz witrynę internetową, a Twoi klienci kupują dostęp do usługi, to nie rozpowszechniłeś ani nie przesłałeś kodu po stronie serwera, więc GPL nie ma znaczenia. (AGPL to zmienia i zapewnia, że ​​Oprogramowanie jako usługa musi mieć zwolnione źródło).

Javascript, który jest częścią twojej aplikacji, nie jest w żaden sposób automatycznie licencjonowany. Ściśle mówiąc, pobranie javascript, aby uruchomić go w przeglądarce, stanowi naruszenie praw autorskich. Oczywiście to głupie. Prawdopodobnie istnieje domniemana licencja na uruchomienie kodu, ale to wszystko.

Jeśli korzystasz z biblioteki JavaScript, musisz przestrzegać licencji tej biblioteki. Jeśli ta licencja jest na licencji GPL, rozumiem, że oznacza to, że cała twoja aplikacja jest na licencji GPL. Prawdopodobnie dlatego jQuery ma podwójną licencję - twój wybór, MIT lub GPL. Bez opcji korzystania z licencji MIT może być używana tylko przez aplikacje GPL.

Sean McMillan
źródło
4

Po pierwsze: masz pełne prawo do używania kodu Open Source w projektach komercyjnych, o ile przestrzegasz ograniczeń licencji (przede wszystkim pozostawiasz wszystkie atrybucje na swoim miejscu i udostępniasz wszelkie zmiany na podobnej licencji).

Rozumiem, że GPL jest jedną z bardziej restrykcyjnych licencji, jeśli chodzi o próby narzucenia jej licencji na inne części projektu. Nie sądzę, żeby kiedykolwiek był testowany w sądzie, ale ogólnie interpretację, którą zawsze widziałem, jest to, że jeśli kod GPL zostanie pozostawiony w oddzielnych modułach, do których się tylko odwołuje (to znaczy, że są one traktowane jako całkowicie samodzielne produkty którego właśnie używasz), wszystko powinno być w porządku.

Jeśli nie jesteś tego pewien i / lub chcesz być bardziej bezpieczny, istnieją inne, mniej nakazowe licencje.

Po drugie: Możliwość przeglądania kodu i prawa do korzystania z niego są całkowicie oddzielne . Nie mogę usunąć kodu JavaScript z żadnej witryny i używać go tylko dlatego, że go widzę. Jeśli dostanę dostęp do źródła Windows, nawet legalnie, to nie oznacza, że ​​jest mój. W sieci konieczne jest, aby widoczna była duża część kodu, nadal możesz licencjonować go tak, jak chcesz.

Po trzecie: Jeśli chodzi o licencję na pozostałą część witryny, jest bardzo mało prawdopodobne, że Twój klient z przyjemnością zapłaci Ci za coś, niż uczynisz to otwartym oprogramowaniem . Oprócz podstawowego „dlaczego zapłaciliśmy za coś, co właśnie rozdałeś”, będzie to miało prawdopodobnie konsekwencje dla projektu i marki oraz pozwoli pożyczyć elementy tożsamości korporacyjnej. Jeśli im to sprzedajesz, będą chcieli, aby to był ich . Jeśli zamierzasz je sprzedać, musisz powiedzieć im, że jest tam OSS, ponieważ nie możesz tego sprzedać, tylko inny kod, który tego używa.

Po czwarte: To bardzo dziwny model sprzedający jeden fragment kodu, a wynajmujący drugi . Wydają się być tak silnie współzależne, że jedno jest w dużej mierze bezwartościowe bez drugiego. Przypuszczam, że technicznie mogą wziąć projekt frontonu, który zrobiłeś, i załatać go w coś innego, ale ogólnie rzecz biorąc, kiedy to się dzieje, ludzie po prostu zaczynają od nowa.

Biorąc pod uwagę, że te dwie części nie są tak przydatne bez siebie, proponuję, aby płacili za dostosowanie oprogramowania jako produktu usługowego, którego jesteś właścicielem. To znaczy, że jesteś właścicielem całego kodu, po prostu dostosowujesz go do ich specyfikacji (to znaczy, że jest to marka front endu). Sprawia, że ​​jest o wiele ładniejszy i prostszy.

Jon Hopkins
źródło
Mhhh teraz mam wątpliwości: kiedy tworzę stronę internetową dla klienta, kim jest klient: osoba, której sprzedaję moją stronę lub użytkownicy, którzy będą mieli do niej dostęp? Jeśli sprzedam całą witrynę jako produkt GPL (wraz ze źródłami) mojemu klientowi, czy muszę udostępnić kod źródłowy nawet wszystkim osobom poruszającym się po tej stronie?
Fire-Dragon-DoL
@ Fire-Dragon-DoL - Twój klient jest osobą, która płaci rachunki. Jeśli otrzymujesz kod GPL, musisz go udostępnić publicznie wszystkim, wszędzie , nie tylko klientowi i / lub użytkownikom (i każdy ma prawo do ponownego wykorzystania tego kodu).
Jon Hopkins
Ostatnia część (twoje wyjaśnienie jest naprawdę sprytne, dzięki): Biorąc pod uwagę, że te dwie części nie są tak przydatne bez każdej innej : w takim przypadku, jeśli korzystam z kodu GPL, czy powinienem nadal udostępniać źródła? Ponieważ mogę odczytać twoje zdanie jako „Sprzedaję ci usługę dostosowywania oprogramowania, a nie samo oprogramowanie, które wciąż jest moje”
Fire-Dragon-DoL
Aby odpowiedzieć na twój ostatni komentarz: Nie jestem pewien, mam na myśli, że GPL mówi, że musisz wydać kod wraz ze swoim oprogramowaniem, ale jeśli ktoś porusza się po mojej stronie, nie daję mu mojego programu, on używa mojego programu Myślę, że jest inaczej. GPL nie mówi, że musisz wydać swój program.
Fire-Dragon-DoL
1
@Jon Musisz podać źródło tylko osobom, które dostały plik binarny; nie każdemu, kto pyta. (Oczywiście mają prawo dawać komukolwiek, kogo chcą, ale nie musisz tego robić.)
Sean McMillan
3

Ogólnie rzecz biorąc, jeśli używasz kodu GPL nigdzie w projekcie, a rozprowadzać swój projekt (tzn sprzedać lub dać go innym) należy udostępnić kod źródłowy projektu do publicznej wiadomości w całości , aby być zgodna z licencja GPL.

Jeśli udostępniasz swoją publiczną witrynę jako usługę korzystającą z kodu GPL po stronie serwera, możesz być w porządku, ponieważ nie jest to uważane za redystrybucję.

Kod JavaScript w przeglądarce wydaje mi się szarym obszarem. Technicznie redystrybuujesz kod GPL do przeglądarki wszystkich użytkowników, co spowodowałoby wymóg zwolnienia własnego źródła.

Edycja: Aby udowodnić, o co mi chodzi, dołączę teraz tekst z często zadawanych pytań dotyczących licencjonowania na stronie ExtJS. ExtJs jest strukturą Javascript na licencji GPL. Oto ich interpretacja działania licencji w odniesieniu do jej frameworka (moja kursywą):

Dzieła pochodne
Gdy program wywołuje kod, który jest licencjonowany na licencji GPLv3, wówczas ten program staje się dziełem pochodnym kodu GPL, a zatem podlega licencji na prawa autorskie GPLv3. Jeśli program jest następnie „przekazywany” użytkownikowi, GPLv3 wymaga, aby kod źródłowy tego programu również był „przekazywany”. „Przenoszenie” aplikacji internetowej jest uruchamiane, gdy użytkownik spoza firmy, która utworzyła aplikację, korzysta z aplikacji.

Definicja programu
W przypadku programów zbudowanych przy użyciu współczesnych architektur internetowych, które używają zdalnych interfejsów usług sieciowych do komunikacji wewnętrznej zamiast tradycyjnego łączenia statycznego lub dynamicznego, odpowiednim oprogramowaniem jest całość kodu aplikacji, w tym kodu wykonywanego na serwer i kod wykonywane na kliencie, pod warunkiem, że kod serwera jest integralny z aplikacją.

Przykład
Załóżmy, że aplikacja ma interfejs (który generuje strony internetowe połączone z Ext JS JavaScript), który komunikuje się przez JSON / HTTP z usługą backend. Ta usługa zaplecza zawiera logikę zatwierdzania i sprawdzania poprawności dla samej aplikacji. Nawet jeśli tylko front-end używa kodu Ext JS, należy wziąć pod uwagę, że kombinacja front-end i back-end stanowi aplikację, a kod źródłowy dla back-endu i front-end musiałby zostać dostarczony użytkownikom końcowym aplikacji na GPLv3, jeśli z aplikacji korzysta użytkownik końcowy, który nie jest częścią tego samego podmiotu prawnego, który posiada licencję GPLv3 na kod Ext JS.

Robert Harvey
źródło
2
To źle, GPL nie działa w ten sposób. Dołączenie linku do pliku JS GPL na wyjściu kodu PHP nie powoduje, że kod PHP jest open source.
user229044
@meager: Zobacz moją edycję.
Robert Harvey
To wydaje się całkowicie błędne. Co się stanie, jeśli mój back-end skierowany będzie do strony trzeciej, która korzystała z plików JS GPL? Czy w takim razie muszę otwierać całą aplikację? Nie sądzę, by miało to miejsce w żadnym sądzie. Przepraszam.
Rob
1

W przypadku strony internetowej z javascript po stronie klienta nadal mają kod. Jeśli po prostu weźmiesz ten kod i użyjesz go jako własnego, prawdopodobnie będzie to naruszenie praw własności intelektualnej. Chyba nie wiem, czy nie zawierają licencji. Istnieją również problemy z niewykonalnością. Chyba porozmawiaj z prawnikiem, ale prawdopodobnie nie powiedzą ci nic pożytecznego.

Projekty z wieloma licencjami są skomplikowane. Kod GPL, który współdziała z innymi bibliotekami, prawdopodobnie obejmując również zaplecze po stronie serwera, wymaga, aby były one również GPL. Inne licencje open source są mniej rygorystyczne, takie jak LGPL i licencja BSD.

I nie, jeśli nie chcesz, aby używał twojego kodu php, nie pasuje to do modelu GPL. Jeśli zwolnisz swój kod na licencji GPL, masz ZOBOWIĄZANIE do przekazania kodu źródłowego.

Wygląda na to, że tworzysz witrynę dla kogoś i nie chcesz nikomu rozdawać kodu. Dlaczego w ogóle patrzysz na open source? Jeśli jest to oprogramowanie typu open source, rozdajesz kod.

Philip
źródło
W tej chwili nic nie sprzedaję, po prostu o to pytam, ponieważ uważam stronę internetową za 2 różne części, stronę klienta i stronę serwera. Pierwsza część jest bezpłatna, a druga nie. Jeśli witryna jest „opensource”, czy należy zwolnić kod źródłowy po stronie serwera? Uważam to za trochę trudne, spowoduje to katastrofy w zakresie bezpieczeństwa!
Fire-Dragon-DoL
2
To nie w porządku. Jeśli częścią projektu jest GPL, cały projekt musi zostać wydany na licencji zgodnej z GPL (zakładając, że jest to ten sam program i nie można go podzielić na części). A ponieważ GPL nie przeszkadza w sprzedaży, oznacza to po prostu, że musisz dostarczyć źródłu wszelkie pliki binarne i nie może ograniczać dalszej redystrybucji.
KeithB
Co jeśli witryna może działać bez kodu po stronie serwera, to znaczy, że javascript po prostu wywołuje niektóre strony php, które zawierają dane w formacie json. Inne osoby mogą zbudować stronę internetową po stronie klienta, ale będą musiały podać dane. W tym przypadku javascript wywołuje kod „php” (ale nie odwrotnie). Czy w takim przypadku naruszam GPL?
Fire-Dragon-DoL
@KeithB ACK! Masz rację. Myślałem o GTK i SDL, ale to są LGPL. Dzięki.
Philip
Tak, LPGL to dobra licencja. Chciałbym przy okazji zrozumieć GPL, ponieważ ... cóż, myślę, że trudniej to zrozumieć
Fire-Dragon-DoL