Uruchamianie oprogramowania jako usługi wykorzystującej niezmodyfikowany program GPL (v2 +) jako podstawową zależność: czy należy wydać kod źródłowy SaaS?

10

Projektuję oprogramowanie jako projekt usługi, do którego dostęp będzie możliwy tylko online. Mogę mieć twardą zależność od pliku wykonywalnego objętego licencją GNU GPL (wersja 2 lub nowsza).

Rozumiem, że mój kod, jeśli miałbym go kiedykolwiek rozpowszechniać, musi być rozpowszechniany również na warunkach GPL. Jestem całkiem pewien, że uruchomienie usługi przez sieć nie przenosi / nie rozpowszechnia kodu. Czy mam zatem rację sądząc, że mogę korzystać z zależności GPL bez konieczności ujawniania całego mojego kodu?


Chciałbym podać konkretny przykład: Załóżmy, że projektuję w systemie przetwarzania dokumentów online, podobnym do Dokumentów Google. Chcę móc w zasadzie przesłać dowolny typ pliku do systemu i przekonwertować go na dowolny format wewnętrzny. Zamiast próbować zarysować konwerter, wolałbym użyć istniejącego programu, o którym wiem, że umożliwia konwersję. Ten program jest wykonywalny z licencją GNU GPL v2 (lub nowszą). Czy mogę legalnie posiadać oprogramowanie jako usługę bez podawania kodu źródłowego?

Platinum Azure
źródło
Jeśli jest to GPLv3 lub Affero, to tak. Licencje te zostały dostosowane do naprawy i zamykania dziury w pętli „oprogramowanie jako usługa”.
Andrew T Finnell,
Czekaj, GPLv3 też tak robi? Muszę na to jeszcze raz spojrzeć ...
Platinum Azure
Najwyraźniej mylę się co do GLPv3. Zostało z niego wykreślone. linux-mag.com/id/3017
Andrew T Finnell,

Odpowiedzi:

9

Z podanego opisu odpowiedź brzmi „nie, nie musisz tego ujawniać”. Albo polegasz na danych wyjściowych pliku wykonywalnego GPL, albo traktujesz go jako system, co stanowi dwa wyjątki od wirusowej natury GPL. Zagłęb się w GPL FAQ, a znajdziesz odpowiedzi na podstawie specyfiki twojego scenariusza.


źródło
Aby się upewnić, że rozumiem poprawnie (po przeczytaniu pytania #GPLoutput w FAQ): Jeśli na przykład można powiedzieć, że prawa autorskie do przesyłanego dokumentu (na mój przykład) należą do oryginalnego autora, następnie używany jest plik wykonywalny , dane wyjściowe tego pliku wykonywalnego (nie zawierające części samego kodu programu) zachowują prawa autorskie oryginalnego pisarza, a zatem ponieważ ja tylko go używam, a dane wyjściowe nie są domyślnie objęte GPL, I nie musisz ujawniać?
Platinum Azure
1
@PlatinumAzure: tak.
MSalters
2
„Nie” jest poprawne, ale głównym powodem, dla którego tego nie robisz, jest to, że nie rozpowszechniasz pracy objętej licencją GPL (udostępniając ją tylko online). Jest to znana jakość GPL (zarówno 2, jak i 3); istnieje osobna licencja, licencja Affero GPL, która dotyczy przypadku aplikacji udostępnianej online, a nie „dystrybuowanej”.
Craig,
co z tym pytaniem, w którym aplikacja GPL byłaby używana w czasie rzeczywistym do generowania danych wyjściowych na komputerze użytkownika? a także, na przykład: wszystkie skrypty bash muszą być GPL?
Wodnik Moc
-1

IANAL, ale IMO, GPL mają tu trochę dwuznaczności (lub interpretacji). GPL daje dużo swobody, jeśli chodzi o „wykorzystanie”, ale ma wiele ograniczeń dotyczących „dystrybucji dzieł pochodnych”. Po pierwsze, dotyczy użycia vs dzieł pochodnych. Jeśli Twój kod „używa” tylko oprogramowania GPL, nie musisz rozpowszechniać kodu korzystającego z kodu GPL (jeśli jednak zmodyfikujesz sam kod GPLed, nadal musisz rozpowszechniać tę część swojej planowanej dystrybucji) zmiany), z drugiej strony, jeśli jest to uważane za pracę pochodną, ​​musisz rozpowszechniać kod źródłowy. Jednym z kluczowych punktów jest to, czy kod działa w tej samej przestrzeni adresowej procesu co kod GPL,

Istnieje również dwuznaczność, czy świadczenie usługi internetowej umożliwiającej korzystanie z kodu GPL jest uważane za redystrybucję oprogramowania, czy po prostu sposób korzystania z oprogramowania. Myślę, że większość ludzi uważa, że ​​samo świadczenie usługi internetowej nie podlega redystrybucji.

Najlepiej zapytaj autora oprogramowania, co sądzą o tym, co robisz. Najlepiej jest uszanować ich interpretację zamiast własnej interpretacji. W najgorszym razie, jeśli kiedykolwiek stanie się to problemem, możesz argumentować, że masz wyraźne pozwolenie od samych autorów lub miałbyś szansę znaleźć inną bardziej liberalną bibliotekę lub wynegocjować wyjątek.

Lie Ryan
źródło
Widzę, że jest to przypadek graniczny, jeśli zapewniam zastrzeżony interfejs dla wolnego oprogramowania, na pewno (z interfejsem zasadniczo wykonującym dokładnie to samo, co wolne oprogramowanie robi pod maską), ale jeśli tylko go używam i jest to niezbędne dla programu do funkcji, ale powiedział, że celem wolne oprogramowanie nie jest wewnętrznie tak samo jak własnego interfejsu i jest skutecznie wykorzystywany jak biblioteki systemowej, na pewno, że może podlegać wyjątku?
Platinum Azure
@PlatinumAzure: Analiza jest zbyt pesymistyczna. „świadczenie usługi internetowej umożliwiającej użytkownikom korzystanie z kodu GPL” jednoznacznie NIE rozpowszechnia tego kodu GPL. Nie tylko moja opinia, ale także opinia FSF. Jeśli autor oprogramowania nie zgodził się z FSF, nie powinien był skorzystać z ich licencji.
MSalters
Nie ma dwuznaczności. Jednym z głównych powodów stworzenia GPL v3 było zamknięcie tej tak zwanej „luki”, jak już wykazano „Aferro GPL”. GPLv2 polega na dystrybucji kodu, a nie na jego wykorzystaniu.
Ross Patterson
@RossPatterson: pytanie dotyczyło GPLv2, jak powiedziałem w moim poście GPL gives you a lot of freedom when it comes to "usage", but it does it lots of limitation concerning "distribution of derivative works". Chociaż ta część GPL jest dość prosta, w GPLv2 można interpretować, czy SaaS jest „użytkowaniem” czy „dystrybucją”. GPLv2 nie mówi nic o SaaS, ponieważ został zaprojektowany zanim SaaS był powszechny, dlatego dwuznaczność.
Lie Ryan,
Wykorzystanie @LieRyan SaaS przez użytkowników, którzy nie otrzymali dystrybucji binarnych, zostało uznane za nie będące „dystrybucją” i nie wymagające dystrybucji kodu źródłowego. Fundacja Wolnego Oprogramowania współpracowała z Affero nad stworzeniem zmodyfikowanego GPLv2 („Affero GPL” v1), który traktował takie wykorzystanie jak dystrybucję. W GPLv2 nie ma dwuznaczności.
Ross Patterson