1.3 Licenze Open Source e Software Libero
Introduzione
Nonostante i termini software libero ed open source oggi sono ampiamente utilizzati, esistono ancora alcune malcomprensioni circa il loro reale significato. In particolare, il concetto di «libertà» necessita di un esame più approfondito per essere compreso appieno.
Iniziamo con il definire i due termini.
Definizione di Software Libero e Open Source
Criteri del Software Libero
Prima di tutto, «libero» nel contesto del software libero non ha nulla a che fare con «gratuito», o come il fondatore della Free Software Foundation (FSF), Richard Stallman, sinteticamente dice:
Per capire il concetto, dovresti pensare a «libero» come in «libertà di parola», non come in «birra gratis».
— Richard Stallman
Cos’è il software libero?
Indipendentemente dal fatto che tu debba pagare per il software o meno, ci sono quattro criteri che costituiscono software libero. Richard Stallman descrive questi criteri come «le quattro libertà essenziali», il cui conteggio parte da zero:
«La libertà di eseguire il programma come si desidera, per qualsiasi scopo (libertà 0).»
Dove, come e per quale scopo il software viene utilizzato non possono essere prescritti né limitati.
«La libertà di studiare come funziona il programma, e cambiarlo in modo che faccia il vostro calcolo come si desidera (libertà 1). L’accesso al codice sorgente è una condizione preliminare per questo.»
Ognuno può cambiare il software in base alle proprie idee ed esigenze. Ciò presuppone a sua volta che il cosiddetto codice sorgente, ossia tutti i file di cui è costituito un software, deve essere disponibile in una forma leggibile dai programmatori. E, naturalmente, questo diritto si applica a un singolo utente che potrebbe voler aggiungere una singola funzionalità, nonché alle società di software che costruiscono sistemi complessi come sistemi operativi per smartphone o firmware del router.
«La libertà di ridistribuire copie in modo da poter aiutare gli altri (libertà 2).»
Questa libertà incoraggia esplicitamente ogni utente a condividere il software con altri. Si tratta quindi della più ampia distribuzione possibile e quindi della più ampia comunità possibile di utenti e sviluppatori che, sulla base di queste libertà, sviluppano e migliorano ulteriormente il software a beneficio di tutti.
«La libertà di distribuire copie delle tue versioni modificate ad altri (libertà 3). In questo modo puoi dare a tutta la comunità la possibilità di beneficiare dei tuoi cambiamenti. L’accesso al codice sorgente è una condizione preliminare per questo.»
Non si tratta solo della distribuzione del software libero, ma della distribuzione del software libero modificato. Chiunque apporti modifiche al software libero ha il diritto di rendere le modifiche disponibili ad altri. Se lo fanno, sono obbligati a farlo liberamente, vale a dire non devono limitare le libertà originarie nella distribuzione del software, anche se lo hanno modificato o esteso. Ad esempio, se un gruppo di sviluppatori ha idee diverse sulla direzione di un software specifico rispetto agli autori originali, può dividere il proprio ramo di sviluppo (chiamato fork) e continuare come un nuovo progetto. Ma, naturalmente, tutti gli obblighi associati a queste libertà rimangono.
L’enfasi posta sull’idea di libertà è coerente anche nella misura in cui ogni movimento di libertà è diretto contro qualcosa, vale a dire un avversario che sopprime le libertà postulate, che considera il software come proprietà e vuole tenerlo sotto chiave. A differenza del software libero, tale software è chiamato proprietario.
Software Open Source vs Software Libero
Per molti, il software libero e il software open source sono sinonimi. L’abbreviazione FOSS per Free and Open Source Software sottolinea questa comunanza. FLOSS for Free/Libre e Open Source Software è un altro termine popolare, che sottolinea inequivocabilmente l’idea di libertà anche per altre lingue diverse dall’inglese. Tuttavia, se si considera l’origine e lo sviluppo di entrambi i termini, è utile una differenziazione.
Il termine software libero con la definizione delle quattro libertà descritte risale a Richard Stallman e al progetto GNU fondato da lui nel 1985 — quasi 10 anni prima dell’emergere di Linux. Il nome «GNU is not Unix» descrive l’intenzione con un occhiolino: GNU ha iniziato come iniziativa per sviluppare da zero una soluzione tecnicamente convincente — ossia il sistema operativo Unix — per renderla disponibile al grande pubblico e migliorarla continuamente con il grande pubblico. L’apertura del codice sorgente era semplicemente una necessità tecnica e organizzativa per questo, ma nella sua immagine il movimento del software libero è ancora un movimento sociale e politico — alcuni dicono anche ideologico —.
Con il successo di Linux, le possibilità collaborative di Internet e le migliaia di progetti e aziende emerse in questo nuovo cosmo software, l’aspetto sociale si è sempre più ritirato in secondo piano. L’apertura del codice sorgente è cambiata da un requisito tecnico a una caratteristica di definizione: non appena il codice sorgente era visibile, il software è stato considerato «open source». Le motivazioni sociali hanno dato il posto a un approccio più pragmatico allo sviluppo del software.
Software libero e software open source lavorano sulla stessa cosa, con gli stessi metodi e in una comunità mondiale di individui, progetti e aziende. Ma dal momento che si sono riuniti da direzioni diverse — una sociale e una pragmatico-tecnica — a volte ci sono conflitti. Questi conflitti sorgono quando i risultati del lavoro congiunto non corrispondono agli obiettivi originali di entrambi i movimenti. Ciò accade soprattutto quando il software rivela le sue fonti ma non rispetta contemporaneamente le quattro libertà del software libero, ad esempio quando ci sono restrizioni alla divulgazione, modifica o connessione con altri componenti software.
La licenza in base alla quale il software è disponibile determina le condizioni a cui il software è soggetto per quanto riguarda l’uso, la distribuzione e la modifica. E poiché i requisiti e le motivazioni possono essere molto diversi, nell’area FOSS sono state create innumerevoli licenze diverse. A causa dell’approccio molto più fondamentale del movimento del software libero, non sorprende che non riconosca molte licenze open source come «libere» e quindi le respinga. Al contrario, questo è difficilmente il caso a causa dell’approccio open source molto più pragmatico.
Diamo un breve sguardo all’area effettivamente molto complessa delle licenze qui sotto.
Licenze
A differenza di un frigorifero o di un’auto, il software non è un prodotto fisico, ma un prodotto digitale. Pertanto, una società non può effettivamente trasferire la proprietà di un tale prodotto vendendolo e cambiando il possesso fisico — piuttosto, trasferisce i diritti d’uso a quel prodotto, e l’utente accetta contrattualmente tali diritti d’uso. Quali diritti d’uso sono e soprattutto non sono sono registrati nella licenza software, e quindi diventa comprensibile quanto siano importanti le norme ivi contenute.
Mentre i grandi fornitori di software proprietario, come Microsoft o SAP, hanno le proprie licenze che sono su misura per i loro prodotti, i sostenitori del software libero e open source hanno cercato fin dall’inizio di chiarezza e validità generale delle loro licenze, perché dopo tutto, ogni utente dovrebbe capirli e, se necessario, usarli se stesso per i propri sviluppi.
Tuttavia, non si deve nascondere che questo ideale di semplicità difficilmente può essere raggiunto perché troppi requisiti specifici e intese giuridiche non sempre compatibili a livello internazionale ostacola tutto questo. Per fare solo un esempio: le leggi tedesche e americane sul diritto d’autore sono fondamentalmente diverse. Secondo la legge tedesca c’è una persona come autore (più precisamente: Urheber), il cui lavoro è la sua proprietà intellettuale. Mentre l’autore può concedere il permesso di utilizzare il suo lavoro, non può assegnare o rinunciare alla sua paternità. Quest’ultimo è estraneo alla legge americana. Anche qui c’è un autore (che, tuttavia, può anche essere un’impresa o un’istituzione), ma ha solo diritti di sfruttamento che può trasferire in parte o integralmente e quindi staccarsi completamente dal suo lavoro. Una licenza valida a livello internazionale deve essere interpretata nel rispetto di una legislazione diversa.
Le conseguenze sono numerose e talvolta molto diverse licenze FOSS. Peggio, ancora, sono diverse versioni di una licenza, o un mix di licenze (all’interno di un progetto, o anche quando si collegano più progetti) che possono causare confusione o persino controversie legali.
Sia i rappresentanti del software libero che i sostenitori del movimento open source chiaramente orientato economicamente hanno creato le proprie organizzazioni, che oggi sono decisivamente responsabili della formulazione delle licenze software secondo i loro principi e supportano i loro membri nella loro applicazione.
Copyleft
La già citata Free Software Foundation (FSF) ha formulato la GNU General Public License (GPL) come una delle licenze più importanti per il software libero, utilizzata da molti progetti, ad esempio il kernel Linux. Inoltre, ha rilasciato licenze con personalizzazioni specifiche del caso, come la GNU Lesser General Public License (LGPL), che regola la combinazione di software libero con meno componenti liberi, la GNU Affero General Public License (AGPL), che copre la vendita di accesso al software ospitato, o la GNU Free Documentation License (FDL), che estende i principi di libertà alla documentazione software. Inoltre, la FSF formula raccomandazioni a favore o contro licenze di terze parti e progetti affiliati come GPL-Violations.org indagano sospette violazioni delle licenze gratuite.
La FSF definisce il principio secondo cui una licenza gratuita si applica anche alle varianti modificate del copyleft del software, in contrasto con il principio del diritto d’autore restrittivo che rifiuta. L’idea, quindi, è di trasferire i principi liberali di una licenza software nel modo più illimitato possibile alle future varianti del software al fine di evitare ulteriori restrizioni.
Ciò che sembra ovvio e semplice, tuttavia, porta a notevoli complicazioni nella pratica, motivo per cui i critici spesso chiamano il principio del copyleft «virale», poiché viene trasmesso alle versioni successive.
Da quanto detto risulta, ad esempio, che due componenti software concessi in licenza con diverse licenze copyleft potrebbero non essere combinabili tra loro, poiché entrambe le licenze non possono essere trasferite contemporaneamente al prodotto successivo. Questo può anche essere applicato a diverse versioni della stessa licenza!
Per questo motivo, le licenze più recenti o le versioni di licenza spesso non afferrano più il copyright in modo così rigoroso. Già la menzionata GNU Lesser General Public License (LGPL) è in questo senso una concessione per poter collegare il software libero con componenti «non-free», come avviene spesso con le cosiddette librerie. Le librerie contengono subroutine o routine, che a loro volta sono utilizzate da vari altri programmi. Ciò porta alla situazione comune in cui il software proprietario chiama tale subroutine da una libreria libera.
Un altro modo per evitare conflitti di licenza è la doppia licenza, in cui un software è concesso in licenza con licenze diverse, ad esempio una licenza libera e una licenza proprietaria. Un caso d’uso tipico è una versione gratuita di un software che può essere utilizzato solo nel rispetto delle restrizioni del copyright e dell’offerta alternativa di ottenere il software con una licenza diversa che libera il licenziatario da determinate restrizioni in cambio di una tassa che potrebbe essere utilizzata per finanziare lo sviluppo di il software.
Dovrebbe quindi essere chiaro che la scelta della licenza per i progetti software dovrebbe essere fatta con molta cautela, poiché la cooperazione con altri progetti, la combinabilità con altri componenti e anche la futura progettazione del proprio prodotto dipendono da esso. Il copyleft presenta agli sviluppatori sfide speciali in questo senso.
Definizione open source e licenze permissive
Dal lato dell’open source, è l’Open Source Initiative (OSI), fondata nel 1998 da Eric S. Raymond e Bruce Perens, che si occupa principalmente di questioni relative alle licenze. Ha inoltre sviluppato una procedura standardizzata per il controllo delle licenze software per la conformità con la sua Definizione Open Source. Più di 80 licenze open source riconosciute possono attualmente essere trovate sul sito web OSI.
Qui elencano anche le licenze come «approvate dall’OSI» che contraddicono esplicitamente il principio del copyleft, in particolare il gruppo di licenze BSD. La Berkeley Software Distribution (BSD) è una variante del sistema operativo Unix originariamente sviluppato all’Università di Berkeley, che in seguito ha dato origine a progetti gratuiti come NetBSD, FreeBSD e OpenBSD. Le licenze alla base di questi progetti sono spesso definite permissive. Contrariamente alle licenze copyleft, esse non hanno lo scopo di stabilire i termini di utilizzo delle varianti modificate. Piuttosto, la massima libertà dovrebbe aiutare il software ad essere distribuito il più ampiamente possibile lasciando gli editori del software da soli a decidere come procedere con le modifiche — se, ad esempio, le rilasciano o le trattano come open source e le distribuiscono commercialmente.
La Licenza BSD a 2 Clausole, chiamata anche Licenza BSD semplificata o Licenza FreeBSD, dimostra quanto possa essere ridotta una licenza permissiva. Oltre alla clausola di responsabilità standardizzata, che protegge gli sviluppatori dalle rivendicazioni di responsabilità derivanti da danni causati dal software, la licenza consiste solo nelle seguenti due regole:
La ridistribuzione e l’uso in forme di origine e binarie, con o senza modifiche, sono consentite a condizione che siano soddisfatte le seguenti condizioni:
Le ridistribuzioni del codice sorgente devono conservare l’avviso di copyright di cui sopra, questo elenco di condizioni e la seguente esclusione di responsabilità.
Le ridistribuzioni in forma binaria devono riprodurre il suddetto avviso di copyright, questo elenco di condizioni e il seguente disclaimer nella documentazione e/o altri materiali forniti con la distribuzione.
Creative Commons
Il successo del concetto di sviluppo di FLOSS e il relativo progresso tecnologico hanno portato a tentativi di trasferire il principio open source ad altre aree non tecniche. La preparazione e la fornitura di conoscenze, nonché la cooperazione creativa nella risoluzione di compiti complessi, sono ora considerati come prova del principio open source esteso e legato ai contenuti.
Ciò ha portato alla necessità di creare basi affidabili anche in questi settori, in base alle quali i risultati del lavoro possono essere condivisi ed elaborati. Poiché le licenze software disponibili non erano adatte a questo scopo, ci sono stati numerosi tentativi di convertire i requisiti specifici dal lavoro scientifico alle opere d’arte digitalizzate «nello spirito dell’open source» in licenze altrettanto utili.
Di gran lunga l’iniziativa più importante di questo tipo oggi è Creative Commons (CC), che riassume le sue preoccupazioni come segue:
Creative Commons è un’organizzazione no-profit globale che consente la condivisione e il riutilizzo della creatività e della conoscenza attraverso la fornitura di strumenti legali gratuiti.
—
Con Creative Commons, l’obiettivo dell’assegnazione dei diritti va dal distributore all’autore. Un esempio: nell’editoria tradizionale, un autore di solito trasferisce tutti i diritti di pubblicazione (stampa, traduzione, ecc.) ad un editore, che a sua volta garantisce la migliore distribuzione possibile dell’opera. I canali di distribuzione di Internet significativamente modificati mettono l’autore in grado di esercitare personalmente molti di questi diritti editoriali e di decidere autonomamente come utilizzare il suo lavoro. Creative Commons dà l’opportunità di determinarlo in modo semplice e legalmente affidabile, ma Creative Commons vuole di più: gli autori sono incoraggiati a rendere disponibili le loro opere come contributo a un processo generale di scambio e cooperazione. A differenza del diritto d’autore tradizionale, che conferisce all’autore tutti i diritti che possono trasferire ad altri se necessario, l’approccio Creative Commons prende l’approccio opposto: l’autore mette il suo lavoro a disposizione della comunità, ma può scegliere tra una serie di funzionalità quelle che devono essere considerate quando si utilizza il lavoro — più caratteristiche sceglie, più restrittiva la licenza.
E così il principio «Scegli una licenza» di CC chiede un autore passo dopo passo per le singole proprietà e genera la licenza consigliata, che l’autore può per ultimo assegnare all’opera come testo e icona.
Per una migliore comprensione, ecco una panoramica delle sei possibili combinazioni e licenze offerte da CC:
CC BY («Attribuzione»)
La licenza gratuita che consente a chiunque di modificare e distribuire l’opera purché nominino l’autore.
CC BY-SA («Attribuzione – Condividi allo stesso modo»)
Come BY-SA, tranne che il lavoro modificato può essere distribuito solo sotto la stessa licenza. Il principio ricorda il copyleft, perché anche qui la licenza è «ereditata».
CC BY-ND («Attribuzione – Non derivati»)
Come CC BY, tranne che il lavoro può essere trasmesso solo non modificato.
CC BY-NC («Attribuzione – Non commerciale»)
L’opera può essere modificata e distribuita nominando l’autore, ma solo in condizioni non commerciali.
CC BY-NC-SA («Attribuzione – Non commerciale – Condividi allo stesso modo»)
Come BY-NC, tranne che il lavoro può essere condiviso solo alle stesse condizioni (ad esempio una licenza copyleft-like).
CC BY-NC-ND («Attribuzione – Non commerciale – Non derivati»)
La licenza più restrittiva: la distribuzione è consentita con attribuzione dell’autore, ma solo invariata e in condizioni non commerciali.
Modelli di business in Open Source
In retrospettiva, il trionfo di FLOSS si comporta come un movimento di base di idealisti tecnofili che, indipendenti dai vincoli economici e privi di dipendenze monetarie, mettono il loro lavoro al servizio del grande pubblico. Allo stesso tempo, sono state create aziende del valore di miliardi nell’ambiente FLOSS; per citarne solo una, la società statunitense Red Hat fondata nel 1993 con un fatturato annuo di oltre 3 miliardi di dollari (2018), che è stata rilevata dal gigante IT IBM nel 2018.
Diamo quindi un’occhiata alla tensione tra la distribuzione gratuita e per lo più gratuita di software di alta qualità e i modelli di business per i suoi creatori, perché una cosa dovrebbe essere chiara: gli innumerevoli sviluppatori altamente qualificati di software libero devono anche guadagnare soldi, e l’originariamente puramente non – ambiente commerciale FLOSS deve quindi sviluppare modelli di business sostenibili al fine di preservare il proprio cosmo.
Un approccio comune, soprattutto per i progetti più grandi nella fase iniziale, è il cosiddetto crowdfunding, ovvero la raccolta di donazioni di denaro tramite una piattaforma come Kickstarter. In cambio, i donatori ricevono un bonus predefinito dagli sviluppatori in caso di successo, vale a dire se vengono raggiunti obiettivi precedentemente definiti, che si tratti di accesso illimitato al prodotto o di funzioni speciali.
Un altro approccio è la doppia licenza: il software libero viene offerto in parallelo sotto una licenza più restrittiva o addirittura proprietaria, che a sua volta garantisce al cliente servizi più ampi (tempi di risposta in caso di errori, aggiornamenti, versioni per determinate piattaforme, ecc.). Un esempio tra molti è ownCloud, che è in fase di sviluppo sotto la GPL e offre ai clienti business una «Business Edition» sotto una licenza proprietaria.
Prendiamo anche ownCloud come esempio di un altro modello di business FLOSS diffuso: servizi professionali. Molte aziende non dispongono delle conoscenze tecniche interne necessarie per configurare e gestire software complessi e critici in modo affidabile e, soprattutto, sicuro. Ecco perché acquistano servizi professionali come consulenza, manutenzione o helpdesk direttamente dal produttore. Anche le questioni di responsabilità svolgono un ruolo in questa decisione, in quanto la società trasferisce i rischi di funzionamento al produttore.
Se un software riesce a diventare successo e popolare nel suo campo, sono le possibilità di monetizzazione periferiche come il merchandising o i certificati che i clienti acquisiscono e quindi sottolineano il suo stato speciale quando si utilizza questo software. La piattaforma di apprendimento Moodle offre la certificazione di formatori, che documentano le loro conoscenze ai potenziali clienti, ad esempio, e questo è solo un esempio tra innumerevoli altri.
Software as a Service (SaaS) è un altro modello di business, soprattutto per le tecnologie web-based. In questo caso, un provider cloud esegue un software come un Customer Relationship Management (CRM) o un Content Management System (CMS) sui propri server e concede ai propri clienti l’accesso all’applicazione installata. Ciò consente di risparmiare l’installazione e la manutenzione del software da parte del cliente. In cambio, il cliente paga per l’utilizzo del software in base a vari parametri, ad esempio il numero di utenti. Disponibilità e sicurezza svolgono un ruolo importante come fattori critici per il business.
Ultimo ma non meno importante, il modello di sviluppo di estensioni specifiche del cliente in software libero su ordinazione è particolarmente comune nei progetti più piccoli. Di solito spetta al cliente decidere come procedere con queste estensioni, vale a dire se le rilascia o le tiene sotto chiave come parte del proprio modello di business.
Una cosa sarebbe dovuta essere chiara: sebbene il software libero sia solitamente disponibile gratuitamente, nel loro ambiente sono stati creati numerosi modelli di business, che vengono costantemente modificati ed ampliati da innumerevoli freelance e aziende in tutto il mondo in una forma molto creativa, che in ultima analisi garantisce anche il continua esistenza di tutto il movimento FLOSS.