Załóżmy, że istnieje biblioteka licencjonowana na licencji GPL. Chcę go użyć to zamknięty projekt źródłowy. Robię następujące:
- Utwórz małą aplikację otoki wokół biblioteki GPL, która nasłuchuje na gnieździe, analizuje wiadomości i wywołuje bibliotekę GPL. Następnie zwraca wyniki.
- Opublikuj źródła (zgodne z GPL)
- Utwórz klienta dla tego opakowania w mojej głównej aplikacji i nie udostępniaj źródeł.
Wiem, że to powoduje ogromne obciążenie w porównaniu do łączenia statycznego / dynamicznego, ale jestem zainteresowany teoretycznie.
Odpowiedzi:
Zgodnie z prawem powiedziałbym, że byłoby OK (ale nie jestem prawnikiem - skonsultuj się z prawnikiem w celu uzyskania porady prawnej).
Moralnie jest to dość naganne. Jeśli nie podoba ci się GPL, wówczas „właściwym” rozwiązaniem nie jest korzystanie z biblioteki GPL.
Edycja : Aby wyjaśnić, niezależnie od sytuacji prawnej GPL w odniesieniu do tego, czy dozwolone jest dynamiczne łączenie, LGPL zostało stworzone specjalnie w celu umożliwienia dynamicznego łączenia w przypadku bibliotek. Wydaje mi się więc jasne, że wybierając GPL zamiast LGPL, autor biblioteki wyraźnie to zrobił, aby zabronić dynamicznego łączenia. Moim zdaniem naganne jest użycie środków technicznych w celu obejścia ograniczeń prawnych, które wyrażają wyraźną intencję autora dla jego kodu.
Dla przypomnienia, osobiście nie jestem fanem GPL (wolę bardziej liberalną licencję, taką jak MIT lub BSD). Jednak jestem wielkim fanem szanowania pracy innych programistów, a jeśli nie chcą, abyś łączył ich bibliotekę z oprogramowaniem o zamkniętym źródle, jest to przywilejem.
źródło
IANAL, ale uważam, że wszystko w porządku, odpowiednia sekcja GPL3 znajduje się na końcu sekcji 5:
Prawdopodobnie będzie to zależeć od tego, co dokładnie zrobi „klient”, odpowiedź mouviciel jest prawdopodobnie dobrą wskazówką, jak to zrobić bezpiecznie
Jeśli uważasz, że Twoja aplikacja jest rozszerzeniem biblioteki, a nie czymś zagregowanym, prawdopodobnie masz rację (powinieneś być w dobrym miejscu, aby to wiedzieć). W takim przypadku najlepiej jest skontaktować się z autorem i spróbować uzyskać inna licencja
to wydaje się do tyłu moje stanowisko, że jest to wyraźnie dozwolone przez GPL, zakładając wykonane prawidłowo.
źródło
Zobacz , jak chciałbym włączyć oprogramowanie objęte GPL do mojego zastrzeżonego systemu. Mogę to zrobić?
Pytanie brzmi: czy Twoja aplikacja do pakowania jest używana samodzielnie? Jeśli utworzyłeś wersję programu w wierszu poleceń, którą było GPL, możesz wydać GUI na innej licencji. Na przykład możesz stworzyć IDE dla gcc, które było zamkniętym źródłem lub wizualne narzędzie do porównywania oparte na diff.
Jednakże, jeśli twoja zamknięta biblioteka nie ma innego zastosowania niż używanie przez twój program, a program nie byłby użyteczny bez tej biblioteki, to jest to praca pochodna i musiałaby zostać wydana na licencji GPL.
źródło
IMO, zgodnie z prawem jest OK. (IANAL) Aby poprawić moralną stronę problemu, nie nazywaj go „opakowaniem FooBar, które sprawia, że FooBar jest legalnie dostępny dla MyClosedApp”, nazwij to serwerem. Zrób z tego miły, mały program typu open source, który „pozwala robić FooBar przez sieć”. Umieść go na SourceForge lub poświęć mu stronę internetową ze stroną projektu, instrukcjami i innymi rzeczami. Następnie pozwól „MyClosedApp” po prostu użyć „serwera FooBar”.
źródło
O ile rozumiem, możesz pozostawić swoje oprogramowanie zamknięte, o ile jest ono w stanie wykonywać swoją pracę bez biblioteki GPL. Zobacz bibliotekę GPL jako wtyczkę, której brak nie czyni oprogramowania bezużytecznym.
źródło
Istnieje również nieco kontrowersyjna opcja. W większości ustawodawców dynamiczne łączenie powinno ograniczać się do „pracy pochodnej”. Logika tego polega na tym, że podczas dynamicznego łączenia po prostu dołączasz pliki nagłówkowe do swojego programu. W wielu aktach prawnych pliki nagłówkowe są uważane za definicję API i wyraźnie wyłączone z prawa autorskiego. Z drugiej strony, dzięki dynamicznemu łączeniu, rzeczywiste łączenie z biblioteką GPL odbywa się w systemie użytkownika końcowego. Ale jak powiedziałem, jest z tym wiele kontrowersji, Stallman zdecydowanie się na to nie zgadza.
źródło
Czy legalne byłoby, gdyby Adam Brown napisał program, który korzystał z biblioteki GPL i działał jako „serwer”, gdyby wydał cały kod źródłowy do wszystkiego, co z nim związane, ale jedyny kod klienta, który wydał, był dość słaby, ponieważ to wszystko napisał po stronie klienta? Nie widzę żadnych podstaw, by sądzić, że nie.
Gdyby Charles Dover znalazł „serwer” Adama Browna i postanowił napisać program o zamkniętym źródle, aby się z nim komunikować, czy GPL w jakikolwiek sposób ograniczyłby jego działania? Nie widzę tego, ponieważ jego jedynym zastosowaniem oprogramowania GPL były pliki binarne, które otrzymał od Adama Browna. Gdyby rozpowszechniał pliki binarne Adama, musiałby również zamieścić link do źródła, ale nic innego w GPL nie wpłynęłoby na żaden kod Charlesa.
Jeśli chodzi o jedną osobę, która pisze serwer na licencji GPL, a następnie korzysta z serwera do własnych celów zamkniętego źródła, nie sądzę, że powinien istnieć problem prawny, gdyby pisząc serwer dołożył starań, aby to zrobić przydatne dla innych, którzy mogą chcieć używać dostarczonego kodu GPL w ten sam sposób. W szczególności publicznie opublikowana dokumentacja interfejsu powinna być wystarczająca, aby umożliwić kompetentnemu programistowi napisanie kodu dla serwera, który zostałby zaakceptowany przez program kliencki tak jak oryginał, i napisanie programów klienckich, które wykorzystywałyby serwer w taki sam sposób jak aplikacja autora.
źródło