4. Informacje licencyjne Taler#

Ten plik zawiera przegląd wszystkich licencji komponentów Taler i ich zależności w czasie wykonywania. „Komponent” w tym kontekście należy rozumieć jako zestaw plików źródłowych, które można pobrać z jednego repozytorium Git. Jeśli komponenty składają się ze źródeł podlegających różnym reżimom licencyjnym, tj. ponieważ chcemy umożliwić stronom trzecim łatwą integrację z Taler, są one również opisane.

Wszystkie komponenty są zazwyczaj wydawane na licencji Lesser GPL, GPL lub Affero GPL. Główną strategią jest, aby biblioteki, które strony trzecie mogą potrzebować do integracji z Taler, były objęte licencją LGPL, samodzielne pliki binarne i przypadki testowe były objęte licencją GPL, a serwery internetowe implementujące usługi sieciowe i interfejsy API REST były objęte licencją AGPL. Trywialny kod (taki jak logika kompilacji) jest czasami po prostu umieszczany w domenie publicznej. Legislacje, które nie mają domeny publicznej, powinny uznać ten kod za objęty licencją LGPL.

Projekt został początkowo uruchomiony w oparciu o kod i dokumentację GNUnet e.V. oraz INRIA i jest nadal rozwijany przez społeczność GNUnet i Taler Systems SA. INRIA i GNUnet e.V. przeniosły lub podzieliły się swoimi prawami autorskimi z Taler Systems SA. W związku z tym należy ogólnie powiedzieć, że kod jest chroniony prawami autorskimi Taler Systems SA.

Ściśle współpracujemy również z pakietem GNU Anastasis. W tym przypadku obowiązuje ten sam podział praw autorskich między pierwotnymi deweloperami z BFH i GNUnet e.V., z wyjątkiem tego, że prawa autorskie zostały przypisane lub podzielone z Anastasis SARL. Istnieją umowy, które pozwalają deweloperom na swobodne przenoszenie kodu między GNU Anastasis, GNUnet i GNU Taler, jeśli jest to technicznie uzasadnione (należy pamiętać, że wszyscy deweloperzy muszą podpisać umowę o prawach autorskich GNUnet e.V.).

Należy pamiętać, że ten plik może być nieaktualny. W razie wątpliwości prosimy o kontakt z zaangażowanymi opiekunami GNU (obecnie Florian Dold, Christian Grothoff i Martin Schanzenbach), ponieważ to oni są odpowiedzialni i mają prawo do określenia odpowiedniej licencji dla poszczególnych komponentów. (Prawo to jest technicznie przyznane i ograniczone przez umowy o prawach autorskich podpisane przez poszczególnych współautorów i może podlegać procesom decyzyjnym w Anastasis SARL, GNUnet e.V. i Taler Systems SA. Jednak w praktyce nigdy nie stanowiło to problemu, ponieważ jak dotąd wszyscy zgadzają się co do strategii licencjonowania, a opiekunowie będą po prostu wprowadzać drobne poprawki, aby konsekwentnie wdrażać tę strategię, gdy pojawią się problemy, takie jak przenoszenie kodu między komponentami licencjonowanymi na LGPL, GPL i AGPL lub programiści przypadkowo używający niewłaściwej licencji w nagłówku).

4.1. Zgodnie z licencją AGPL#

Głównym celem licencji AGPL jest nałożenie na usługodawcę wymogu łatwego udostępniania kodu źródłowego usługi wszystkim jej użytkownikom.

W przypadku GNUnet, GNU Taler i GNU Anastasis realizujemy ten wymóg poprzez implementację punktu końcowego /agpl/, który kieruje użytkowników API do kodu źródłowego (TGZ lub przekierowanie do repozytorium Git) komponentu i jego zależności (uważamy, że akceptowalne jest niezamieszczanie niezmodyfikowanych zależności, które są łatwo dostępne i możliwe do znalezienia gdzie indziej). Kod źródłowy (zgodnie z definicją GPL) musi być następnie dostępny do pobrania bezpłatnie i bez kontroli dostępu z tego adresu w formie odpowiedniej do rozwoju (tj. zawierającej system kompilacji i instrukcje). Zastosowanie mają również wszystkie zwykłe ograniczenia związane z dystrybucją kodu na licencji GPL.

Podczas wdrażania źródeł, które zostały zmodyfikowane w stosunku do wersji upstream wydanych przez GNU, musisz zaktualizować punkt końcowy /agpl/, aby wskazywał na zmodyfikowany kod źródłowy. Należy pamiętać, że musisz zawsze udostępniać kod faktycznie wdrożonej wersji, która zawiera dostosowania, rozszerzenia, integracje lub ulepszenia bezpieczeństwa lub poprawki błędów.

4.2. Zgodnie z licencją GPL#

Licencja GPL wymaga udostępnienia kodu źródłowego danego programu wszystkim użytkownikom, którzy mogą z niego korzystać. Obejmuje to również wszelkie dostosowania (branding, motywy, rozszerzenia, integracje lub ulepszenia bezpieczeństwa lub poprawki błędów), które mogłeś wprowadzić. Kod źródłowy zmodyfikowanego programu musi zostać ponownie udostępniony na licencji GPL i musi być dość łatwy do znalezienia za darmo dla wszystkich użytkowników programu.

W przypadku dostarczania plików binarnych niezmodyfikowanych wersji wydań GNU, jest to spełnione, ponieważ GNU udostępnia źródła zarówno za pośrednictwem repozytoriów Git projektu, jak i serwerów lustrzanych FTP projektu GNU. Nadal jesteś zobowiązany do udostępnienia innym wszelkiej logiki pakowania, którą mogłeś napisać w celu utworzenia plików binarnych.

4.3. Zgodnie z licencją LGPL#

Aby postępować zgodnie z licencją LGPL, należy w zasadzie zrobić wszystko, co należy zrobić zgodnie z licencją GPL, jeśli chodzi o dostarczone źródła.

Dozwolona jest jednak integracja kodu dostarczonego na licencji LGPL z innym kodem, który nie jest objęty licencją LGPLv3+. Niemniej jednak, modyfikacje naszego istniejącego kodu muszą pozostać zgodne z licencją LGPLv3+ i zdecydowanie zachęcamy do wydania całego kodu na odpowiedniej licencji FLOSS.

4.4. Samouczki (git://git.taler.net/tutorials)#

Specyfikacja została pierwotnie opracowana przez INRIA oraz przez osoby fizyczne będące podmiotem prawnym o nazwie „GNUnet e.V.”. Dla każdego pliku źródłowego nagłówek wskazuje, kto posiada prawa autorskie, ponieważ niektóre części zostały zaczerpnięte „dosłownie” z fundacji GNUnet e.V., a inne zostały opracowane w INRIA lub Taler Systems SA „ex novo”.

Zasadniczo stosowana jest dla nich licencja GNU GPLv3; patrz COPYING.GPL.