2009-08-06 12 views
67

Jeśli używam komponentów JavaScript z licencją GPL na mojej stronie internetowej, czy zostałoby to uznane za publikację publiczną (ponieważ kod po stronie klienta jest ładowany do przeglądarek użytkowników za pośrednictwem http) i Muszę "otworzyć-źródło" całej strony internetowej?Ograniczenia GPL w bibliotekach javascript

Czy możemy zatem powiedzieć, że użycie komponentów JavaScript na stronie internetowej jest dystrybucją kodu i wiąże się z dystrybucją całego kodu strony?

Mam nadzieję, że pytanie jest jasne i możesz mi pomóc zrozumieć ten aspekt GPL.

+5

Czy ktoś może odpowiedzieć poprawnie? Pytanie brzmi, kiedy używam GPL-a JavaScript z zastrzeżonego przez moją firmę skryptu JavaScript, czy GPL infekuje nasz zastrzeżony JavaScript, a może całą aplikację internetową? Czy musimy udostępnić część aplikacji po stronie klienta jako GPL, jeśli jest dostępna dla klientów? Fakt, że musimy o to zapytać, naprawdę pokazuje, jak szalona jest GPL, moim zdaniem. Jestem pewien, że odpowiedź brzmi "tak, cała twoja aplikacja jest zainfekowana", tak jak w przypadku każdego innego języka programowania. Nie udostępniaj bibliotek javascript na licencji GPL do ogólnego użytku. –

+1

