Al software si applica il diritto d’autore che riserva al titolare i diritti di pubblicazione e di utilizzazione economica.
Il diritto d’autore opera di default: perché un programma sia software libero o open source è quindi necessario che il titolare del diritto lo pubblichi secondo i termini di una idonea licenza: una licenza di software libero o open source.
Il software libero o open source è software licenziato, e quindi utilizzabile dall’utente, secondo termini di particolari licenze che soddisfano la definizione di software libero o open source (le due definizioni sono diverse, ma l’insieme delle licenze che le soddisfano è sostanzialmente omogoeneo, quindi d’ora in poi si utilizzerà l’espressione software libero ma le considerazioni svolte valgono anche per il software open source).
Esistono molte licenze di software libero, anche se le più utilizzate sono relativamente poche.
In alcune licenze è presente una clausola (cd. “copyleft”) che permette all’utente di modificare e redistribuire il software licenziato secondo quella licenza a condizione che la versione modificata sia a sua volta licenziata secondo i termini della stessa licenza.
Negli Stati Uniti ed in altri paesi al software si applica anche il diritto di brevetto per invenzione che attribuisce al titolare il diritto esclusivo di attuare l’invenzione e di trarne profitto e quindi le licenze di software libero adottano diverse tecniche per limitare l’interferenza dei brevetti per invenzione.
Possono interferire con l’uso e la circolazione del software libero anche altre norme, come per esempio quelle:
Inoltre, chi usa o distribuisce software libero deve valutare se eventuali ulteriori obblighi (che si potrebbero assumere, per es., con un contratto) siano compatibili con la licenza di software libero applicabile.
Le licenze di software libero impongono una serie di obblighi a chi distribuisce il software in versione originale o modificata.
Deve quindi rispettare questi obblighi chi distribuisce (su supporti fisici o anche online) copie o modifiche (cd. patch) di software libero o chi distribuisce dei prodotti che includono componenti in software libero. Questi obblighi riguardano quindi anche soggetti che operano in settori industriali lontani dall’industria informatica: molti dei prodotti oggi sul mercato (come per esempio autovetture, condizionatori, decoder ed elettrodomestici) includono comunemente software libero.
In certi casi, anche l’offerta di software come servizio da remoto (cd. SaaS) può implicare la necessità di rispettare alcuni degli obblighi imposti dalle licenze di software libero (per es., se nel server si utilizza software cd. “network copyleft” o se l’utente deve utilizzare nel suo client del software libero distribuito dal fornitore del servizio).
Gli obblighi imposti a carico di chi distribuisce il software o di chi vi contribuisce sono previsti dalle licenze di software libero a vantaggio degli utenti “a valle” (gli utenti ai quali si distribuisce il software e, a volte, i loro aventi causa) ma anche a vantaggio dei licenzianti (coloro i quali hanno sviluppato e distribuito la versione originaria del software).
Alcune licenze “copyleft” sono incompatibili tra di loro. Quindi, se si intende realizzare un progetto complesso, riusando diversi programmi licenziati con diverse licenze di software libero, è importante analizzare (meglio se prima di iniziare il progetto) come interagiscono i diversi componenti per evitare il rischio di incompatibilità.
Le diverse licenze “copyleft” impongono su chi distribuisce il software una serie di obblighi che sono tipici di questo tipo di licenze ma che variano da licenza a licenza:
Vi sono poi altri obblighi che riguardano tutti i tipi di licenze di software libero, anche quelle “non-copyleft”, che anche variano da licenza a licenza.
Innanzitutto, praticamente tutte le licenze di software libero impongono di redistribuire il software con una nota di diritto d’autore (cd. “copyright notice”).
Poi, alcune licenze impongono di distribuire il software con altre informative da redigere secondo specifiche indicazioni (che variano da licenza a licenza).
Per esempio, alcune licenze richiedono di:
Infine, alcune licenze di software libero prevedono degli obblighi rispetto ai diritti di brevetto per invenzione eventualmente detenuti dall’utente del software libero utilizzato.
È infine importante ricordare che la violazione degli obblighi imposti dalle licenze di software libero può determinare la cessazione degli effetti della licenza, con la conseguente necessità di “fare qualcosa” per riacquistare il diritto d’utilizzare il software secondo i termini della stessa licenza di software libero (per es., la GPL – con modalità diverse tra la GPLv2 e la GPLv3 – la MPL e la EPL).
Per evitare di violare gli obblighi imposti dalle licenze di software libero è utile adottare delle buone pratiche di gestione.
In particolare:
A volte (certamente quando non è stato adottato “a monte” un appropriato processo di documentazione delle licenze di software libero che si applicano al software che si intende distribuire) è utile utilizzare strumenti di analisi del software per acquisire in modo automatico indicazioni sulle licenze ed informative di diritto d’autore del software che si riusa e distribuisce.
Da alcuni anni è disponibile la specifica OpenChain, realizzata nel quadro di un progetto della Linux Foundation, che definisce i requisiti chiave per attuare un programma di conformità agli obblighi imposti dalle licenze di software libero di qualità e, quindi, credibile.
© Marco Ciurcina, 2020 – Alcuni diritti riservati
Quest’opera è utilizzabile secondo i termini della licenza Creative Commons Attribuzione-Condividi allo stesso modo 4.0 Internazionale.
Il testo della licenza è disponibile qui https://creativecommons.org/licenses/by-sa/4.0/legalcode.