GPL w miejscu pracy?

12

Kiedyś przeprowadziłem wywiad w firmie konsultingowej, w której przyszło mi do głowy, że używają produktów typu open source (co jest świetne, intensywnie korzystałem z Hibernacji, JBossa itp.). Jedną rzeczą, która mnie zaskoczyła, było to, że zapytałem, czy podczas pisania aplikacji dla klientów używali OSS na licencji GPL, powiedzieli „Jasne, cały czas! Tak długo, jak klient otrzymuje to, czego chce i jest szczęśliwy”. Teraz nie jestem prawnikiem ani wielkim entuzjastą licencji, ale miałem wrażenie, że używając kodu GPL (powiedzmy, że dołączasz bibliotekę), musisz zwolnić całą aplikację na tej samej licencji. Kiedy zwróciłem na to uwagę, otrzymałem szybką odpowiedź: „Po zakończeniu dajemy klientom cały kod źródłowy, więc to naprawdę nie jest problem”.

Nie chcąc dalej naciskać na kwestię (wywiady nie są miejscem takich argumentów), pozwalam jej się przesuwać. Jednak nadal mnie to niepokoi w związku z tą konkretną praktyką biznesową. Jakie jest oficjalne słowo na kodzie licencjonowanym GPL i jak musi być „otwarte”? Czy musisz to opublikować i powiedzieć: „Moja firma korzystała z tej biblioteki, więc tutaj jest strona, na której możesz pobrać naszą aplikację systemową do zakupów i zamówień, którą budujemy miliony dolarów”. Czy w tej sytuacji firma ma prawo używać kodu GPL bez wiedzy klienta? Czy wystarczy „dać im źródło”?

Ryan Hayes
źródło

Odpowiedzi:

15

Obowiązują standardowe wyłączenia odpowiedzialności: nie jestem prawnikiem i ty też.

U podstaw GPL leży ochrona praw osób korzystających z programu również w celu uzyskania i korzystania ze źródła. To nie mandat, który publikuje źródła dowolnego programu piszesz, że zastosowania kodu na licencji GPL, a jedynie, że jeśli opublikują takiego programu należy również podanie źródła.

Mogę pisać dowolną liczbę aplikacji na własny użytek, pobierać kod GPL i nigdy nikomu nie podawać tego źródła. Mogę pisać takie aplikacje do użytku wewnętrznego przez moją firmę i muszę podać źródło tylko tym osobom w mojej firmie, które korzystają z programu (praktycznie mówiąc, i tak musiałbym to zrobić, gdyby mieli jakiś dobry powód, aby o to poprosić). Jeśli piszę taki program za pośrednictwem innego podmiotu, ja po prostu dać im kodu (i było jasne, że program jest na licencji GPL) - jeśli oni iść do ich dystrybucji, ale także musi uczynić źródło dostępne, ale nie ma mnie na zdjęciu.

Jedyną obawą, jaką może mieć Twoja firma konsultingowa, jest to, że nie poinformowali swoich klientów o licencji, której dotyczył podany przez nich kod. Właściwie to kłamię - jeśli wynegocjowali inną licencję ze swoimi klientami (klient posiada wszelkie prawa do kodu ...), mogliby również być w gorącej wodzie z tego powodu ... Ale jest to prawdą w przypadku dowolnego kodu strony trzeciej : chyba że jest to domena publiczna, musisz postępować zgodnie z licencją i nie wolno jej ponownie licencjonować, chyba że to prawo zostało przyznane przez właściciela praw autorskich.

Shog9
źródło
1
Masz rację, AGPL jest jednak bardziej rygorystyczne
@Pierre: poprawne, w tym sensie, że nie można wyjść z dostarczania źródła użytkownikom, pozostając przy aplikacjach serwerowych.
Shog9,
1
Ciekawy. Zatem w standardowej licencji GPL, jeśli piszesz aplikację SaaS, nie musisz podawać źródła, ponieważ technicznie „nie rozpowszechniasz” samej aplikacji?
Ryan Hayes
2
@Ryan: racja. Nie musisz przekazywać go użytkownikom . Każdy, kto otrzymuje skompilowany kod, nadal otrzymuje źródło.
Shog9
7