@SamWatkins Tak, na licencji GPL JavaScript powoduje zainfekowanie Twojego zastrzeżonego JavaScriptu (chyba że nie używasz lub nie odwołujesz się do kodu GPL w swoim kodzie). Kod zaplecza wcale się nie infekuje. Więcej szczegółów w [tym artykule] (http://greendrake.info/#nfy0). – Greendrake

Odpowiedz

4

Użytkownik rozprowadził bibliotekę JavaScript dla użytkownika; w związku z tym musisz spełnić wymagania GPL dotyczące dystrybucji. Niezależnie od tego, czy wymaga to rozpowszechniania reszty witryny, sytuacja staje się skomplikowana - radziłbym porozmawiać z właściwym prawnikiem o dokładnej sytuacji, jeśli zastanawiasz się nawet nad tą trasą, i pamiętaj, że jest to co najmniej narusza ducha licencji, niezależnie od tego, czy narusza ona również literę licencji.

+5

+1 - porozmawiaj z prawnikiem. – Quentin

+1

@Quentin: dlaczego za każdym razem musimy rozmawiać z warstwą na temat tego samego problemu? To już jest FAQ. –

1

To zdecydowanie się komplikuje. Dam ci przykład. Co jeśli korzystasz z licencji jQuery GPL (znam it's dual licensed, ale zignorujmy to przez sekundę).

Google ma rozkład publiczną jQuery (między innymi ram JavaScript), które rozprowadzać je na ich CDN, na przykład:
http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js

Więc w tym przypadku, nie jesteś jedynym, który jest rozprowadzenie JavaScript biblioteka dla użytkownika, Google jest ;-)

uwaga: jak @bdonlan opisuje tylko doświadczony prawnik powinien być tym, który naprawdę ważą w tej sprawie. Przekazałem tylko tę odpowiedź, aby podać kontekst dla rzeczy, o których możesz porozmawiać z prawnikiem.

+0

Ad "Więc w tym przypadku nie jesteś tym, który rozpowszechnia bibliotekę javascript dla użytkownika, Google to" Nie ma znaczenia, kto się rozpowszechnia - twój kod zależy od biblioteki licencjonowanej przez GPL (to jest jak użycie C/Pliki nagłówkowe C++), więc powinno to być również na licencji GPL. Więc javascript po stronie klienta jest pod GPL, ale jest pytanie, czy twój kod po stronie serwera powinien być licencjonowany na licencji GPL. – Franta

13

Nie jestem prawnikiem. Rozmawiałem z prawnikami o korzystaniu z licencji GPL i LGPL, aby kod był interpretowany/dynamicznie połączony z niewolnym oprogramowaniem. Wszyscy mamy duże bóle głowy. Nie chodzi tylko o to, czy musisz zwolnić resztę swojej witryny na warunkach GPL. Chodzi o to, czy niewolna przeglądarka może legalnie uruchomić kod GPL.

Moja najlepsza pomoc, która nie jest zgodna z prawem, polega na tym, że nigdy nie próbuję używać GPL do kodu Javascript. Nigdy nie wypuściłbym biblioteki Javascript na GPL, a gdybym znalazł jakiś kod, który chciałem użyć, spróbowałbym nakłonić autora, by dał mi wyjątek. LGPL may be to lepszy wybór, ale ta licencja jest tak skomplikowana, że ​​sugeruję jej unikanie.

FSF sami mają odpowiedź dla siebie w ich FAQ If a programming language interpreter has a license that is incompatible with the GPL, can I run GPL-covered programs on it?. Ta sama odpowiedź jest frustrująco niejednoznaczna, ale sugeruje ścieżki, w których można uruchomić kod GPL w przeglądarce innej niż GPL. Możesz również znaleźć ciekawy esej z FSF The Javascript Trap, choć znowu nie daje on jasnej odpowiedzi na twoje pytanie.

Dla kontekstu pomaga pamiętać, że GPL i LPGL zostały napisane w czasach Unixa, kiedy większość wszystkiego była statycznie połączona. Nie dynamiczne łączenie żadnych języków tłumaczeń, gdzie same skrypty były uważane za cenne własności intelektualnej, itp

+9

IANAL, ale powiedziałbym, że skoro przeglądarka i skrypt nie są ze sobą powiązane, a kombinacja nie jest rozprowadzana, to każda przeglądarka może uruchomić kod GPL. –

+11

Jest całkowicie OK, aby uruchomić oprogramowanie GPL (na przykład Gimp) w systemie Windows. Jak wyglądałby kod JavaScript GPL w Internet Explorerze? To pytanie FAQ z FSF, które łączysz, wydaje się całkowicie jasne i niejednoznaczne. – Pointy

+2

Ponieważ JavaScript dynamicznie przechwytuje w/linki do zdarzeń DOM dostarczonych przez IE. Naprawdę uważam, że jest to skrajny przypadek, ale to właśnie wydaje się argumentować FSF w eseju "The Javascript Trap". – DeepSpace101

2

I tylko dodać więcej oliwy do ognia ...

Reading GPL v3 jest oczywiste, że jeśli to gpl'd pracy, musisz podać źródło z tekstem licencji na górze pliku i prawami autorskimi.

Więc jeśli usuwam komentarze i spacje z pliku i skracam nazwy zmiennych, wtedy "rozpowszechniam" je do czyjejś przeglądarki (oczywiście w formie źródłowej) prawdopodobnie naruszałoby to licencję. BTW, rozwiązaniem może być binarny uuid, który oznacza odpowiednie licencje na zniekształcone pliki. Myśli?

Jeśli udostępniam źródło biblioteki i moje własne "źródło" przy użyciu biblioteki z oznaczeniem GPL, czy dostarczenie jej do przeglądarki zapewnia swobodny dostęp do źródła?

Myślę, że istnieje wystarczająco dużo luk w tym, aby licencja stała się niewykonalna.

moje 2 centy/nie jest prawnikiem.

0

Ten facet napisał artykuł o tym: http://stuck-in-windows.blogspot.com/2009/02/fud-over-javascript-and-gpl.html

W swoim artykule przytacza GNU internetowej FAQ, który ma Q & A:

(q) firma działa zmodyfikowana wersja programu GPL na stronie internetowej . Czy GPL mówi, że musi wydać zmodyfikowane źródła?

(A) GPL umożliwia każdemu stworzenie zmodyfikowanej wersji i korzystanie z niej bez rozrzucania jej innym osobom. To, co ta firma robi, to specjalny przypadek. W związku z tym firma nie musi udostępniać zmodyfikowanych źródeł .

Często zadawane pytania odnoszą się następnie do GNU Affero GPL, która wymaga wydania całego kodu źródłowego witryny.

+10

JavaScript jest inny niż kod internetowy backendu, ponieważ jest "rozprowadzany" do użytkownika końcowego przez pobranie. Zinterpretuję to pytanie i odpowiedź jako odnoszące się do kodu back-end, który nie jest dystrybuowany. – Nils

-2

Dla np. Magento używa ExtJS, który jest pod GPL v3. Teraz, kiedy Magento jest pobierane i instalowane przez właścicieli sklepów, masz na myśli, że właściciele sklepów muszą podać link do ich "całej witryny internetowej" wraz z ich Produktami? Zabawny Lol

Tak więc, moim zdaniem, biblioteka JavaScript licencjonowana na licencji GPL v3 jest dobra dla każdego projektu, chyba że próbujesz zmodyfikować bibliotekę JavaScript i sprzedać ją komercyjnie lub związaną z usługami komercyjnymi.

+1

ExtJS jest również komercyjnie licencjonowany ... czy wiesz, czy Magento używa płatnej wersji? Wydaje mi się, że zespół ExtJS argumentowałby, że jeśli chcesz korzystać z wersji gplv3, musisz mieć open-source inne utwory, co jest częścią tego, jak ludzie płacą. – Nils

+0

GPL nie zabrania pobierania opłat za bibliotekę, ale nie pozwala ograniczać kupującego, aby kontynuować dystrybucję. –

2

Twoja aplikacja + biblioteka GPL + wersja -> aplikacja GPL z otwartym kodem źródłowym.

Jest to zamiarem FSF i GPL i ma zastosowanie niezależnie od tego, jakiego języka programowania używasz.

Użycie biblioteki JavaScript w GPL spowoduje zainfekowanie całego kodu JavaScript. Prawdopodobnie nie zainfekuje twojego HTML, zawartości strony ani kodu po stronie serwera.

Proszę więc nie wydawać skryptów JavaScript na licencji GPL, jeśli zamierzacie je używać do ogólnego użytku.

+1

Kod GPL nie może być dowolnie mieszany z różnymi innymi kodami copyleft, takimi jak kod licencjonowany Apache. Jeśli chcesz otrzymać bezpłatną licencję, spójrz na licencje MIT lub BSD. Kod pod tymi licencjami może być swobodnie używany w każdym projekcie oprogramowania. To jest dobre! Możesz również zwolnić swój kod do domeny publicznej, tak jak ja. Wolałbym mieć własnościowe oprogramowanie niż GPL. Przynajmniej nie udaje, że jest wolny i wysysa tyle wysiłku z prawdziwego wolnego oprogramowania. Jeśli chcesz mieć darmowe jądro, pozbądź się Linuksa i spójrz na * BSD. Linux nigdy nie może być wolnym oprogramowaniem, dopóki GPL nie zostanie uznana za niezgodną z prawem. –

+2

Co z tym widocznym wyjątkiem dla JavaScript wymienionym w GPL FAQ? http://www.gnu.org/licenses/gpl-faq.html#WMS – BigOmega

+2

Ten wyjątek jest ważny tylko wtedy, gdy autor doda go do licencji. W każdym razie nadal zanieczyszcza twój drugi kod javascript. Równie dobrze można dodać "Jako wyjątek wyjątkowy, zapomnij o GPL i rób co chcesz z tym kodem". Nazywam to "domeną publiczną". –

Powiązane problemy