1. Choosing a
FLOSS License
Le principali licenze FLOSS
Avv. Marco Scialdone
BLOG: http://scialdone.blogspot.com
2. Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
3. Licenze FLOSS: una distinzione
▸ Copyleft licenses: sono quelle licenze che
impongono che tutte le versioni modificate del
software originario siano rilasciate sotto la
stessa licenza. Una licenza copyleft assicura che
il codice sia “forever free” (ad es. GNU GPL)
▸ Permissive licenses: sono quelle licenze che
garantiscono la disponibilità delle prerogative
dalle stesse accordate solo per la prima
generazione del software. Permettono infatti al
licenziatario di rilasciare versioni modificate con
termini maggiormente restrittivi (ad es. ISC)
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
4. Le principali licenze
▸ Licenze più diffuse e con comunità forti:
◦ Apache License, 2.0
◦ New and Simplified BSD licenses
◦ GNU General Public License (GPL)
◦ GNU Library or "Lesser" General Public License
(LGPL)
◦ MIT license
◦ Mozilla Public License 1.1 (MPL)
◦ Common Development and Distribution License
◦ Eclipse Public License
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
5. Le principali licenze
▸ Licenze per specifiche finalità:
◦ Educational Community License
◦ IPA Font License
◦ NASA Open Source Agreement 1.3
◦ Open Font License 1.1 (OFL 1.1)
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
6. Le principali licenze
▸ Altre licenze:
◦ Affero GNU Public License
◦ Boost Software License (BSL1.0)
◦ Common Public Attribution License 1.0
(CPAL)
◦ European Union Public License
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
7. Come scegliere una licenza
▸ Guardati intorno: scegliendo la stessa licenza
utilizzata in progetti simili o collegati sarà più facile
interagire con terzi e condividere il codice.
▸ Interazione: considera la licenza con cui sono
rilasciate le librerie e il restante codice che il tuo
lavoro incorpora, modifica o da cui dipende.
▸ Non inventare: sebbene sia sempre possibile
scrivere una nuova licenza, è altamente sconsigliato.
Le licenze esistenti sono sicuramente in grado di
soddisfare le tue esigenze. Inoltre scegliere una
licenza significa anche scegliere la comunità che la
supporta.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
8. La licenza GNU GPL
▸ Vantaggi:
◦ È la licenza più diffusa
◦ Larga disponibilità di codice licenziato GPL
◦ Larga disponibilità di supporto e di
documentazione per una corretta
implementazione della licenza
▸ Possibili svantaggi:
◦ Forte clausola copyleft
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
9. GNU GPL v.2: le copie esatte
▸ È lecito copiare e distribuire copie letterali del codice
sorgente del Programma così come viene ricevuto, con
qualsiasi mezzo, a condizione che venga riprodotta
chiaramente su ogni copia una appropriata nota di
copyright e di assenza di garanzia; che si
mantengano intatti tutti i riferimenti a questa Licenza e
all'assenza di ogni garanzia; che si dia a ogni altro
destinatario del Programma una copia di questa Licenza
insieme al Programma. È possibile richiedere un
pagamento per il trasferimento fisico di una copia del
Programma, è anche possibile a propria discrezione
richiedere un pagamento in cambio di una copertura
assicurativa.
▸
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
10. GNU GPL v.2: opere derivate
▸ È lecito modificare la propria copia o copie del Programma,
o parte di esso, creando perciò un'opera basata sul
Programma, e copiare o distribuire tali modifiche o tale
opera secondo i termini del precedente comma 1, a patto
che siano soddisfatte tutte le condizioni che seguono:
a) Bisogna indicare chiaramente nei file che si tratta di copie
modificate e la data di ogni modifica.
b) Bisogna fare in modo che ogni opera distribuita o
pubblicata, che in parte o nella sua totalità derivi dal
Programma o da parti di esso, sia concessa nella sua
interezza in licenza gratuita ad ogni terza parte, secondo i
termini di questa Licenza.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
11. GNU GPL v.2: opere derivate
c) Se normalmente il programma modificato legge
comandi interattivamente quando viene eseguito, bisogna fare
in modo che all'inizio dell'esecuzione interattiva usuale,
esso stampi un messaggio contenente una appropriata
nota di copyright e di assenza di garanzia (oppure che
specifichi il tipo di garanzia che si offre). Il messaggio deve
inoltre specificare che chiunque può ridistribuire il
programma alle condizioni qui descritte e deve indicare come
reperire questa Licenza. Se però il programma di partenza è
interattivo ma normalmente non stampa tale messaggio, non
occorre che un'opera basata sul Programma lo stampi.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
12. GNU GPL v.2: contaminazione
▸ Questi requisiti si applicano all'opera modificata nel suo
complesso. Se sussistono parti identificabili dell'opera
modificata che non siano derivate dal Programma e
che possono essere ragionevolmente considerate
lavori indipendenti, allora questa Licenza e i suoi
termini non si applicano a queste parti quando
queste vengono distribuite separatamente. Se però
queste parti vengono distribuite all'interno di un
prodotto che è un'opera basata sul Programma, la
distribuzione di quest'opera nella sua interezza deve
avvenire nei termini di questa Licenza, le cui norme nei
confronti di altri utenti si estendono all'opera nella sua
interezza, e quindi ad ogni sua parte, chiunque ne sia
l'autore.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
13. GNU GPL v.2: distribuire il codice
▸ E' lecito copiare e distribuire il Programma (o un'opera basata
su di esso) sotto forma di codice oggetto o eseguibile patto
che si applichi una delle seguenti condizioni:
a) Il Programma sia corredato del codice sorgente completo, in una
forma leggibile da calcolatore, e tale sorgente sia fornito
secondo le regole dei precedenti commi 1 e 2 su di un mezzo
comunemente usato per lo scambio di programmi.
b) Il Programma sia accompagnato da un'offerta scritta, valida per
almeno tre anni, di fornire a chiunque ne faccia richiesta una
copia completa del codice sorgente, in una forma leggibile da
calcolatore, in cambio di un compenso non superiore al costo del
trasferimento fisico di tale copia, che deve essere fornita
secondo le regole dei precedenti commi 1 e 2 su di un mezzo
comunemente usato per lo scambio di programmi.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
14. GNU GPL v.2: distribuire il codice
c) Il Programma sia accompagnato dalle
informazioni che sono state ricevute riguardo alla
possibilità di ottenere il codice sorgente. Questa
alternativa è permessa solo in caso di
distribuzioni non commerciali e solo se il
programma è stato ottenuto sotto forma di codice
oggetto o eseguibile in accordo al precedente
comma B.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
15. GNU GPL v.3: le copie esatte
▸ Ti è permesso distribuire copie esatte del codice
sorgente del Programma come lo hai ricevuto, con
qualunque mezzo, ammesso che tu aggiunga in maniera
appropriata su ciascuna copia una appropriata nota di
copyright; che tu lasci intatti tutti gli avvisi che
affermano che questa Licenza e tutte le clausole non-
permissive aggiunte in accordo con la sezione 7 sono
valide per il codice che distribuisci; che tu lasci intatti
tutti gli avvisi circa l'assenza di garanzia; che tu fornisca
a tutti i destinatari una copia di questa Licenza assieme
al Programma. Puoi richiedere il pagamento di un prezzo
o di nessun prezzo per ciascuna copia che distribuisci, e
puoi offrire supporto o garanzia a pagamento.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
16. GNU GPL v.3: opere derivate
▸ Puoi distribuire un'opera basata sul Programma, o le modifiche
per produrla a partire dal Programma, nella forma di codice
sorgente secondo i termini della sezione 4, ammesso che tu
rispetti anche tutte le seguenti condizioni:
1. L'opera deve recare con sé delle informazioni adeguate
che affermino che tu l'hai modificata, indicando la data di
modifica.
2. L'opera deve recare informazioni adeguate che affermino
che essa è rilasciata sotto questa Licenza e sotto le
condizioni aggiuntive secondo quanto indicato dalla Sezione
7. Questa condizione modifica la condizione espressa alla
sezione 4 di "lasciare intatti tutti gli avvisi".
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
17. GNU GPL v.3: opere derivate
3. Devi rilasciare l'intera opera, nel suo complesso, sotto
questa Licenza a chiunque venga in possesso di una copia di
essa. Questa Licenza sarà pertanto applicata, assieme ad
eventuali clausole aggiunte in osservanza della Sezione 7,
all'opera nel suo complesso, a tutte le sue parti,
indipendentemente da come esse siano pacchettizzate.
Questa Licenza nega il permesso di licenziare l'opera in
qualunque altro modo, ma non rende nullo un tale permesso
ammesso che tu lo abbia ricevuto separatamente.
4. Se l'opera ha delle interfacce utente interattive, ciascuna
deve mostrare delle Adeguate Informazioni Legali;
altrimenti, se il Programma ha delle interfacce interattive che
non visualizzano delle Adeguate Informazioni Legali, il tuo
programma non è obbligato a visualizzarle.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
18. GNU GPL v.3: distribuire il codice
▸ Puoi distribuire un Programma coperto da questa licenza in
forma di codice oggetto ammesso che tu fornisca anche il
Sorgente corrispondente in uno dei seguenti modi:
a) Distribuendo il codice oggetto in, o contenuto in, un prodotto fisico
(inclusi i mezzi fisici di distribuzione), accompagnato dal Sorgente
Corrispondente su un supporto fisico duraturo comunemente utilizzato per
lo scambio di software.
b) Distribuendo il codice oggetto in, o contenuto in, un prodotto fisico
(inclusi i mezzi fisici di distribuzione), accompagnato da un'offerta scritta,
valida per almeno tre anni e valida per tutto il tempo durante il quale tu
offri ricambi o supporto per quel modello di prodotto, di fornire a chiunque
possieda il codice oggetto (1) una copia del Sorgente Corrispondente di
tutto il software contenuto nel prodotto che è coperto da questa Licenza, su
un supporto fisico duraturo comunemente utilizzato per lo scambio di
software, ad un prezzo non superiore al costo ragionevole per effettuare
fisicamente tale distribuzione del sorgente, oppure (2) accesso alla copia
del Sorgente Corrispondente attraverso un server di rete senza alcun costo
aggiuntivo.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
19. GNU GPL v.3: distribuire il codice
c) Distribuendo copie singole del codice oggetto
assieme ad una copia dell'offerta scritta di fornire il
Sorgente Corrispondente. Questa possibilità è
permessa soltanto occasionalmente e per fini non
commerciali, e solo se tu hai ricevuto il codice
oggetto assieme ad una tale offerta
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
20. GNU GPL v.3: distribuire il codice
d) Distribuendo il codice oggetto mediante accesso da un luogo
designato (gratis o dietro pagamento di un prezzo), e offrendo
un accesso equivalente al Sorgente Corrispondente alla stessa
maniera a partire dallo stesso luogo senza costi aggiuntivi. Non
devi obbligare i destinatari a copiare il Sorgente Corrispondente
assieme al codice oggetto. Se il luogo dal quale copiare il
codice oggetto è un server di rete, il Sorgente Corrispondente
può trovarsi su un server differente (gestito da te o da terze
parti) che fornisca funzionalità equivalenti per la copia, a patto
che tu fornisca delle indicazioni chiare accanto al codice
oggetto che indichino dove trovare il Sorgente Corrispondente.
Indipendentemente da quale server ospiti il Sorgente
Corrispondente, tu rimani obbligato ad assicurare che esso
rimanga disponibile per tutto il tempo necessario a soddisfare
queste condizioni.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
21. GNU GPL v.3: distribuire il codice
e) Distribuendo il codice oggetto mediante
trasmissione peer-to-peer, a patto che tu
informi gli altri peer circa il luogo in cui il codice
oggetto e il Sorgente Corrispondente sono
gratuitamente offerti al pubblico
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
22. GNU GPL: contratto o no?
Non sei obbligato ad accettare i termini di questa Licenza
al solo fine di ottenere o eseguire una copia del
Programma. Similmente, propagazioni collaterali di un
Programma coperto da questa Licenza che occorrono
come semplice conseguenza dell'utilizzo di trasmissioni
peer-to-peer per la ricezione di una copia non richiedono
l'accettazione della Licenza. In ogni caso, solo e soltanto
questa Licenza ti garantiscono il permesso di propagare e
modificare qualunque programma coperto da questa
Licenza. Queste azioni violano le leggi sul copyright nel
caso in cui tu non accetti questa Licenza. Pertanto,
modificando o propagando un programma coperto da
questa Licenza, indichi implicitamente la tua accettazione
della Licenza.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
23. La licenza GNU LGPL
▸ Caratteristiche:
◦ È classificata come “weak copyleft” (copyleft
debole)
◦ Permette combinazioni con software proprietario
generalmente non ammesse dalla GPL
▸ Perché:
◦ Originariamente concepita per le librerie, può
comunque essere la soluzione ottimale se la
combinazione sw prorietario/sw libero è
funzionale al progetto che si sta sviluppando
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
24. La licenza GNU Affero GPL
▸ Caratteristiche:
◦ È una “variazione sul tema” della GPL
◦ E' legata al fenomeno SAAS (Software as a Service)
▸ Perché:
◦ Le disposizioni della GPL si applicano solo quando
quando c'è distribuzione di software a un utente.
Perciò in assenza di distribuzione (come nel caso
SAAS) non ci sarebbe obbligo di fornire il sorgente.
◦ La AGPL impone, invece, che tu offra il
corrispondente sorgente agli utenti.
Aprile 2010 - Avv. Marco Scialdone - marcoscialdone@gmail.com /
25. Altre licenze FLOSS
• Licenza BSD
La distribuzione e l'uso dei sorgenti e del codice
eseguibile, con o senza modifiche, sono permessi secondo
le seguenti condizioni:
▸ 1. Il codice sorgente o l'eseguibile devono essere
accompagnati dalla licenza BSD.
▸ 2. Il nome dell'autore/i non puo' essere usato senza
permesso da terzi per promuovere software derivati dal
programma originale. Dal 1999 questa clausola e' pero'
stata abolita, e non e' piu' valida per le licenze BSD
successive.
• Licenza MIT
▸ E' in pratica identica alla vecchia licenza BSD.
26.
27. Altre licenze FLOSS
Apache Software License
▸ Simile alla licenza BSD: si può, redistribuire il software e
i sorgenti con o senza modifiche, ma occorre mantenere
l'intestazione:
"This product includes software developed by the
Apache Software Foundation (http://www.apache.org/)"
Il Software derivato dal codice di Apache non può
inoltre fregiarsi del suo nome a meno di un permesso
scritto concesso da Apache Software Foundation.
28. European Union Public License
▸ The EUPL (European Union Public Licence) è
una licenza FLOSS “copyleft” creata dalla
Commissione Europea. La licenza è tradotta
in 22 lingue. La versione 1.1. è stata rilasciata
nel gennaio 2009
▸ EUPL nasce dall'esigenza di avere una licenza
pienamente compatibile con il quadro
normativo comunitario e sul cui sviluppo la
Commissione Europea potesse conservare il
pieno controllo.
29. European Union Public License
▸ Il Licenziante concede al Licenziatario il
diritto di compiere gli atti seguenti:
◦ utilizzare l’Opera in qualsiasi circostanza e per ogni utilizzo
◦ riprodurre l’Opera
◦ modificare l’Opera originaria e creare Opere derivate basate
su di essa
◦ comunicare al pubblico, anche mediante messa a
disposizione o esposizione dell’Opera o di copie di essa e,
a seconda dei casi, rappresentare l’Opera in forma pubblica
◦ distribuire l’Opera o copie di essa
◦ cedere in prestito e in locazione l’Opera o copie di essa
◦ concedere in sub-licenza i diritti sull’opera o copie di essa
30. European Union Public License
Comunicazione del codice sorgente
▸ Il licenziante può fornire l’Opera o sotto forma di
Codice sorgente o come Codice eseguibile. Se
l’opera è fornita come Codice eseguibile, il
Licenziante fornisce, in aggiunta, una copia
leggibile dall’elaboratore del Codice sorgente
dell’Opera a corredo di ogni copia dell’Opera da lui
distribuita oppure indica, in un avviso che segue
l’indicazione dei diritti d’autore apposta sull’Opera,
un archivio in cui il Codice sorgente è facilmente e
gratuitamente accessibile per tutto il periodo in cui
il Licenziante distribuisce o comunica l’opera.
31. European Union Public License
Obblighi del licenziatario
▸ Diritto di Attribuzione: il Licenziatario lascia intatti
tutti gli avvisi relativi ai diritti d’autore, ai brevetti o
ai marchi e tutte le indicazioni che fanno
riferimento alla Licenza e all’esclusione della
garanzia. Ogni copia dell’Opera che il Licenziatario
distribuisce o comunica deve essere corredata di
una copia di tali avvisi e di una copia della Licenza.
Su tutte le Opere derivate il Licenziatario deve
apporre o far apporre avvisi ben visibili indicanti
che l’Opera è stata modificata e la data della
modificazione.
32. European Union Public License
Obblighi del licenziatario
▸ Clausola “copyleft”: se il Licenziatario distribuisce o
comunica copie delle Opere originarie o delle
Opere derivate basate sull’Opera originaria, la
distribuzione o comunicazione ha luogo
nell’osservanza delle clausole della presente
Licenza o di una sua versione successiva. Il
Licenziatario (che in tal caso diventa Licenziante)
non può offrire né imporre termini o condizioni
ulteriori sull’Opera o sulle Opere derivate che
alterino o restringano le condizioni della Licenza.
33. European Union Public License
Obblighi del licenziatario
▸ Clausola di compatibilità: se il Licenziatario
distribuisce o comunica le Opere derivate o copie
delle Opere derivate basate sull’Opera originaria o
su altra opera concessa in licenza secondo le
condizioni di una Licenza compatibile, la
Distribuzione o Comunicazione può avvenire
nell’osservanza delle clausole della licenza
compatibile. Ai fini dell’applicazione della presente
clausola, l’espressione “Licenza compatibile” si
riferisce alle licenze enumerate nell’allegato della
presente Licenza.
34. European Union Public License
Obblighi del licenziatario
▸ Fornitura del codice sorgente: se distribuisce o
comunica copie dell’Opera, il Licenziatario fornirà
copia del Codice sorgente in formato leggibile
dall’elaboratore oppure indicherà un archivio in cui
tale Codice sorgente è facilmente e liberamente
accessibile, per tutto il tempo in cui distribuisce o
comunica l’Opera.
35. European Union Public License
Licenze compatibili
▸ GNU GPL v. 2
▸ Open Software License (OSL) v. 2.1, v. 3.0
▸ Common Public License v. 1.0
▸ Eclipse Public License v. 1.0
▸ Cecill v. 2.0
36. EUPL vs. GNU Gpl v.3
▸ The EUPL include SaaS (Software as a Service):
se un Internet service provider modifica il
software licenziato EUPL e lo usa per i propri
servizi online (ad es. Google), questo per la
licenza è “software distribution”, mentre non lo
è per la GPL.
▸ The EUPL, a differenza della GPL v.3, non
affronta il problema “Tivoisation”. Non ci sono
specifiche disposizioni concernenti le misure
tecnologiche di protezione a livello hardware.
39. 1° caso: includere in forma non modificata file
licenziati con licenze permissive
▸ Si tratta dell'ipotesi più semplice
▸ In questo caso lo sviluppatore
dovrà semplicemente limitarsi a
lasciare il file e la relativa nota
inalterati
40. 1° caso: includere in forma non modificata file
licenziati con licenze permissive
41. 2° caso: includere in forma modificata in un
progetto GPL file licenziati con licenze
permissive
▸ In questa caso vengono apportate
modifiche
▸ Il file modificato viene licenziato GPL
▸ Tuttavia è comunque necessario
riportare la nota copyright relativa al
file originario, unitamente alla nuova
nota copyright
42. 2° caso: includere in forma modificata in un
progetto GPL file licenziati con licenze
permissive
44. Evitare gli errori più comuni
● Valutare correttamente l'applicabilità della licenza
GNU/Gpl rispetto ad ogni componente non GPL
● Monitorare l'acquisizione di software di terze parti e
i processi di approvvigionamento
● Tenere traccia dei cambiamenti apportati così da
sapere in ogni momento quali sorgenti generano un
certa distribuzione
● Evitare il c.d. “build guru”: un unico sviluppatore o
pochi membri del team che siano gli unici a
partecipare alla costruzione ed all'assemblaggio del
prodotto finale
45. How to be GPL compliant...
● Mettere a disposizione il codice sorgente per
ogni distruzione binaria, secondo una delle
modalità previste nella GPL v.2 o v.3:
– Opzione A: includere il sorgente per ogni
distribuzione binaria
– Opzione B: offrire il codice sorgente
separatamente
– Opzione C (solo GPL v.3): distribuzione
dei sorgenti via Internet anche
attraverso network peer to peer
46. Se qualcosa va storto...
● Rispondi prontamente alle contestazioni legali
● Ripristina i tuoi diritti (termination clause):
– Sii conforme alle previsioni della licenza;
– Informa i terzi dei loro diritti
– Nomina un responsabile per la GPL
compliance;
– Trasmetti report periodici di compliance
per un certo periodo dopo il ripristino
47. Avv. Marco Scialdone
Email: marcoscialdone@gmail.com
Pec: marcoscialdone@ordineavvocatiroma.org
Blog: http://scialdone.blogspot.com
Site: www.computerlaw.it