Jak można uciec od GPL?

24

ZASTRZEŻENIE Nie udaję, że wiem coś na temat licencjonowania. W rzeczywistości wszystko, co mówię poniżej, może być całkowicie fałszywe!

Historia:

Ostatnio szukałem przyzwoitego silnika gry i myślę, że znalazłem taki, który bardzo mi się podoba, Cafu Engine .

Mają jednak plan podwójnego licencjonowania, w którym wszystko, co robisz z silnikiem, jest wymuszane na podstawie GPL, chyba że zapłacisz za licencję komercyjną. Nie twierdzę, że to zły silnik, a nawet twierdzą, że są bardzo spokojni w kwestii opłat licencyjnych. Jednak przeraża mnie fakt, że w grę wchodzi nawet GPL.

Więc moje pytanie jest w zasadzie, w jaki sposób można uniknąć GPL.

Oto przykład: silnik id Tech, znany również jako silnik Quake lub silnik Doom, był podstawą popularnego silnika Source. Jednak silnik id Tech został wydany na licencji GPL, a silnik Source jest zastrzeżony. Czy Valve otrzymało inną licencję? A może zrobili coś, by uciec od GPL? Czy istnieje sposób na ucieczkę z GPL? Lub, jeśli użyjesz kodu źródłowego GPL jako podstawy innego projektu, czy będziesz zmuszony użyć GPL i udostępnić swój kod źródłowy światu. Czy jakaś przypadkowa osoba może wziąć silnik id Tech, zmodyfikować go poza punkt rozpoznania, a następnie użyć go jako zastrzeżonego silnika dla produktów komercyjnych? Czy są wymagane, aby uczynić go otwartym oprogramowaniem.

I na koniec, generalnie nie mam problemu z open source. Jednak uważam, że open source ma swoje miejsce, ale nie ma go w bujnym świecie.

tehtros
źródło
3
Odpowiedzieliście na swoje pytanie. Ponadto Source (HL2) nie był oparty na Quake. Myślisz o GoldSrc (HL1).
Justin Skiles,
Szkoda, że ​​zostało to odrzucone, ponieważ pytanie jest jednoznaczne i zawiera kilka dokładnych odpowiedzi.
Kylotan,
1
Zapytaj swojego prawnika, a jeśli o to chodzi, zapytaj firmę, która tworzy silnik, ale jak rozumiem dla silników gier, GPL może dotyczyć tylko kodu i wszelkich wprowadzonych w nim modyfikacji, a nie innych zasobów [takich jak mapy , dźwięki, sztuka itd.]. Dlaczego to dla ciebie nie do przyjęcia?
Random832,
1
Równie dobrze możesz zapytać, w jaki sposób możesz ukraść kod źródłowy od Microsoft i uciec od niego. Masz dwie opcje i tylko dwie opcje: przestrzegaj zasad, które właściciel kodu określa wraz z licencją lub opłatami, lub skorzystaj z czegoś innego.
Sean Middleditch,
1
„Jednak uważam, że open source ma swoje miejsce, ale nie ma go w bujnym świecie”. Ale myślisz, że po prostu użycie czyjś kod i ani płacenie za licencję komercyjną, ani akceptowanie warunków alternatywnych ma swoje miejsce w świecie biznesu? To nie tyle biznes, co kradzież. Nie dlatego, że to nie happenened w świecie biznesu dość często ... - Wygląda na to, że naprawdę nie chce open source (co zrozumiałe) z punktu widzenia programisty, ale mają raczej dogmatyczną niechęć wobec niego z punktu widzenia polityki pieniężnej . Te widoki nie są kompatybilne.
leftaroundabout

Odpowiedzi:

