4. Informazioni sulla licenza Taler#
Questo file fornisce una panoramica di tutte le licenze dei componenti Taler e delle loro dipendenze runtime. Un «componente» in questo contesto deve essere letto come un insieme di file sorgente che possono essere recuperati da un singolo repository Git. Se i componenti sono costituiti da sorgenti con regimi di licenza diversi, ad esempio perché si vuole consentire a sviluppi di terze parti di integrarsi facilmente con Taler, vengono descritti anche questi.
Tutti i componenti sono generalmente rilasciati sotto Lesser GPL, GPL o Affero GPL. La strategia principale prevede che le librerie che terze parti possono avere bisogno di integrare con Taler siano sotto LGPL, i binari standalone e i testcase siano sotto GPL e i server Web che implementano servizi Web e API REST siano sotto AGPL. Occasionalmente, anche il codice banale (come la logica di compilazione) viene semplicemente reso di pubblico dominio. Le legislazioni che non hanno un dominio pubblico dovrebbero considerare tale codice sotto LGPL.
Il progetto è stato inizialmente avviato sulla base del codice e della documentazione di GNUnet e.V. e INRIA e continua a essere sviluppato dalla comunità GNUnet e da Taler Systems SA. Sia INRIA che GNUnet e.V. hanno assegnato o condiviso i loro diritti d’autore con Taler Systems SA. Pertanto, in generale si dovrebbe dire che il codice è protetto da copyright di Taler Systems SA.
Stiamo anche lavorando a stretto contatto con il pacchetto GNU Anastasis. In questo caso, è in atto la stessa condivisione dei diritti d’autore tra gli sviluppatori originali di BFH e GNUnet e.V., tranne che per il fatto che i diritti d’autore sono stati assegnati o condivisi con Anastasis SARL. Esistono accordi che consentono agli sviluppatori di spostare liberamente il codice tra GNU Anastasis, GNUnet e GNU Taler se ciò è tecnicamente giustificato (si noti che tutti gli sviluppatori devono firmare l’accordo di contribuzione al copyright di GNUnet e.V.).
Si noti che questo file potrebbe essere obsoleto. In caso di dubbio, si prega di contattare i manutentori GNU coinvolti (attualmente Florian Dold, Christian Grothoff e Martin Schanzenbach), poiché in genere hanno la responsabilità e il diritto di determinare la licenza appropriata per i singoli componenti. (Questo diritto è tecnicamente garantito e limitato dai contratti di copyright firmati dai singoli collaboratori ed è eventualmente soggetto a processi decisionali all’interno di Anastasis SARL, GNUnet e.V. e Taler Systems SA. Tuttavia, nella pratica questo non è mai stato un problema, perché finora tutti sono d’accordo sulla strategia di licenza e i manutentori si limitano ad apportare piccoli aggiustamenti per implementare coerentemente tale strategia quando sorgono problemi, come il passaggio di codice tra componenti con licenza LGPL, GPL e AGPL o l’uso accidentale della licenza sbagliata in un’intestazione da parte degli sviluppatori).
4.1. Seguendo la AGPL#
L’obiettivo principale della AGPL è quello di richiedere a un fornitore di servizi di rendere il codice sorgente del servizio facilmente accessibile a tutti gli utenti del servizio stesso.
Per GNUnet, GNU Taler e GNU Anastasis, stiamo realizzando questo requisito implementando un endpoint /agpl/
che indirizza gli utenti dell’API al codice sorgente (o un TGZ o un redirect al repository Git) del componente e delle sue dipendenze (riteniamo accettabile non includere dipendenze non modificate che sono già facilmente disponibili e reperibili altrove). Il codice sorgente (come definito nella GPL) deve poi essere scaricabile gratuitamente e senza controllo di accesso da quell’indirizzo in una forma adatta allo sviluppo (cioè con sistema di compilazione e istruzioni). Si applicano anche tutte le consuete limitazioni alla distribuzione di codice sotto GPL.
Quando si distribuiscono sorgenti che sono stati modificati rispetto alle versioni upstream rilasciate da GNU, si deve aggiornare l’endpoint /agpl/
per puntare al codice sorgente modificato. Si noti che dovete sempre rendere disponibile il codice della versione effettivamente distribuita, che include personalizzazioni, estensioni, integrazioni, miglioramenti della sicurezza o correzioni di bug.
4.2. Seguendo la GPL#
La GPL richiede di rendere disponibile il codice sorgente del rispettivo programma a tutti gli utenti che lo eseguono. Ciò include anche qualsiasi personalizzazione (branding, tematizzazione, estensioni, integrazioni, miglioramenti della sicurezza o correzioni di bug). Il codice sorgente del programma modificato deve essere rilasciato sotto licenza GPL e deve essere ragionevolmente facile da trovare gratuitamente per tutti gli utenti del programma.
Quando si spediscono binari di versioni non modificate dei rilasci GNU, questo è soddisfatto in quanto GNU rende disponibili i sorgenti sia tramite i repository Git del progetto che tramite i mirror FTP del progetto GNU. Siete comunque tenuti a rendere disponibile ad altri la logica di impacchettamento che avete scritto per creare i binari.
4.3. Seguendo la LGPL#
Per seguire la LGPL, in pratica si fa tutto quello che si deve fare con la GPL quando si tratta dei sorgenti che ci sono stati forniti.
Tuttavia, è consentito integrare il codice fornito sotto la LGPL con altro codice che non sia sotto la LGPLv3+. Tuttavia, le modifiche al codice esistente devono rimanere sotto la LGPLv3+ e vi invitiamo a rilasciare tutto il vostro codice sotto una licenza FLOSS appropriata.
4.4. Tutorial (git://git.taler.net/tutorials)#
La specifica è stata originariamente sviluppata dall’INRIA e da persone che fanno capo al soggetto giuridico denominato «GNUnet e.V.». Per ogni file sorgente, l’intestazione indica chi detiene il copyright, poiché alcune parti sono state prese «alla lettera» dalla fondazione GNUnet e.V., mentre altre sono state sviluppate «ex novo» presso l’INRIA o Taler Systems SA.
In genere si utilizza la licenza GNU GPLv3; vedere COPIA.GPL.