Il lato legale delle app
Ci interessa parlare delle librerie software perché nelle app ce ne sono sempre, a volte più a volte meno; in realtà in ogni progetto software ci sono librerie di terze parti (dette anche “dipendenze software”) ed è quindi importante tener presente l’aspetto legale di utilizzare il codice scritto da altri all’interno del proprio prodotto software.
Quando si parla di librerie software queste possono essere Open Source o Closed Source: nel primo caso significa che il team di sviluppo ha a disposizione il codice sorgente “aperto”, nel senso di completamente visibile da chiunque, nel secondo invece ha a disposizione dei file compilati senza l’accesso completo al codice.
Le librerie Closed Source sono solitamente quelle proprietarie che vengono acquistate in licenza da chi le ha create e le manutiene: possono essere librerie relative alla navigazione su mappe oppure per lo streaming video o l’editing avanzato di foto e video; solitamente nelle app che realizziamo sono presenti queste librerie solo se con il cliente si valuta più conveniente acquistare una funzionalità piuttosto che svilupparla in-house (è la sempre attuale valutazione cosiddetta make-or-buy).
Le librerie Open Source sono invece sempre presenti nei progetti, anche perché le aziende proprietarie dei sistemi operativi Apple e Google rilasciano librerie di questo genere per varie funzionalità. Vediamo quindi alcuni aspetti relativamente ai limiti di utilizzo di queste dipendenze software.
Questo articolo è un riepilogo sintetico di informazioni presenti in questi link:
1. Guida Github per la licenza di un software open-source: Licensing a repository - GitHub Docs
2. Sito apposito creato da Github per la scelta della licenza: Choose an open source license
3. Il lato legale dell’OpenSource: The Legal Side of Open Source
Un software OpenSource non è obbligato ad avere una licenza, ma senza licenza si applicano le normative standard relative al copyright ovvero che il proprietario del codice (chi l’ha scritto o l’azienda di cui fa parte chi l’ha scritto) detiene tutti i diritti e nessuno può riutilizzarlo, distribuirlo o crearne dei derivati: è quindi consultabile ma non utilizzabile. Nel caso dei progetti OpenSource se qualcuno contribuisce a modificare, correggere, evolvere il codice anch’egli ne diventa comproprietario, a meno di evidenze specifiche appunto nelle licenze.
Il software OpenSource è una circostanza inusuale per la legislazione “standard” perché l’autore si aspetta che altri utilizzino, modifichino e condividano il suo lavoro; ma siccome la normativa standard identifica i diritti di default al creatore del contenuto è necessario che chi lo utilizza sia in possesso dell’effettiva licenza che glielo permette.
Le licenze OpenSource più usate sono MIT, Apache 2.0 e GPLv3 ma ci sono alcune opzioni che si possono scegliere.
Sono considerate genericamente licenze permissive: MIT, Apache 2.0, ISC, e BSD
Sono considerate fortemente “copyleft” (ovvero richiedono che il software che le utilizza deve anch’esso utilizzare la stessa licenza): GPLv2, GPLv3, and AGPLv3. Sono utilizzate in progetti software che come obiettivo hanno quello di essere utilizzati in altri progetti OpenSource e non ClosedSource o commerciali se non con l’obbligo di rendere disponibile il codice sorgente.
Quindi quali librerie software con quali licenze utilizziamo nelle app per i nostri clienti?
Realizzando app (e nello specifico soprattutto Connective App) per smartphone e tablet su richiesta di clienti - e quindi a scopo commerciale - facciamo attenzione a scegliere librerie software che abbiano licenze adeguate e quindi più “permissive”, ovvero MIT, Apache 2.0, ISC e BSD.
Al tempo stesso è necessario che le nostre app abbiano una sezione in cui sono riportate tutte le licenze delle librerie Open Source in esse contenute in modo tale da dare a Cesare quel che è di Cesare, o meglio applicare quanto richiesto dalle licenze di suddette librerie.
Di seguito riportiamo i dettagli principali delle licenze più utilizzate nel mondo Open Source, di cui fanno parte anche molti componenti che utilizziamo nelle Connective App (fonte: Licenses) :
GNU GPLv3
Il permesso ad utilizzare codice protetto da questa licenza “fortemente copyleft” è condizionato dal rendere completamente disponibile il codice sorgente del risultato e renderlo disponibile con la medesima licenza. I diritti di copyright e la licenza della libreria devono essere preservati all’interno del software che lo utilizza.
Leggi la licenza GNU General Public License v3.0 per intero »
Mozilla Public License 2.0
Il permesso ad utilizzare codice protetto da questa licenza “debolmente copyleft” è condizionato dal rendere disponibile il codice sorgente della libreria utilizzata all’interno del risultato insieme alle eventuali modifiche e rendere nuovamente disponibile il suddetto con la medesima licenza. I diritti di copyright e la licenza della libreria devono essere preservati all’interno del software che lo utilizza. Ci sono comunque delle condizioni per cui un lavoro più ampio può usare questo codice sorgente utilizzando diversi termini e senza distribuire il codice sorgente.
Leggi la licenza Mozilla Public License 2.0 per intero »
Apache License 2.0
Questa è una licenza cosiddetta “permissiva” per cui le condizioni d’utilizzo principali richiedono che vengano mantenuti nel progetto la nota al copyright e la sua licenza. I progetti che utilizzano questo codice possono essere rilasciati con tutt’altra licenza e termini e senza per forza essere costretti a rendere disponibile il codice sorgente del progetto completo.
Leggi la licenza Apache License 2.0 per intero »
MIT License
È una breve e semplice licenza permissiva le cui uniche condizioni di utilizzo sono il mantenimento nel progetto della nota al copyright e la licenza. I progetti che utilizzano questo codice possono essere rilasciati con tutt’altra licenza e termini e senza per forza essere costretti a rendere disponibile il codice sorgente del progetto completo.
Leggi la licenza MIT License per intero »