Licencja GPL

0

Cześć.

Jeśli mam program na GPL i jeśli dorobię doń API np. na TCP, WS czy na HTTP żeby udostępnić wprowadzanie inputu do programu oraz doczytywanie całego modelu to rozumiem, że muszę kod takiego API udostępnić. Natomiast czy mogę użyć tego programu w ramach zamkniętego systemu nie udostępniając kodu systemu a jedynie kod API? Czy mogę taki program dystrybuować wraz z moim systemem, i podczas startu uruchamiać go jako usługę, bez udostępniania kodu mojego głównego programu?

1

rozumiem, że muszę kod takiego API udostępnić

Niekoniecznie. Pytanie czy to API będzie wymagało programu na GPL, w sensie czy będzie on jego istotną, niewymienialną częścią.

Natomiast czy mogę użyć tego programu w ramach zamkniętego systemu nie udostępniając kodu systemu a jedynie kod API?

Nie za bardzo rozumiem o co Ci tutaj chodzi.


Ogólnie jeśli kod na licencji GPL jest używany poprzez sieć, a nie jest dystrybuowany jako zestaw, to GPL zezwala na użycie go w kodzie zamkniętym. To "niedopatrzenie" zostało rozwiązane wraz z AGPL.

0

Podam przykład. Np. modyfikuję GIMP'a żeby mógł się uruchomić jako demon/usługa i wystawił API TCP(czy tam WS, HTTP, nie ma znaczenia), ofc headless. Piszę swoja aplikacje, która będzie potrafiła otworzyć obraz, np. mapę bitową, przesłać do zmodyfikowanego GIMPa z poleceniem "rozmyj", GIMP rozmyje ten obraz i zwróci go do mojego programu, a ja będę mógł go wyrysować w swoim oknie. Chciałbym ten mój program sprzedawać, natomiast jego dystrybucja wyglądała by tak, że instalator instaluje zmodyfikowaną wersje GIMP'a jako usługę na localhost oraz moja aplikacje konfigurując ją do komunikacji z ta instancją GIMP'a. Ofc. moja aplikacja była by licencjonowana komercyjnie. Rozumiem, że muszę opublikować kod modyfikacji GIMP'a, w której staje się usługą, natomiast nie chciał bym publikować kodu mojej własnej aplikacji.

0

W tym przypadku Twoja aplikacja jest zależna od kodu GPL, bo bez niego zwyczajnie nie zadziała. GIMP jest częścią Twojej aplikacji, tym bardziej, że jest dystrybuowany razem z Twoją aplikacją. W takim wypadku najpewniej musisz też udostępnić swój kod na GPL. Jednak jak dasz nam konkretny przykład co dokładnie chcesz zrobić, to może będziemy w stanie podać Ci inne rozwiązanie lub bibliotekę, która rozwiąże Twój problem na bardziej liberalnej licencji.

0

GPL to rak... Niestety nie chcę zdradzać szczegółów, ale tak - chciałem użyć mojej aplikacji jako frontu do pewnej gry, która jest na GPL. Każdy i tak może sobie grę ściągnąć, ale ja chciałbym sprzedawać sam alternatywny frontend/GUI do specyficznych zastosowań, ale że celuje w rynek mobilny to muszę dystrybuować w parze, tak jak i zależy mi na prostocie instalacji.

0
hauleth napisał(a):

Ogólnie jeśli kod na licencji GPL jest używany poprzez sieć, a nie jest dystrybuowany jako zestaw, to GPL zezwala na użycie go w kodzie zamkniętym. To "niedopatrzenie" zostało rozwiązane wraz z AGPL.

Rozjaśnisz mi taką rzecz? Zaczerpnięta z iText, który jest na AGPL (dokładnie to dualnej, ale komercyjną pominę).

Pisze* "ale pod warunkiem, ze twój projekt jest wykonywany w środowisku AGPL"*. Czy to znaczy, że inne programy wdrozenia (niezależne jednostki wykonywalne), które pośrednio z tego korzystają (przez HTTP dla ilustracji), muszą być na AGPL?

1

Nie. Z AGPL jest tak, że jeśli oferujesz to jako usługę to kod również musi być na AGPL. Przykładowo - zrobiłeś nową bazę danych i udostępniasz ją na GPL. Przychodzi Amazon i dodaje ją do pakietu oferowanych usług wprowadzając pewne zmiany (np. zwiększając wydajność czy dodając nowe funkcjonalności). Z racji, że oferują to jako usługę to nie muszą się dzielić kodem swoich zmian. Natomiast na AGPL dalej można tworzyć programy używające tej technologii, ale jeśli wystawiasz ją jako publiczną usługę, to musisz podzielić się swoimi zmianami.

Ogólnie licencje GNU są strasznie zagmatwane i nie ma consensusu nt. tego co można dokładnie z nią robić, bo nie było za dużo procesów, które by to rozjaśniły.

@somedev, w takim wypadku byłbym prawie pewien, że ktoś by miał z tym problem. Możesz się poradzić prawników na ten temat, bo nikt tutaj nie da Ci gwarancji, że to co mówi utrzyma się w sądzie. Więc jeśli chcesz na tym zarabiać, to najlepiej jest znaleźć jakąś kancelarię specjalizującą się w oprogramowaniu i poradzić się ich.

1
somedev napisał(a):

Cześć.

Jeśli mam program na GPL i jeśli dorobię doń API np. na TCP, WS czy na HTTP żeby udostępnić wprowadzanie inputu do programu oraz doczytywanie całego modelu to rozumiem, że muszę kod takiego API udostępnić.

Modyfikując kod tworzysz dzieło pochodne na które przechodzi licencja copyleft.

Natomiast czy mogę użyć tego programu w ramach zamkniętego systemu nie udostępniając kodu systemu a jedynie kod API?

Nie rozumiem zdania.

Czy mogę taki program dystrybuować wraz z moim systemem, i podczas startu uruchamiać go jako usługę, bez udostępniania kodu mojego głównego programu?

Jeśli twój "główny program" nie zawiera kodu GPL i nie jest z nim linkowany - to odpowiedź jest oczywista.

Cała masa pytań i odpowiedzi o GNU GPL jest BTW dostępna na https://www.gnu.org/licenses/gpl-faq.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1