settimo set di slide del corso

Tecnologie Open Source
Licenze Software
Materiale di riferimento
●
Understanding Open Source and Free Software
Licensing, di Andrew Laurent
–
●
Disponibile all'url
http://oreilly.com/openbook/osfreesoft/book
Open Source Licensing: Software Freedom and
Intellectual Property Law
–
Disponibile all'url
http://www.rosenlaw.com/oslbook.htm
Capisaldi
●
Diritto d'autore
–
70 anni dopo la morte
–
Protezione per le sole opere espresse in forma
percepibile
–
Nessuna registrazione richiesta
●
Work for hire
●
Garanzie
–
Garanzie esplicite
–
Garanzie implicite (di commerciabilità, di idoneità
etc)
X License (MIT License)
●
Licenza originale di X Window
–
Libera modifica, copia e ridistribuzione del
software
–
Necessità di mantenere la licenza originale
–
Possibilità di sviluppi proprietari
–
Clausole di salvaguardia
Licenze BSD
●
●
Tre varianti principali
–
BSD a 4 clausole
–
BSD a 3 clausole
–
BSD a 2 clausole
BSD a 4 clausole: licenza originale di BSD
unix
BSD a due clausole
●
Licenza di NetBSD
...Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
–
1. Redistributions of source code must retain the above
copyright notice, this list of conditions and the following
disclaimer.
–
2. Redistributions in binary form must reproduce the
above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other
materials provided with the distribution.
[clausole di salvaguardia]
BSD a tre clausole
●
●
Licenza modificata della BSD originale a 4
clausole
Le due clausole precedenti più la seguente
–
Neither the name of the <organization> nor
the names of its contributors may be used to
endorse or promote products derived from
this software without specific prior written
permission.
●
Licenza approvata OSI
●
Licenza comune nei sistemi bsd
BSD a quattro clausole
●
●
●
Licenza originale di BSD unix
All advertising materials mentioning features or
use of this software must display the following
acknowledgement:
This product includes software developed by
the <organization>.
Problematicità
–
Non approvato OSI
–
Non compatibile GPL
–
Grossi problemi pratici
Apache License
●
●
●
1.0
–
BSD 4-clause + clausola di rinomina
–
BSD 3-clause + clausola di
rinomina+clausola pubblicitaria sulla
documentazione
–
Modello centralizzato di sviluppo
–
Clausola sui brevetti
–
Distinzione tra modifica e contribuzione
1.1
2.0
Filosofia delle licenze BSD
●
●
●
Possibili sfruttamenti proprietari
questo e' pero' consistente con l'obiettivo dei
progetti che la scelgono
–
X
–
BSD UNIX
favoriscono la massima diffusione del codice
(originale o derivato)
GPL v2
●
Libera copia non modificata a patto di
mantenere le licenze e le clausole di
salvaguardia intatte
–
●
È possibile vendere le copie
Libera distribuzione di versioni modificate con
le seguenti clausole:
–
Inserimento di avvisi di modifica
–
Il risultato deve essere sotto GPL
–
Avvisi interattivi sulla licenza devono
rimanere
GPL v2
●
Restrizioni sulla distribuzione di binari
–
Devono essere accompagnati dai relativi
sorgenti
–
Oppure offerta scritta dei sorgenti per almeno
tre anni
–
Oppure informazione di dove prelevare i
sorgenti (solo per distribuzione non
commerciale)
GPL v2
●
●
Cosa sono i sorgenti?
–
Sorgenti per tutti i moduli del programma
–
Script e tutto quanto necessario per la
compilazione
–
Eccezione di quanto normalmente distribuito
con il nucleo del sistema operativo
Chi riceve una copia ottiene una licenza d'uso
anche dal concessore originale
LGPL v2.1
●
●
●
GNU Lesser/Library General Public License
Distribuzione non modificata del programma
come la GPL
Distribuzione modificata del programma
–
Il software modificato deve essere una
libreria
–
Sforzo ragionevole per evitare di rendere
necessarie tabelle o dati esterni non distribuiti
–
Poi le clausole della GPL
LGPL v2.1
●
●
●
Possibile transizione alla GPL
Diviene possibile linkare un programma con la
libreria scegliendo la propria licenza a patto che
–
Sia permesso il reverse engineering
–
Sia distribuito Il codice sorgente originale
della libreria insieme ai file oggetto del resto
del programma
–
Oppure si utilizzi un linking dinamico
Quando un programma è un “lavoro che usa la
libreria”
Filosofia delle licenze copyleft
●
Massima libertà per gli utenti
●
Favoriscono uno sviluppo comunitario
●
La GPL e le imprese
GPL v3
●
●
Nuove frontiere:
–
Tivoizzazione
–
DRM and Digital Millenium Copyright
Act/European Union Copyright Directive
–
Brevetti software
–
Il patto Microsoft/Novell
GPL v3:
–
Cerca di affrontare queste sfide
–
Ulteriori miglioramenti
Brevetti Software: la teoria
●
Legislazione corrente riguardo ai brevetti:
–
European patents shall be granted for any inventions which are
susceptible of industrial application, which are new and which
involve an inventive step.
–
The following in particular shall not be regarded as inventions
within the meaning of paragraph 1:
●
●
●
●
discoveries, scientific theories and mathematical
methods;
(b) aesthetic creations;
(c) schemes, rules and methods for performing mental
acts, playing games or doing business, and programs
for computers;
(d) presentations of information.
Brevetti software: la teoria
●
(continua)
– The provisions of paragraph 2 shall exclude patentability
of the subject-matter or activities referred to in that
provision only to the extent to which a European patent
application or European patent relates to such subjectmatter or activities as such.
–
Methods for treatment of the human or animal body by
surgery or therapy and diagnostic methods practised on
the human or animal body shall not be regarded as
inventions which are susceptible of industrial application
within the meaning of paragraph 1. This provision shall
not apply to products, in particular substances or
compositions, for use in any of these methods.
Brevetti software: la realtà
●
Esempio:
“Disclosed is a method of implementing a preview window in
an object oriented programming system that includes an
application having at least a first panel and a second panel that
are selectively displayable on a display screen. The second
panel displays underlying information and the first panel
displays an abbreviated representation of the underlying
information. In the present invention, the user can temporarily
display a preview window that contains underlying information
while viewing the first panel.”
●
L'EPO ha già assegnato 30000 brevetti relativi al software
–
Software “as such” e “non as such”
GPL v3 e brevetti software
●
●
Brevetti problematici per il software
–
Ogni software viola qualche brevetto
–
Difficile anche consultare i brevetti che
potrebbero impattare il proprio software
Nel caso del software libero:
–
Possibile trucco: rilasciare codice libero ma
protetto da brevetti
–
Soluzione: rilasciando codice sotto GPL 3 si
concede l'uso dei brevetti utilizzati dalla
propria versione del programma
Tivoizzazione
●
Il TiVO e la tivoizzazione: trend crescente
●
Soluzione della GPL 3
–
chi distribuisce apparecchi dotati di software
licenziato sotto la GNU GPL 3 deve includere
nella distribuzione del codice sorgente tutte le
informazioni necessarie – ivi incluse, per
esempio, le chiavi digitali necessarie – per
compilare una versione del codice modificato
pienamente funzionante sull’hardware
distribuito.
GPL v3 e DMCA/EUCD
●
●
●
DMCA/EUCD: illegale rimuovere una misura
di protezione digitale da un software
DMCA/EUCD e la libertà del software
GPL v3: rilasciando software sotto licenza GPL
3 si afferma di non considerare le proprie
modifiche protezioni digitali
Altri aspetti della GPL3
●
Migliore internazionalizzazione
–
Il linguaggio ufficiale resta l'inglese
–
Svincolamento dalla legislazione americana
–
Linguaggio neutrale e più compatibile
rispetto ai diversi sistemi giuridici
●
Supporto dei lavori su commissione
●
Possibile distribuzione via internet
●
Compatibilità con AGPL3
Altri aspetti della GPL3
●
Supporto della diffusione via torrent
●
Migliore compatibilità con le altre licenze
–
Possibile aggiungere permessi aggiuntivi al
proprio codice
–
Possibile aggiungere da un insieme limitato
di restrizioni aggiuntive
–
Compatibile anche con Xfree86 license e
Apache 2 license
Affero GPL 3
●
ASP loophole
●
Affero GPL 1
–
●
Da Affero Inc.
Affero GPL 3
–
Licenza del progetto GNU
–
Il codice sorgente modificato deve essere reso
disponibile a chiunque utilizzi il programma
sulla rete
–
Esempio: openerp
Mozilla Public License
●
●
●
●
Originariamente: NPL
Distinzione tra sviluppatore originale e
contributore
Un copyleft debole
–
Il sorgente copiato o modificato sotto MPL
deve rimanere sotto MPL
–
Può venire mescolato con codice non MPL
Fornisce una licenza brevettuale
(Perl) Artistic License
●
Obiettivo: permettere allo sviluppatore iniziale
di mantenere un controllo artistico sul
programma e i suoi derivati.
●
Usata dal perl e relativi moduli
●
Tra le più diffuse dopo la GPL, LGPL e le BSD
AL: concetti base
●
“Standard version” e “modified version”
●
“Copyright holder” e altri sviluppatori
●
Codice “liberamente disponile”
–
Nessun pagamento per il software in sé
–
Eventuale pagamento per la consegna
–
Il destinatario deve potere ridistribuire il
software sotto gli stessi termini con i quali lo
ha ricevuto
AL: redistribuzione di sorgenti
●
●
●
Possibile la copia inalterata del software
originale, comprensivo di licenza
Possibile incorporare codice sotto public
domain o di proprietà dell'autore originale
Redistribuzione di sorgenti modificati
–
Avviso sui file modificati e
●
●
●
●
Modifiche nel PD o liberamente disponibili
Uso limitato alla propria corporazione
Rinominazione dei file
Diversi accordi con l'autore
AL: ridistribuzione di binari
●
Possibile a patto che si soddisfi uno di quanto
segue:
–
Distribuzione anche degli originali con
istruzioni su come prelevare la versione
standard
–
Distribuzione anche dei sorgenti modificati
–
Rinominazione degli eseguibili e
documentazione delle differenze
–
Altri accordi con l'autore
AL: uso commerciale
●
Vendita del software vietata
●
Possibile farsi pagare il supporto
●
●
Possibile l'integrazione in superpacchetti
commerciali
Particolarità della Perl Artistic License
–
L'uso del software deve essere isolato
dall'utente
Mappa di compatibilità