28
  1. Jeśli posiadasz prawa autorskie do kodu źródłowego, możesz zwolnić ten kod w dowolny sposób. Wydanie go na licencji GPL nie wyklucza wydania na podstawie innej nieograniczonej lub nawet bardziej restrykcyjnej licencji. Nie jestem pewien szczegółów Source / id Tech, ale przypuszczam, że Valve wynegocjowało własną licencję.

  2. Jeśli używasz kodu GPL w swoim projekcie, musisz podać kod źródłowy użytkownikom. Nie oznacza to, że musisz prowadzić stronę internetową lub przechowywać jej kopię, aby zapewnić ją na żądanie. Nie oznacza to, że musisz podać wszystkie zmiany do wiadomości publicznej, gdy tylko je wprowadzisz - tylko wtedy, gdy redystrybuujesz oprogramowanie, kod i wprowadzane zmiany idą w parze z nim. ( http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic )

  3. Jeśli używasz nawet linii kodu GPL w swoim projekcie, jesteś teraz związany warunkami GPL. Jednym (choć nie jedynym sposobem) jest również zwolnienie kodu na GPL (lub całkowite jego zwolnienie).
    Jeśli zmodyfikujesz go poza punktem uznania i nie będziesz przestrzegać warunków, prawdopodobnie uciekniesz (tzn. Nie zostaniesz pozwany), ale to, że uciekniesz, nie oznacza, że ​​nie jesteś t naruszając licencję lub napraw ją.

  4. Aby użyć „kodu GPL” bez GPL, musisz uzyskać go na innej licencji, aby nie był to już „kod GPL” (płacąc Cafu). Z GPL nie ma wyjścia - została zaprojektowana specjalnie jako licencja wirusowa przez jej wynalazców, a jej cel zostałby zanegowany, gdyby to możliwe.

To powiedziawszy, jeśli chcesz użyć kodu GPL w swoim programie, możesz utworzyć autonomiczny byt, który będzie używany przez twoją aplikację (czy dynamiczne linkowanie spełnia to jest dyskusyjne - ale ogólnie jest akceptowane, że gdy wynikiem jest pojedynczy program, GPL jest wywoływana ). Na przykład możesz stworzyć nowy projekt z kodem GPL i swoim, który wydasz za pomocą (zastrzeżonej) aplikacji, wraz z GPL i kodem źródłowym. Twoja aplikacja komunikuje się z nim jednak za pośrednictwem CLI lub RPC i dlatego może pozostać wolna od GPL.

Obecnie wielu programistów stosuje LGPL, co pozwala na łączenie w większości jego form bez konieczności przenoszenia GPL do docelowego projektu. (Jeśli jednak zmodyfikujesz samą bibliotekę, nadal musisz podać kod biblioteki).

Zauważ, że zgodnie z punktem 2, uważane jest publikowanie wszelkich ulepszeń wprowadzonych do kodu źródłowego, niezależnie od licencji.

sebf
źródło
9
Jeśli użyjesz nawet linii kodu GPL w swoim projekcie, twój projekt jest teraz objęty licencją GPL. Nie. Jeśli użyjesz wiersza kodu GPL, twój projekt narusza licencję GPL i ktokolwiek napisał ten wiersz, może cię pozwać. Jednym z możliwych rozwiązań jest wydanie projektu na licencji GPL, ale nie dzieje się to automatycznie.
TRiG,
3
(To nadal nie powstrzymuje Cię przed sprzedażą lub wydaniem na podstawie mniej restrykcyjnej licencji oprócz GPL ...) Tak, to prawda. Jeśli wydam kod na licencji GPL, ktoś inny nie może przyjść i po prostu umieścić ten sam kod w (powiedzmy) domenie publicznej. Nadal jestem właścicielem tego kodu; Udostępniłem go innym tylko na warunkach GPL.
Evan Harper,
4
Pomimo drobnych niedokładności +1, ponieważ wspomina o najbardziej oczywistym, najłatwiejszym, najszybszym i najszerzej dostępnym rozwiązaniu: Aby użyć „kodu GPL” bez GPL, musisz uzyskać go na innej licencji . Skontaktuj się z właścicielami praw autorskich, wynegocjuj inną licencję. To oczywiście działa również na każdą inną licencję.
Martin Sojka,
11
Ta odpowiedź i wszystkie komentarze pomijają jeden ważny warunek: warunki GPL dotyczą dystrybucji , a nie używania . Jeśli użyjesz tysiąca wierszy kodu GPL w swoich wewnętrznych narzędziach (których nie rozpowszechniasz), nadal nie jesteś związany warunkami GPL.
MSalters
1
„zapewne ci się uda”. Hmmm, po prostu uwielbiam to ciepłe i niewyraźne uczucie wynikające z tej odpowiedzi.
Trevor Boyd Smith,
64

