SMAU MILANO 2023 | SMAU MILANO 2023 | Intelligenza Artificiale e chatbots
Smau Padova 2011 Igor Serraino
1. Licensing e antipirateria Agenda
nella realizzazione di applicativi ad hoc
Diritto d’autore & copyright: premesse giuridiche e terminologiche
CSIG & IS
Padova, 5 maggio 2011 ore 15.30 :: Sala 3
Dal punto di vista dell’autore
Relatore: Ing. Igor Serraino
Codice sorgente e codice eseguibile
www.serraino.it
Licensing e casi d’uso
Considerazioni conlusive
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 1 Wednesday, May 11, 2011 2
Software programming
Diversi scenari, tra i più diffusi:
1. freelance programmer on a commission basis: l’azienda commissiona al libero
professionista un applicativo ad hoc con alto livello di personalizzazione (“su
commissione”). Il software è ad uso interno, il committente utilizza l’applicativo
esclusivamente sulle proprie postazioni informatiche;
CSIG & IS CSIG & IS
2. embed programmer on a commission basis: parte dell’organigramma aziendale, il
DIRITTO D’AUTORE & COPYRIGHT programmatore è incaricato della produzione di un software ad uso interno;
PREMESSE GIURIDICHE E TERMINOLOGICHE
3. freelance programmer OR embed programmer to market on a commission basis:
l’applicativo commissionato è destinato alla commercializzazione. Il committente,
quindi, ha incaricato il programmatore (interno o esterno) di creare un software che poi
verrà sottolicenziato dal committente stesso;
4. freelance programmer to market: il programmatore libero professionista produce un
software destinato alla vendita attraverso canali di vendita da esso stesso stabiliti;
5. freelance programmer to community: il programmatore, di qualunque natura esso sia,
produce software (o moduli software) con finalità non commerciali.
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 3 Wednesday, May 11, 2011 4
2. Criticità Diritto d’autore vs Copyright
In ognuno degli scenari introdotti:
Copyright e diritto d'autore sono due sistemi quasi identici, ma ci sono
il programmatore o il fornitore percepiscono l’esigenza di tutelare alcune differenze (anche storiche).
l’applicativo e garantire un utilizzo idoneo alle funzionalità implementate;
Il Copyright è una invenzione dell'era Gutenberg, un risultato
CSIG & IS CSIG & IS
è necessario formalizzare il rapporto che intercorre tra chi fornisce il
dell'invenzione delle presse per la stampa risalente alla seconda metà del
software e l’utilizzatore finale;
‘400. Originariamente inteso come monopolio per gli editori (nel 1500
Venezia contava ben 417 editori) e non era concepito per dare agli autori
è fondamentale definire la data di consegna, il numero di versione e le
alcun diritto sulle proprie opere. Solo nel 1710 i primi autori possono
funzionalità presenti nell’applicativo consegnato;
acquisire i diritti sulle proprie opere.
deve essere effettuata una scelta sulla modalità di rilascio dell’applicativo e
dei relativi componenti funzionali: codice sorgente abbinato ad eseguibile o L'idea di un diritto fondamentale dell‘Autore sul proprio lavoro — il nocciolo
esclusivamente codice eseguibile (o compilato)? del moderno diritto d'autore — è stata diffusa prevalentemente da filosofi
tedeschi e francesi prima della Rivoluzione Francese e venne considerata
è spesso richiesto di prevedere possibilità di aggiornamento / modifiche come una delle maggiori conquiste della Rivoluzione Francese.
funzionali successive alla consegna definitiva.
AVV. ANDREA MAGGIPINTO :: WWW.MAGGIPINTO.ORG
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 5 Wednesday, May 11, 2011 6
Diritto d’autore vs Copyright Convenzione di Berna
Convenzione di Berna per la protezione delle opere letterarie e artistiche
Oggi gli ordinamenti dell'Europa continentale seguono la tradizione del
del 9 settembre 1886 (completata a Parigi il 4 maggio 1896, riveduta a
diritto d'autore, l'area anglosassone segue ancora la tradizione del
Berlino il 13 novembre 1908, completata a Berna il 20 marzo 1914 e
copyright
riveduta a Roma il 2 giugno 1928, a Bruxelles il 26 giugno 1948, a
CSIG & IS CSIG & IS
Stoccolma il 14 luglio 1967 e a Parigi il 24 luglio 1971)
Al fine di creare una base internazionale comune, ci sono stati processi ed
accordi di armonizzazione. Per questo motivo la maggior parte delle
Sono state introdotte due nuove categorie di opere protette dal diritto
questioni sono sostanzialmente identiche nonostante le basi estremamente
d'autore:
differenti
i programmi per elaboratore: considerati alla stregua di opere
Contrariamente al Copyright, il diritto d'autore riconosce un diritto morale
letterarie;
all'autore che - come altri diritti umani - è inalienabile. Indipendentemente
da quello che dice qualsiasi contratto, il diritto morale dell'autore non può
le banche di dati: tutelate in ragione della loro creatività dovuta al tipo di
mai essere limitato. In effetti un contratto che (in pratica o apparentemente)
materiale selezionato ed al tipo di disposizione che di esso viene fatto
tenti di farlo corre il rischio di essere dichiarato nullo davanti ad una corte
nella banca
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 7 Wednesday, May 11, 2011 8
3. Riconoscimento a livello internazionale Il software nella Comunità europea
La Comunità Europea ha deciso di fornire ai programmi per elaboratore la
protezione che si riconosce alle altre opere d'autore attraverso l'emanazione
Il diritto d'autore è un diritto territoriale: la legge della Direttiva 91/250/CEE del Consiglio, del 14 maggio 1991, relativa alla
del luogo dove l'opera è destinata a essere tutela giuridica dei programmi per elaboratore. È stata recepita nel nostro
CSIG & IS CSIG & IS
utilizzata è quella che stabilisce se e in che modo ordinamento giuridico con il d.lgs. 518 emanato il 29 dicembre 1992, che ha
l'opera deve essere tutelata. novellato la legge sul diritto d'autore n. 633/1941
Per questo è importante il riconoscimento Nel 2002 la Commissione Europea ha pubblicato una proposta di direttiva in
reciproco del diritto d'autore tra gli Stati aderenti tema di invenzioni attuate per mezzo degli elaboratori elettronici, bocciata
alla Convenzione di Berna (l’Italia ha aderito nel però dal Parlamento europeo il 6 luglio 2005
1978)
Nuova Direttiva 2009/24/CE del Parlamento Europeo e del Consiglio del 23
aprile 2009 relativa alla tutela giuridica dei programmi per elaboratore, che
ha abrogato la Direttiva 91/250/CEE
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 9 Wednesday, May 11, 2011 10
Il software nella Comunità europea Il software in Italia
Legge sul Diritto d’Autore (LDA): legge 22 aprile 1941, n. 633
Lo scopo della nuova direttiva è duplice:
Le modifiche alla LDA (D.Lgs. 518/92) hanno esteso al software la
rafforzare la protezione del diritto d'autore del sw, in quanto “per creare protezione assicurata alle “opere dell'ingegno di carattere creativo”, così
programmi per elaboratore è necessario investire considerevoli risorse riconoscendo in capo all'autore di un software (il programmatore) sia la
CSIG & IS CSIG & IS
umane, tecniche e finanziarie, mentre è possibile copiarli a un costo summa dei diritti afferenti al diritto morale d'autore, sia i diritti di
minimo rispetto a quello necessario per crearli autonomamente” utilizzazione economica dell'opera
eliminare le differenze normative esistenti nella tutela giuridica dei Il diritto d'autore sul software costituisce una privativa sui generis, diretta
programmi per elaboratore a riservare al titolare non soltanto la riproduzione ma, ancor prima,
l'utilizzo stesso del programma, consentendogli così di escludere
qualsiasi possibilità di uso da parte di altri se non espressamente
autorizzati
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 11 Wednesday, May 11, 2011 12
4. Dal punto di vista dell’autore... Il contenuto del diritto
PUBBLICAZIONE
DIRITTI ESCLUSIVI DI UTILIZZAZIONE
RIPRODUZIONE
ECONOMICA
ESECUZIONE I diritti di utilizzazione economica:
• SCADONO E POSSONO ESSERE TRASFERITI
RAPPRESENTAZIONE
• INDIPENDENTI GLI UNI DAGLI ALTRI
COMUNICAZIONE AL PUBBLICO
CSIG & IS CSIG & IS
RIF. LDA ARTT. ARTT. 12-19 DISTRIBUZIONE attribuiscono all’autore la piena disponibilità dell’opera e il potere di
TRADUZIONE O ELABORAZIONE impedire comportamenti non autorizzati (il rovescio della medaglia)
NOLEGGIO O PRESTITO
TRASCRIZIONE
principio di indipendenza dei diritti
DIRITTI MORALI:
• INALIENABILI trasmissibilità del diritto
• IMPRESCRITTIBILI
RIF. LDA ARTT. 20-24, ARTT. 142-143
PATERNITÀ durata limitata nel tempo: 70 anni dalla morte dell’autore
INTEGRITÀ
INEDITO
RITIRO DELL'OPERA
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 13 Wednesday, May 11, 2011 14
Diritti morali Licensing & licensing agreement
Il diritto di paternità
The granting of permission to use intellectual property rights, such as
Il diritto di opporsi a qualsiasi deformazione, mutilazione o altra trademarks, patents, or technology, under defined conditions.
CSIG & IS CSIG & IS
modificazione, e a ogni atto a danno dell’opera stessa, che possano
essere di pregiudizio all’onore e alla reputazione dell’autore Written contract under which the owner of a copyright, know how, patent,
servicemark, trademark, or other intellectual property, allows a licensee to
Il diritto di ritirare l’opera dal commercio use, make, or sell copies of the original.
Diritto di inedito (l'autore ha diritto di pubblicare la propria opera o di
lasciarla per sempre nell'inedito, insomma è arbitro della pubblicazione)
AVV. ANDREA MAGGIPINTO :: WWW.MAGGIPINTO.ORG
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 15 Wednesday, May 11, 2011 16
5. Distribuzione del software: terminologia
software freeware (libero): distribuito gratuitamente. Sono generalmente ammesse la redistribuzione e la
duplicazione, sempre a titolo gratuito. Il codice sorgente può essere fornito o meno, tale scelta non è
direttamente collegata alla gratuità dell’applicativo; (NB. NON è necessariamente Open Source, slides
successive...)
software shareware: fornito a titolo dimostrativo per un periodo limitato di tempo, e spesso al limite
temporale si abbina anche una limitazione funzionale. Al termine del periodo stabilito per la prova,
l’utilizzatore è tenuto ad acquistare regolare licenza a pagamento o a cessare ogni forma di utilizzo;
CSIG & IS
software copyleft: individua un modello di gestione dei diritti d'autore basato su un sistema di licenze
attraverso le quali l'autore (in quanto detentore originario dei diritti sull'opera) indica ai fruitori dell'opera CODICE SORGENTE E CODICE ESEGUIBILE
che essa può essere utilizzata, diffusa e spesso anche modificata liberamente, pur nel rispetto di alcune
condizioni essenziali.
software di dominio pubblico: espressione del diniego di interesse da parte del programmatore. Pone il
software in uno stato privo di copyright;
software proprietario: dotato di limitazioni d’uso, di redistribuzione o copia, di modifica, poste
dall’autore e certificate da un mezzo tecnico o legale;
software commerciale: sviluppato da un’azienda con la finalità di distribuirlo sul mercato a pagamento.
Non necessariamente si tratta di software proprietario: applicativi commerciali freeware inquadrano la
distribuzione con contratti di assistenza a pagamento
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 17 Wednesday, May 11, 2011 18
Codice sorgente e codice eseguibile Use case: Oracle Sun Java
CODICE SORGENTE: file .java contenente codice in linguaggio Java (ovvero
che ne rispetti la sintassi e la semantica).
L’accesso o meno al codice sorgente del software è prerequisito parte di
ogni tipologia di licenza
CSIG & IS CSIG & IS
Codice sorgente: espressione del software in una forma intelligibile
espressa in un qualche linguaggio di programmazione, che deve essere
tradotta in linguaggio macchina per poter essere eseguita dal computer.
Codice eseguibile: traduzione del codice sorgente del software in una
forma che permetta immediata esecuzione (o interpretazione) da parte
dell’entità software preposta alla traduzione in codice macchina.
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 19 Wednesday, May 11, 2011 20
6. Use case: Oracle Sun Java Use case: Oracle Sun Java
CODICE COMPILATO (BYTECODE ESEGUIBILE): file .class interpretabile CODICE COMPILATO (BYTECODE ESEGUIBILE): file .class interpretabile
(eseguibile) da un’entità software denominata Java Virtual Machine (eseguibile) da un’entità software denominata Java Virtual Machine
CSIG & IS CSIG & IS
SORGENTE: INTELLIGIBILE, MODIFICABILE BYTECODE: ESEGUIBILE, NON INTELLIGIBILE
PROGRAMMATORE LICENZIATARIO
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 21 Wednesday, May 11, 2011 22
L’importanza del codice sorgente Utilizzo del codice sorgente di un sw
E’ il “substrato” a partire dal quale il software prende vita
Il programmatore, durante le varie fasi di sviluppo, produce e archivia
diverse revisioni del codice sorgente (CVS versioning system)
Fornisce un gran numero di informazioni tecniche low level relative al
software:
CSIG & IS CSIG & IS
Al momento della consegna il software è basato su un sorgente etichettato
con un numero di versione, generalmente 1.x se definitivo o 0.x se ancora in
algoritmi utilizzati
deployment
architettura software implementata
Revisioni dell’applicativo successive alla consegna:
librerie utilizzate
modifica diretta della versione 1.x, operando sul codice sorgente
gestione della sicurezza
utilizzo della versione 1.x, aggiungendo moduli funzionali che si
appoggiano sull’applicativo completo (o su parti di esse)
protezione dei dati, information hiding
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 23 Wednesday, May 11, 2011 24
7. Modifica del codice sorgente Utilizzo del codice sorgente
Effettuata dal programmatore stesso o da terze parti L’accesso al codice sorgente apre all’utilizzatore anche ulteriori prospettive:
Può alterare il funzionamento a regime dell’applicativo, stabilito dalle specifiche funzionali
realizzazione di componenti utilizzando i medesimi algoritmi del codice
(guida all’uso)
sorgente analizzato
CSIG & IS CSIG & IS
Richiede approfondita conoscenza dell’architettura utilizzata dall’applicativo
(documentazione tecnica) adattamento del codice sorgente alle proprie esigenze
In generale, dato un applicativo fornito alla revisione 1.x o successiva, le operazioni di miglioramento dell’applicativo intervenendo direttamente sul codice
modifica / aggiornamento / correzione realizzate intervenendo sul sorgente sono di elevata sorgente (non riducendosi al mero utilizzo del binario)
complessità:
necessario sviluppo team-based
sviluppo di librerie che utilizzano sorgenti già collaudati
design patterns contributo alla comunità di sviluppatori (gruppi di discussione internet,
repositories pubblici, documentazione liberamente accessibile, case
documentazione on code studies)
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 25 Wednesday, May 11, 2011 26
Open Source Software (OSS) Software OSI Certified
Per ottenere la certificazione di Software Open Source, esistono inoltre alcuni criteri
La definizione di software “Open Source” è stata proposta dalla Open aggiuntivi da rispettare, tra cui:
Source Initiative ed è attualmente utilizzata per definire quali tipologie di
licenze possano essere qualificate come “a sorgente aperto” (corollario: OSI inviolabilità del codice originale, ovvero data una versione del codice sorgente
CERTIFIED). (eventualmente modifica da più utenti), deve essere possibile ottenere la versione
originale dell’autore (applicabile tramite l’adozione di patches sull’originale);
CSIG & IS CSIG & IS
In generale, la qualifica di OSS prescrive il rispetto dei 3 canoni non deve essere inibito l’accesso al sorgente per determinate tipologie di utenti o
fondamentali: gruppi di utenti;
la licenza d’uso originale deve poter essere applicabile a qualunque sottinsieme di
1. l’oggetto del licensing non deve godere di commerciabilità con diritto utenti, senza la necessità di emetterne di nuove;
esclusivo (free redistribution);
non possono esistere restrizioni relative a determinati ambiti di utilizzo;
2. il codice sorgente deve essere disponibile (source code); la licenza non deve porre restrizioni su altro software distribuito insieme al software
licenziato. Per esempio, la licenza non deve richiedere che tutti gli altri programmi
distribuiti sugli stessi supporti siano software open source.
3. deve essere attuabile la generazione di opere derivate da quella oggetto
della licenza (derived works). La licenza non deve contenere clausole che dipendano o si basino su particolari
tecnologie o tipi di interfacce.
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 27 Wednesday, May 11, 2011 28
8. Codice eseguibile (o compilato) Eseguibile --> Sorgente?
Destinato all’esecuzione, attraverso librerie del sistema operativo (es. .exe in Reverse engineering è il processo per cui è possibile risalire a dettagli
ambiente windows), oppure attraverso entità software fornite dal linguaggio di tecnologici, architetturali e di codifica di un applicativo software
programmazione utilizzato (es. jvm java)
Dall’eseguibile (o dal compilato) è possibile ricavare il codice sorgente che
Non intelligibile ne ha portato alla generazione
CSIG & IS CSIG & IS
L’eventuale clonazione - con l’obiettivo di generare un applicativo copia - può Esistono tools che permettono di generare diagrammi architetturali (UML
essere funzionale e basata sul livello di presentazione dell’applicativo per linguaggi a oggetti)
(interfaccia grafica), ma non è realizzabile dal punto di vista del codice
Nel caso di codice compilato (bytecode) esistono ulteriori forme di utilizzo CODICE SORGENTE
differenti dall’esecuzione in senso stretto del termine
VIA MAINTAINJ
creazione di componenti che utilizzano il compilato, e precisamente tutte le OR OTHERS TOOLS
funzionalità disponibili nella sua interfaccia pubblica
DIAGRAMMI UML
BYTECODE O ESEGUIBILE
creazione di librerie, composte da uno o più compilati
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 29 Wednesday, May 11, 2011 30
Reverse engineering: osservazioni Codice sorgente indispensabile?
Linguaggi come Java e ActionScript3 di Adobe utilizzano una tecnica a
bytecode per arrivare all’effettiva “esecuzione” del software o del
componente
Di norma vietato dalla legge, salvo che sia necessario per ottenere
l’interoperabilità del software decompilato con altri programmi e non vi sia
CSIG & IS CSIG & IS
altro modo di ottenere tale interoperabilità (ad esempio: il programmatore ha
in precedenza reso disponibile una patch per l’interoperabilità: in questo
caso ovviamente la decompilazione è vietata); Sorgente .java Bytecode .java
JVM
questa precisa facoltà di decompilare è prevista dalla legge vigente
questione controversa: una eventuale clausola che impedisca la
decompilazione del software inserita nella licenza è nulla, e sarà dunque
possibile decompilare se necessario ottenere l’interoperabilità.
Sorgenti .swf e as Binario .fXX
FLASH PLAYER
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 31 Wednesday, May 11, 2011 32
9. Licensing summary
,,OTHERS”
GPL LGPL X11 prop. licenses
CSIG & IS
AGPL
FREE SOFTWARE
LICENSING E CASI D’USO
AD HOC
talvolta derivative da licenze esistenti
SOFTWARE PROPRIETARIO, COMMERCIALE, CON LIMITAZIONI D’USO
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 33 Wednesday, May 11, 2011 34
GNU General Public License (GPL) GPL: preamble
AMBITO DI APPLICAZIONE: free software, copyleft software
“The licenses for most software are designed to take away your freedom to
First version by Richard Stallman in 1989, revisioni successive nel 1991 e share and change it. By contrast, the GNU General Public License is
nel 2007 (v3, attuale) intended to guarantee your freedom to share and change free software—to
CSIG & IS CSIG & IS
make sure the software is free for all its users.“
“Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.” ...
Il testo della licenza, dunque, non è modificabile. “When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for this
service if you wish), that you receive source code or can get it if you want it,
that you can change the software or use pieces of it in new free programs;
and that you know you can do these things.”
“GNU” IS A RECURSIVE ACRONYM FOR “GNU'S NOT UNIX
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 35 Wednesday, May 11, 2011 36
10. GPL: limitations GPL: obiettivi
...if you distribute copies of such a program, whether gratis or for a fee, you
must give the recipients all the rights that you have. You must make sure
1. Mantenere il software free, gratuito, in modo che risulti liberamente
that they, too, receive or can get the source code. And you must show them
redistribuibile senza autorizzazione del licensor
these terms so they know their rights.”
CSIG & IS CSIG & IS
2. L’utilizzatore riceve il software “as is”, senza alcun tipo di garanzia
“...we want to make certain that everyone understands that there is no
applicabile (no warranty)
warranty for this free software. If the software is modified by someone
else and passed on, we want its recipients to know that what they have is
3. Impedire qualunque tipologia di brevetto (patent) restrittivo delle facoltà del
not the original, so that any problems introduced by others will not reflect on
licenziatario
the original authors’ reputations.”
“If you develop a new program, and you want it to be of the greatest
“We wish to avoid the danger that redistributors of a free program will
possible use to the public, the best way to achieve this is to make it free
individually obtain patent licenses, in effect making the program
software which everyone can redistribute and change under these terms.”
proprietary. To prevent this, we have made it clear that any patent must be
licensed for everyone’s free use or not licensed at all.”
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 37 Wednesday, May 11, 2011 38
GPL: distribuzione GPL: verbatim copies
Due casistiche ben distinte:
redistribuzione del software in copia 1:1 (“verbatim copies”) È permessa la distribuzione di “copie esatte” del codice sorgente del
Programma, con qualunque mezzo, a condizione che:
CSIG & IS CSIG & IS
modifica del software o di parte di esso e successiva redistribuzione
dell’applicativo modificato si aggiunga un’appropriata nota di copyright;
GNU GENERAL PUBLIC LICENSE: TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION siano intatti gli avvisi sulla Licenza sulle le clausole non-permissive
AND MODIFICATION aggiunte in accordo con la sezione 7;
“This License applies to any program or other work which contains a notice placed by the copyright holder saying it may
be distributed under the terms of this General Public License. The “Program”, below, refers to any such program or
work, and a “work based on the Program” means either the Program or any derivative work under copyright law: siano intatti gli avvisi circa l'assenza di garanzia;
that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into
another language. (Hereinafter, translation is included without limitation in the term “modification”.) Each licensee is
addressed as “you”.
Activities other than copying, distribution and modification are not covered by this License; they are outside its
sia fornita ai destinatari una copia della Licenza
scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents
constitute a work based on the Program (independent of having been made by running the Program). Whether that is true
depends on what the Program does.
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 39 Wednesday, May 11, 2011 40
11. GPL: modifica e redistribuzione GPL: aggregazione e composizione
È possibile distribuire un'opera basata sul Programma, o le modifiche per L’aggregazione di più componenti o software (o più programmi tra di loro)
produrla a partire dal Programma, nella forma di codice sorgente secondo i stabilisce un rapporto di utilizzo reciproco tra di essi;
termini della sezione 4, ammesso che tu rispetti anche tutte le seguenti
condizioni: non esiste una relazione funzionale stretta per cui l’aggregazione dei singoli
CSIG & IS CSIG & IS
componenti vada a formare un programma a sé stante;
informazioni esaustive dell’avvenuta modifica, con indicazione della data
“raccolta di software” all’interno di un unico supporto di memorizzazione o una
locazione logica;
informazioni adeguate sulla Licenza e sulle condizioni aggiuntive
(sezione 7)
L'inclusione di un programma coperto da questa Licenza in un aggregato non
comporta l'applicazione di questa Licenza alle altre parti dell'aggregato.
rilasciare l’opera, nel suo complesso, sotto Licenza GPL
In molti casi è possibile distribuire il software coperto da GPL accanto ad un
se l'opera ha delle interfacce utente interattive, ciascuna deve mostrare sistema proprietario. È necessario assicurarsi che i programmi liberi e i non
delle Adeguate Informazioni Legali liberi del sistema comunichino tra di loro ma siano tra di loro indipendenti
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 41 Wednesday, May 11, 2011 42
GPL: implementazione GPL: utilizzo di librerie
Inserimento di una clausola all’inizio di ogni file sorgente (es. tramite blocco di
commento o documentazione /** */ , in cui si indichi la natura GNU GPL del
programma;
inclusione, nella struttura logica del programma (es. directories), di una copia in A “library” means a collection of software functions and/or data prepared so
formato digitale della GNU GPL (testo ufficiale); as to be conveniently linked with application programs (which use some of
CSIG & IS CSIG & IS
those functions and data) to form executables.
la nota di copyright deve comprendere l'anno in cui il programma è stato completato
(quindi, se è stato completato nel 1998 ma non è stato pubblicato fino al 1999, bisogna La GPL non permette di incorporare componenti GPL all’interno di software
scrivere 1998). Bisogna aggiungere l'anno per ogni versione: per esempio, "Copyright proprietari. E’ espressamente vietato dal testo della licenza
1998, 1999 Rita Rossi" se alcune versioni sono state completate nel 1998 ed altre nel
1999. Se più persone hanno contribuito a scrivere il programma, vanno scritti tutti i loro
nomi; Le librerie rilasciate sotto licenza GPL, dunque, sono incorporabili all’interno
di un software che verrà poi rilasciato con un tipo di licenza compatibile
nel caso in cui sia stato prelevato codice da altro software in licenza GPL, includere
anche le note di copyright dell’originale; GNU Lesser General Public License più adeguata per tali casistiche
inserire le informazioni di contatto, fondamentali per permettere all’utilizzatore di
comunicare con l’autore.
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 43 Wednesday, May 11, 2011 44
12. GNU Lesser General Public License Libraries: dal punto di vista del programmatore
Qual è il tipo di licenza migliore da abbinare alle proprie librerie personalizzate?
The GNU Lesser General Public License (LGPL) is another license created
by the Free Software Foundation for the purpose of permitting a certain Utilizzando GPL si inibisce l’utilizzo della libreria nei software proprietari, rendendola
class of programs, generally subroutine libraries, to be licensed under an disponibile solo per gli applicativi free
FSF license but be permitted to link with non-GPL software programs.
CSIG & IS CSIG & IS
La licenza GPL non risulta particolarmente indicata quando le funzionalità offerte dalla
LGPL-licensed libraries can be linked with non-GPL licensed programs, libreria sono largamente disponibili in altre librerie
including proprietary software.
Ad esempio, nel caso delle librerie C vi è larga disponibilità di LGPL: se il programmatore
dovesse rilasciare la propria libreria in modalità GPL, gli sviluppatori di software proprietario
- banalmente - se ne cercherebbero altre;
Tipologia di licenza fondamentale per il programmatore: permette Viceversa, nel caso in cui la libreria sviluppata offra funzionalità uniche, rilasciarla sotto
l’utilizzo di librerie di terze parti - fornite con LGPL - all’interno di licenza GPL è decisamente produttivo dal punto di vista della comunità di sviluppatori:
software anche non dotati di licenza GPL esisterà almeno un applicativo free con codice aperto che la utilizza;
repository www.sourceforge.net La presenza di un buon numero di librerie GPL con funzionalità uniche, non disponibili con
LGPL, darà un vantaggio notevole allo sviluppo del software libero
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore.
SMAU PADOVA 2011
Wednesday, May 11, 2011 45 Wednesday, May 11, 2011 46
Use case: pdf generator iText libraries Use case: pdf generator iText libraries
Linguaggio utilizzato: Oracle Sun Java J2SE
ITEXT LIBRARIES
HTTP://ITEXTPDF.COM LINKER
ALTRE LIBRARIES
CSIG & IS CSIG & IS
iText ® is a library that allows you to create and manipulate PDF
documents. It enables developers looking to enhance web- and other
applications with dynamic PDF document generation and/or manipulation. CODICE SORGENTE
Developers can use iText to:
Serve PDF to a browser
Generate dynamic documents from XML files or databases
Use PDF's many interactive features
COMPILATO O ESEGUIBILE
2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione 2011, Diritti riservati IS. Eʼ vietata ogni forma di pubblicazione
WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011 WWW.SERRAINO.IT
senza preventiva autorizzazione dellʼautore. SMAU PADOVA 2011
Wednesday, May 11, 2011 47 Wednesday, May 11, 2011 48