Jako konsultant staram się wcześnie poruszyć problemy z licencją u mojego klienta, aby mógł dokonać świadomego wyboru. Jeśli najlepsza technologia, którą można zastosować do ich problemu, jest objęta licencją GPL, ale nie mogą one być zgodne z licencją, to nie mogę jej użyć. W praktyce miało to dwa skutki.

Po pierwsze, wielu chętnie płaci za produkt komercyjny, aby uniknąć tego problemu. Jest to szczególnie powszechne w świecie systemów wbudowanych, w którym zgodność z GPL wymagałaby opublikowania pełnego projektu sprzętu i udokumentowania, jak to wszystko działa, aby spełnić ducha GPL, co jest próbą umożliwienia użytkownikowi końcowemu zmiany produktu . Chociaż możliwe jest wytwarzanie produktów, które są otwarte, wymaga to dużego zaangażowania na wszystkich poziomach firmy. Większy problem polega na tym, że wiele komponentów projektu jest nam udokumentowanych przez ich twórców w ramach NDA i jest praktycznie niemożliwe utworzenie kodu zgodnego z GPL, który korzysta z dokumentacji wydanej w ramach NDA.

Po drugie, teraz preferujemy licencję MIT i jej wielu krewnych (co jasno pokazuje, że komercyjne wykorzystanie jest dopuszczalne) nad GPL przy każdej wersji. Nie spotkałem się z żadnym problemem ze strony klienta, aby udostępnić poprawki i ulepszenia wprowadzone w odpowiednich społecznościach produktów. Ponieważ licencja jest zezwalająca, mogę przestrzegać moich zobowiązań wynikających z umowy NDA, zadowolić mojego klienta i wnosić wkład w odpowiednie społeczności.

RBerteig
źródło
2

Open source niekoniecznie oznacza darmowy.

IANAL też, ale ogólnie mówiąc, GPL wymaga podania kodu źródłowego dla twojego projektu. Z pewnością możesz sprzedać produkt komuś innemu. Uważam jednak, że nie można ich powstrzymać od rozdania. Prawdopodobnie to sprawia, że ​​większość oprogramowania GPL jest darmowa, jak w przypadku piwa. Jestem całkiem pewien, że nie musisz publikować swojego kodu w world + dog tylko dlatego, że jest on na licencji GPL.

Od preambuły do ​​v3 GPL (podkreśl moje własne):

Licencje na większość oprogramowania i inne praktyczne prace mają na celu pozbawienie Twojej wolności udostępniania i zmiany utworów. Natomiast GNU General Public Licence ma na celu zagwarantować swobodę udostępniania i zmiany wszystkich wersji programu - aby mieć pewność, że pozostanie wolnym oprogramowaniem dla wszystkich użytkowników. My, Fundacja Wolnego Oprogramowania, korzystamy z Powszechnej Licencji Publicznej GNU dla większości naszego oprogramowania; dotyczy to także każdej innej pracy wydanej w ten sposób przez jej autorów. Możesz zastosować go również w swoich programach.

Mówiąc o wolnym oprogramowaniu, mamy na myśli swobodę, a nie cenę. Nasze ogólne licencje publiczne mają na celu zapewnienie, że masz swobodę rozpowszechniania kopii bezpłatnego oprogramowania (i pobierania opłat za nie, jeśli chcesz), że otrzymujesz kod źródłowy lub możesz go uzyskać, jeśli chcesz, że możesz zmienić oprogramowanie lub użyj jej w nowych darmowych programach i wiesz, że możesz to robić.

( źródło )

Czy w tej sytuacji firma ma prawo używać kodu GPL bez wiedzy klienta? Czy wystarczy „dać im źródło”?

To jest nieco inne pytanie. Jeśli klient ma jakieś oczekiwania, a jest to podyktowane umową, firma może mieć problem. W przeciwnym razie od nich zależy, jak najlepiej wykonać to zadanie. Powinny jednak zawierać powiadomienie w kodzie źródłowym dotyczące licencji. Nie jestem pewien, czy muszą ujawnić to swojemu klientowi w jakikolwiek inny sposób.