Unikasz GPL, płacąc programistom za licencję komercyjną.

Tapio
źródło
27
+1, myślę, że Captain Obvious nie jest jakoś zarejestrowany na
stackexchange
1
+1, chociaż dla większej dokładności masz zapewnione pozwolenie na używanie kodu bez GPL. Nie musi to oznaczać, że musisz zapłacić (choć często tak będzie).
Kylotan,
nie bardzo, mówisz to tak, jakby zawsze istniała komercyjna alternatywa dla każdej licencji GPL na ziemi; zależy to od strategii właściciela tego kodu.
user827992,
4
Powiedziałbym: „Unikasz GPL, płacąc programistom za licencję komercyjną, dając im w ten sposób odpowiednią część pieniędzy, które masz nadzieję zarobić jako nagrodę za wiele lat pracy włożonych w ich pisanie”.
DJClayworth,
1
Niemal „Unikasz GPL, płacąc programistom za kopię kodu, który nie ma obciążenia GPL (coś w rodzaju MIT)”.
Jonathan Dickinson
10

Zasadniczo pytasz: „Jak ukraść kod innej osoby?” Jeśli chcesz użyć czyjegoś kodu chronionego prawem autorskim, musisz uzyskać od niego licencję. Jeśli jedyną licencją, jaką masz od nich na używanie ich kodu, jest GPL, musisz go przestrzegać, w przeciwnym razie naruszasz ich prawa autorskie. Jeśli uda ci się uzyskać od nich inną licencję na ich kod, to jest w porządku, ale nie unikniesz licencji GPL.

Jason Goemaat
źródło
3
-1. Uciekasz przed GPL: ponieważ dają ci zupełnie inną licencję. Nie kradniesz również ich kodu - jeśli wykonasz kroki, o które cię proszą (np. Płacąc pieniądze).
Jonathan Dickinson
5
Nie, w takim przypadku użycie ich kodu nie ma absolutnie nic wspólnego z GPL. Ucieczka oznacza bycie uwięzionym przez coś.
Jason Goemaat,
@JonathanDickinson Myślę, że jego celem jest to, że OP nie chce płacić za licencję. Chce go otrzymać za darmo, ale bez ograniczeń wynikających z GPL.
Paul,
To skłoniło mnie do zbliżenia się do obciążenia (zamiast kradzieży) „Jednak przeraża mnie fakt, że dotyczy to nawet GPL”. Brzmi bardziej jak (uzasadniony) strach przed wiszącym nad kodem sztandarem GPL.
Jonathan Dickinson
2
@Jathanathan. OP twierdzi, że zie nic nie wie o licencjach, więc podejrzewam, że strach przed GPL nie jest „uzasadniony”.
TRiG
8

Czy naprawdę musisz uciec od GPL? Wszystko, czego wymaga GPL, to wydanie własnego kodu źródłowego na podstawie GPL. Nie dotyczy poziomów gry, zasobów sztuki itp. Możesz nadal sprzedawać swoją grę i udostępniać kod za pośrednictwem GPL osobom, które ją kupią, jeśli chcą, lub udostępnić online wszystkim.

Jedynym problemem jest to, czy chcesz korzystać z bibliotek innych firm niż GPL, ponieważ nie będziesz mógł ich rozpowszechniać razem z silnikiem GPL.

Jeśli musisz uciec od GPL, spójrz na ich stronę licencyjną, są one wystarczająco elastyczne, abyś mógł dojść do porozumienia.

Nacięcie
źródło
Zgadzam się z tą odpowiedzią, zwłaszcza że większość ludzi tak naprawdę nie dodaje tak dużej wartości dodanej podczas korzystania z silnika. To inne aktywa naprawdę tam, gdzie jest wartość.
Paul,
5

Istnieje wiele nieporozumień na temat tego, czym właściwie jest GPL i co właściwie oznacza, i wykrywam jedno w twoim pytaniu:

wszystko, co robisz z silnikiem, jest wymuszane na licencji GPL

Tak naprawdę wcale tak nie jest. Źródło silnika na pewno pozostaje na licencji GPL, ale opłaca się przeczytać FAQ na temat GPL, w szczególności jego części, które odnoszą się do wyników programu GPL, które moim zdaniem są tutaj istotne: http: // www. gnu.org/licenses/gpl-faq.html#GPLOutput

