Le regole del software libero

Le regole del software libero

Social engineering: il Phishing
10 Marzo 2020
Banda Ultra Larga: la Trivellazione Orizzontale Controllata
24 Marzo 2020

Software libero e diritto

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:

  • sui marchi e sugli altri segni distintivi,
  • sulle informazioni segrete,
  • sui prodotti a duplice uso.

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.

Obblighi degli utenti di software libero

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:

  • rendere disponibile il software anche in formato sorgente (per es., la GPL e la MPL),
  • includere informazioni sull’installazione del software (per es., la GPL e la EPL),
  • se si modifica il software, rendere disponibile anche la versione originale (per es. la MPL e la GPL),
  • non imporre all’utente ulteriori obblighi che limitino l’ulteriore distribuzione del software (per es. la GPL e la MPL),
  • manlevare i contributori del software da eventuali danni conseguenti alla distribuzione di prodotti che includono il software stesso (per es., la EPL).

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:

  • includere il testo della licenza (per es., le licenze MIT e Apache),
  • dare credito agli autori del software (per es., le licenze MITv1 e BSD originale),
  • se si modifica il programma, indicare quali modifiche sono state introdotte (per es., la GPL e la licenza Apache).

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).

I PRINCIPALI PROBLEMI E COME LIMITARNE IL RISCHIO

Per evitare di violare gli obblighi imposti dalle licenze di software libero è utile adottare delle buone pratiche di gestione.
In particolare:

  • adattare la contrattualistica con i fornitori di software per responsabilizzarli al rispetto degli obblighi imposti dalle licenze di software libero,
  • prevedere che gli sviluppatori interni si dotino (ed utilizzino in modo corretto) strumenti di controllo di versione del software sviluppato,
  • adottare procedure e strumenti idonei a documentare quale software libero sarà distribuito e secondo quali licenze di software libero,
  • individuare i soggetti responsabili del rispetto degli obblighi imposti dalle licenze di software libero,
  • prevedere che, prima della sua distribuzione, il software acquisito da terzi e quello sviluppato internamente sia controllato dai responsabili individuati.

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.

Condividi su:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

EnglishFrenchGermanItalianRussianSpanish