Czy program GPLv2 może polegać na bibliotekach licencjonowanych Apache?

12

Czy oprogramowanie objęte licencją GPL (wersja 2) może polegać na bibliotekach licencjonowanych na podstawie APLv2 bez uruchamiania GPL? Językiem tutaj sugeruje mi może nie.

W moim konkretnym przypadku patrzę na demona, który korzysta z niektórych bibliotek zewnętrznych licencjonowanych przez APLv2.

AKTUALIZACJA (W odpowiedzi na odpowiedzi / komentarze.)

  1. Na potrzeby tego pytania nie mogę ponownie licencjonować programu głównego (demona)
  2. Główny program został rozszerzony o funkcjonalność, która wykorzystuje apr-utili być może inne komponenty APLv2

Moje pytanie brzmi: czy mogę zwolnić rozszerzonego demona na GPLv2, czy jest to coś, co muszę zachować dla siebie (bez dystrybucji) i / lub ponownie wdrożyć bez APLv2, jeśli jestem zaangażowany w (a) wydanie tego rozszerzenia, i, (b) utrzymanie demona na licencji GPL?

pilcrow
źródło
2
Dokument, który podłączyłeś, wyraźnie stwierdza, że ​​nie. Jednak większość dostępnych kodów GPL zawiera warunek „lub, według własnego uznania, dowolnej późniejszej wersji”, co oznacza, że ​​możesz traktować go jak GPLv3 i to jest w porządku.
Jan Hudec

Odpowiedzi:

7

Najpierw wyjaśnijmy trochę terminologii. Kiedy FSF twierdzi, że licencja jest zgodna z GPL, nie mają na myśli tego, co wiele osób interpretuje. Wielu interpretuje „kompatybilny”, co oznacza, że ​​dwa programy mogą z powodzeniem współistnieć w tej samej aplikacji.

To jest zbliżone do tego, co oznacza FSF, ale zapewnienie licencji GPL na copyleft idzie o krok dalej.

Z GPL FAQ , podkreśl moje.

Oznacza to, że druga licencja i GNU GPL są kompatybilne; możesz połączyć kod wydany na innej licencji z kodem wydanym na licencji GNU GPL w jednym większym programie.
Wszystkie wersje GNU GPL zezwalają na takie kombinacje prywatnie; zezwalają również na dystrybucję takich kombinacji, pod warunkiem że kombinacja jest wydana na tej samej wersji GNU GPL .

Licencja jest więc zgodna z GPL, jeśli jej warunki można wchłonąć pod GPL.


Spójrzmy więc na APLv2 i GPLv3.

  • APLv2_Lib + GPLv3_Lib => Połączona biblioteka lib jako GPLv3 jest w porządku.
  • APLv2_Lib + GPLv3_Lib => Połączona biblioteka lib, ponieważ APLv2 nie jest w porządku.

A Apache mówi tutaj tyle samo :

Unikamy oprogramowania GPLv3, ponieważ autorzy GPLv3 rozważają jedynie powiązanie z nim w celu stworzenia dzieła pochodnego. Chcemy honorować ich licencję.


Ale pracujesz z demonem, który był licencjonowany na licencji GPLv2, a nie v3.

FSF jest całkiem jasne, że to, co chcesz zrobić, nie jest dopuszczalne w publicznej dystrybucji.

Pamiętaj, że ta licencja nie jest kompatybilna z GPL w wersji 2, ponieważ ma pewne wymagania, które nie są w tej wersji GPL. Obejmują one niektóre postanowienia dotyczące wygaśnięcia patentu i odszkodowania.

Tak więc, aby odpowiedzieć na twoje pytanie:

Nie , nie możesz rozpowszechniać połączonego demona przy użyciu materiałów licencjonowanych GPLv2 i APLv2 .
FSF wyraźnie wzywa tę kombinację jako niedopuszczalną do publicznej dystrybucji.

Alternatywy:

  1. Ci jej używać prywatnie.

  2. Byłoby również w porządku, aby ponownie napisać funkcjonalność APLv2, a następnie połączyć nową pracę z pracą GPLv2.

  3. Możesz zobaczyć, czy daemon można zmienić na GPLv3. Jeśli tak, to będziesz w stanie połączyć pracę APLv2 z demonem GPLv3.


źródło
2

Mój pogląd jest zgodny z OP na podstawie tekstu linku do ASF PO.

ASF (Apache Software Foundation) nie podoba się pomysł, aby kod ASFv2 był jakąkolwiek częścią systemu korzystającego z GPLv2, w oparciu o ograniczone informacje o twojej sprawie i moje rozumienie różnych licencji FOSS: niezależnie od tego, czy projekt parasolowy ma GPLv2 lub projekt parasolowy to GPLv2, próbujący uwzględnić ASFv2.

Ponadto wydaje się, że projekt parasolowy ASFv2 z kodem GPLv3 nie powinien się wydarzyć, ale projekt parasolowy GPLv3 może mieć kod ASFv2.

Pewnym zastrzeżeniem może (według Gnu) jest to, jak współdziałają ze sobą. Jeśli są połączone, współużytkują te same kopie danych podczas wykonywania, są one jednym w tym samym programie; jeśli jednak działają one jako oddzielne procesy (tj. rozwidlone) przekazujące dane między różnymi odrębnymi procesami, to, co robisz, może być dopuszczalne, ponieważ są dla nich oddzielnymi programami. Jeśli podczas wykonywania korzysta ze współdzielonej przestrzeni danych i nie działa z odrębnymi procesami, to to, co robisz, może nie być dozwolone, ponieważ dla nich są one takie same lub zbyt ściśle powiązane, aby były odrębne lub niezależne.

JustinC
źródło