Czy jest jakiś sposób, że mogę GPL uzyskać wyniki uzyskiwane przez ludzi z mojego programu? Na przykład, jeśli mój program służy do opracowywania projektów sprzętowych, czy mogę wymagać, aby projekty te były bezpłatne?

Zasadniczo jest to prawnie niemożliwe; prawo autorskie nie daje ci prawa głosu w zakresie wykorzystania danych uzyskanych przez ludzi z ich danych za pomocą twojego programu. Jeśli użytkownik korzysta z programu do wprowadzania lub konwertowania własnych danych, prawa autorskie do danych wyjściowych należą do niego, a nie do Ciebie. Mówiąc bardziej ogólnie, gdy program tłumaczy swoje dane wejściowe na inną formę, status praw autorskich wyjścia dziedziczy status danych wejściowych, z których został wygenerowany.

Zatem jedynym sposobem, w jaki możesz wypowiedzieć się na temat wykorzystania danych wyjściowych, jest skopiowanie (mniej więcej) znacznej części danych wyjściowych z tekstu w programie. Na przykład część danych wyjściowych Bison (patrz wyżej) byłaby objęta GNU GPL, gdybyśmy nie zrobili wyjątku w tym konkretnym przypadku.

Możesz sztucznie zmusić program do skopiowania określonego tekstu na jego wynik, nawet jeśli nie ma technicznych powodów, aby to zrobić. Ale jeśli ten skopiowany tekst nie ma praktycznego celu, użytkownik może po prostu usunąć ten tekst z wyniku i użyć tylko reszty. Wówczas nie musiałby przestrzegać warunków redystrybucji skopiowanego tekstu.

To trochę zmienia twoją sytuację. W rzeczywistości nie jesteś w sytuacji, w której wszelkie treści, które opracowujesz dla tego silnika lub za jego pomocą, również podlegają GPL; ta treść jest twoja, masz do niej prawa autorskie i możesz licencjonować ją według własnego uznania.

IANAL itp

Maximus Minimus
źródło
2
Nic nie wiem o konkretnym silniku, ale powyższe jest prawdą tylko wtedy, gdy silnik bierze twoje projekty gier i w rezultacie tworzy samodzielną grę. Jeśli sam silnik lub jego część zostanie rozpowszechniony z grą lub połączony z kodem gry, GPL ma zastosowanie do całości.
rjmunro,
Uważam, że silnik może być licencją GPL, ale treść gry nie. Treść gry nie jest kodem i nie „łączy się z” silnikiem w taki sam sposób, jak kod; mapy, tekstury, modele itp. nie łączą się w ten sposób z silnikiem. Niestety często zadawane pytania na temat GPL są niejasne (co jest ważnym powodem, dla którego chcemy uniknąć używania GPL).
Maximus Minimus
Ta odpowiedź zawiera więcej informacji na temat tego, co dzieje się z treściami utworzonymi za pomocą niektórych narzędzi GPL. Podobnie jak dokument napisany w edytorze tekstu GPL, nie będzie zmuszony do posiadania licencji GPL. Ale nie można tego przetłumaczyć na silnik gry. Silnik gry nie pobiera kodu i nie produkuje samodzielnej gry bez związku z silnikiem - włączysz cały silnik do gry.
Matsemann,
4

Tylko osoba, grupa osób lub działanie, do którego należy kod, może zmienić własną licencję.

Jeśli ten kod należy do ciebie, możesz zmienić licencję za każdym razem, kiedy chcesz, zdecydować się na zapłatę czy nie, możesz robić, co chcesz, ale jeśli kod nie jest twój, trzymaj się licencji, jeśli chcesz uniknąć problemów; duże kłopoty.

Właściciel może również odmówić przyjęcia zapłaty, jest to sytuacja taka jak w przypadku patentów, jeśli możesz udowodnić, że posiadasz kod, nie oznacza, że ​​wystawiasz go na rynek za pieniądze, wiele innych razy patent lub licencja mają zmusić rynek lub użytkownika do pozostania w ograniczonej przestrzeni.

Odpowiedź brzmi „nie”, a jedynym sposobem na zmianę licencji jest nadzieja, że ​​właściciel to zrobi.