George Marian
źródło
2
GPL nie wymaga, abyś aktywnie publikował źródło, ale wymaga, abyś opublikował użytkownikowi fakt, że program jest GPL i że dostarczysz źródło na żądanie (być może podlegać uczciwej i rozsądnej opłacie za obsługę). W praktyce ten drugi wymóg jest często obsługiwany przez plik tarball lub zip pod adresem URL, który można podać na żądanie. Jako konsultant masz obowiązek poinformować swojego klienta, jakie będzie jego obciążenie, jeśli przekaże on twoją pracę innym osobom, ponieważ zostaną wydawcami na licencji GPL.
RBerteig
@RBerteig Dziękujemy za wyjaśnienie. Minęło trochę czasu odkąd przejrzałem warunki licencji.
George Marian
„Z pewnością możesz sprzedać produkt komuś innemu. Uważam jednak, że nie możesz go powstrzymać przed wydaniem go”. Zależy od tego, czy dajesz im coś na licencji GPL, czy też jesteś oryginalnym posiadaczem praw autorskich i ponownie udzielasz im licencji na innej licencji.
endolith,
-5

Nie, masz rację. Dlatego:

Zastanów się, czy mamy aplikację na licencji GPL. Teraz nie może być używany przez zastrzeżony kod.

Gdyby wystarczyło tylko otworzyć kod źródłowy korzystający z GPL, mógłbym otworzyć projekt oparty na nim jako BSD.

W takim przypadku oprogramowanie zastrzeżone mogłoby korzystać z produktu GPL.

alternatywny
źródło
4
To nie ma sensu. GPL nie stwierdza, że ​​zastrzeżony kod nie może z niego korzystać. W GPL chodzi o dystrybucję, jak jasno stwierdza odpowiedź pana C. Krótko mówiąc - nie wolno rozpowszechniać oprogramowania korzystającego z kodu GPL, chyba że rozpowszechnia się również kod źródłowy tego oprogramowania na podstawie zgodnej licencji.
dash-tom-bang
1
Kod zastrzeżony nie może używać kodu GPL. Jest to część powodu istnienia licencji.
alternatywny
Wszystko zależy od tego, co rozumiesz przez „zastrzeżony kod”. Jeśli masz na myśli „kod, który posiadasz”, nie ma to sensu - GPL nie może odebrać twoich praw autorskich, więc dopóki nie przypiszesz go FSF z własnej woli, nadal będziesz właścicielem kodu , który piszesz . OTOH, jeśli masz na myśli „kod, który chcesz rozpowszechniać na licencji niezgodnej z GPL”, to masz rację - tak jak mogłeś uzyskać i korzystać ze źródła, na którym się opierasz, masz obowiązek przyznać użytkownikom to prawo do twojego źródła. Ponownie chodzi o dystrybucję - nikt, kto nie może uzyskać twojego programu, nie ma praw do twojego kodu.
Shog9,
@Pan. C przez kod zastrzeżony Mam na myśli kod niezgodny z GPL. Kod jest dystrybuowany do klienta, więc ... Ale nie jestem prawnikiem, więc mogę się mylić.
alternatywny
2
-1, wprowadzająca w błąd odpowiedź. Dotyczy to tylko niektórych definicji „użytkowania” i „własności”. Na przykład, mógłbym stworzyć wbudowany produkt Linux i zwolnić tylko jądro Linuksa i kod, który prowadzi bezpośrednio do kodu jądra, ale nie mój interfejs użytkownika ani inne aplikacje, które akurat działają na jądrze GPL. Istnieje wiele takich relacji. Niejednoznaczność w tym zastosowaniu „własności” została już uwzględniona. Ponadto w większości jurysdykcji „praca najemna” przyznawana tylko stronie, która wynajęła programistę do kodowania, nie jest tym samym, co dystrybucja. IANAL itp.
HedgeMage