użytkownik827992
źródło
Całkiem dobra jako ogólna odpowiedź - jednak w tym przypadku widać, że akceptują płatności za kopie kodu z inną licencją. +1 (podaję też bardziej ogólne odpowiedzi :)).
Jonathan Dickinson,
4

Pomysł jest prosty - jeśli firma napisała kod, to posiada wszystkie prawa, a tym samym może przekazać go niektórym stronom na licencji GPL, innym na podstawie licencji komercyjnej, a komuś innemu może dać go w prezencie lub czynsz lub cokolwiek chcą.

Fakt, że udostępnili kod jakiejś stronie na podstawie GPL, nakłada ograniczenia na GPL na tę stronę , ale nie może nakładać żadnych ograniczeń na właściciela kodu .

Tylko jeśli właściciel kodu użyje w swoim oprogramowaniu kodu GPL innej firmy , napisanego i będącego własnością innej osoby, wówczas cały projekt zostanie zablokowany na GPL na zawsze (lub dopóki nie usunie tego kodu GPL trzeciej strony lub nie uzyska kodu innego niż GPL Licencja GPL). Pamiętaj, że to samo dotyczy w 100% komercyjnego silnika bez licencji GPL - jeśli zawierają kod GPL, naruszają GPL, nie mają prawa do sprzedaży licencji komercyjnych i nie masz prawa do zakupu takiej licencji.

Zatem jeśli cały kod w „Cafu Engine” jest napisany przez pracowników Cafu, nie masz problemu z GPL. Jeśli otrzymasz licencję komercyjną od Cafu, wówczas licencja GPL w ogóle cię nie dotyczy .

Sandman4
źródło
Ta odpowiedź jest dobra, z tym wyjątkiem, że wydaje się, że oryginalny plakat jest częścią personelu Cafu i jest właścicielem kodu, co nie wydaje się być prawdą.
Kylotan
I nie , nie zakładamy, że. Zastanawiam się, co sprawiło, że tak pomyślałeś.
Sandman4,
W ostatnim akapicie w zasadzie to mówi się, ponieważ utożsamia „personel Cafu” z „Ty”.
Kylotan,
@Kylotan Edytowałem ostatni akapit, aby był nieco bardziej przejrzysty. Nie potrafię tego poprawnie sformułować, każdy może lepiej to sformułować.
Sandman4,
To najlepsza odpowiedź na dłuższą metę. Zredagowałem ostatni akapit, ale nie mam uprawnień do edycji na tej stronie, więc będzie musiał czekać na zatwierdzenie.
rjmunro,
2

Jest jeden sposób na „ucieczkę” GPL lub (praktycznie) każdą inną licencję. Wykonaj wdrożenie w pomieszczeniu czystym.

Zatrudnij dwie grupy osób. Zadaniem pierwszej grupy jest dokładne przestudiowanie oryginalnego materiału i jego opisanie. Druga grupa, która nigdy nie zobaczy oryginalnego materiału, napisze nową implementację na podstawie opisu.

Tak powstał BIOS na oryginalnych klonach komputerów; BIOS był jedynym bitem, który IBM nie pozwolił innym ludziom kopiować.

Nie oznacza to, że jesteś bezpieczny przed procesami sądowymi. Patenty i bzdury „patrz i czuj” są nadal dostępne, a przynajmniej w Stanach Zjednoczonych każdy może pozwać kogokolwiek bez konkretnego powodu (a przynajmniej tak się wydaje). .)

Jari Komppa
źródło
1

Jeśli chodzi o pytanie dotyczące silnika Quake: kod można wydać na licencji GPL, a także na innych licencjach. Valve licencjonowało firmę Quake, wypłacając pieniądze na rzecz iD. Później wszyscy na świecie otrzymali licencję GPL (sic) na korzystanie z kodu źródłowego Quake. Kiedy iD GPL zainstalował silnik, nie dokonali wstecznej konwersji innych licencji na GPL; to byłoby niemożliwe. W rzeczywistości iD może nadal licencjonować silnik Quake na innej licencji, jeśli sobie tego życzy, ponieważ jest właścicielem oryginalnego prawa autorskiego.

Gregory Avery-Weir
źródło