{"id":782,"date":"2017-11-20T11:22:40","date_gmt":"2017-11-20T10:22:40","guid":{"rendered":"https:\/\/alistapart.com\/it\/article\/prendere-in-considerazione-le-licenze-open-source\/"},"modified":"2017-11-20T11:22:40","modified_gmt":"2017-11-20T10:22:40","slug":"prendere-in-considerazione-le-licenze-open-source","status":"publish","type":"article","link":"https:\/\/alistapart.com\/it\/article\/prendere-in-considerazione-le-licenze-open-source\/","title":{"rendered":"Prendere in considerazione le licenze open source"},"content":{"rendered":"<div class=\"paragrafo\">\n<p>E cos\u00ec avete un progetto che volete creare con degli strumenti open source. Beh, mi tolgo il cappello davanti a voi developer. Ma sapete a che domande dovete rispondere prima di iniziare?<\/p>\n<p>In quale fase di sviluppo si trova il vostro progetto in questo momento? Avete finito la fase di pianificazione? State lavorando con un team? Il progetto sar\u00e0 suddiviso in diversi moduli? E cos\u00ec via.<\/p>\n<p>Il principio DRY (Don&#8217;t Repeat Yourself) \u00e8 diventato una regola non scritta per gli sviluppatori. Invece di partire da zero su ogni nuovo progetto, trovate modi per costruire basandovi sul lavoro precedente. Questo vi consente di risparmiare tempo e altre risorse. In altre parole, non re-inventate la ruota: sfruttate il grande lavoro che gli altri hanno perfezionato e vi hanno messo a disposizione &#8220;gratuitamente&#8221; come base da cui partire.<\/p>\n<p>Tale principio DRY pu\u00f2 essere applicato anche ai lavori open source. Quando si avvia un nuovo progetto, la maggior parte degli sviluppatori innanzitutto cerca attentamente i framework, le librerie e i pacchetti su cui possono costruire o che possono modificare per soddisfare le loro esigenze.<\/p>\n<p>Soprattutto, potete scegliere tra le migliaia e migliaia di progetti open source (OS, framework, IDE, librerie, sistemi di gestione di database e cos\u00ec via) disponibili.<\/p>\n<p><em>Ma aspettate un minuto!<\/em><\/p>\n<p>Immaginate che il vostro progetto diventi un enorme successo, solo per essere poi abbattuto da questioni di licenze richieste dai lavori su cui vi siete basati per realizzarlo. Capite veramente che cosa significa usare il lavoro open source nel vostro progetto?<\/p>\n<p>Man mano che aumenta l&#8217;adozione di open source, aumenta anche il rischio di non conformit\u00e0 con i termini di licenza che, a sua volta, porta ad un aumento del numero delle controversie che coinvolgono le opere open source.<\/p>\n<p>Uno degli esempi pi\u00f9 recenti <a href=\"https:\/\/qz.com\/981029\/a-federal-court-has-ruled-that-an-open-source-license-is-an-enforceable-contract\/\"> coinvolge Hancom e Artifex, lo sviluppatore di Ghostscript <\/a>. Il caso \u00e8 in corso, ma da quanto segue, la direzione sembra essere chiara:<\/p>\n<div id=\"figure1\" class=\"quote\">\n<blockquote><p>Per utilizzare Ghostscript gratuitamente, Hancom dovrebbe aderire alla sua licenza open-source, la GNU General Public License (GPL). Il GNU GPL richiede che quando si utilizza software con licenza GPL per realizzare un altro software, il software risultante deve anche essere open source con la stessa licenza se viene rilasciato al pubblico. Ci\u00f2 significa che Hancom dovrebbe rilasciare la sua intera suite di applicazioni come open source.<\/p><\/blockquote>\n<\/div>\n<p>Oppure, Hancom deve pagare un diritto di concessione ad Artifex.<\/p>\n<p>Adesso cominciate a farvi un&#8217;idea della situazione, vero?<\/p>\n<p><em>Nota: nulla di ci\u00f2 che dico in questo articolo \u00e8 consulenza legale. Se non vi sono chiare le spiegazioni o i termini che trovate in una licenza, \u00e8 una buona idea ottenere una consulenza legale qualificata. Queste sono solo alcune cose in cui mi sono imbattuto e voglio metterle in evidenza per i miei colleghi sviluppatori.<\/em><\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2 id=\"section1\">Valutare le opzioni open source<\/h2>\n<p>Prima di decidere per un progetto open source da utilizzare o da includere nel vostro progetto, tornate alla vostra grande idea (cio\u00e8, il progetto che state sviluppando) e rispondete alle seguenti domande.<\/p>\n<ol>\n<li><strong>Qual \u00e8 la visione del progetto?<\/strong> In particolare, state sviluppando un altro progetto open source o venderete il vostro progetto per trarne profitto?<\/li>\n<li><strong>Come metterete a disposizione degli altri il vostro progetto?<\/strong> Saranno in grado di leggere il codice sorgente o lo renderete off limit?<\/li>\n<li><strong>Quali diritti di ridistribuzione permetterete?<\/strong> Gli altri saranno autorizzati a re-impacchettare il vostro lavoro e a venderlo a scopo di lucro, oppure saranno in grado di ridistribuirlo gratuitamente?<\/li>\n<li><strong>Come dovreste gestire l&#8217;embedding?<\/strong> Gli altri potranno incorporare il vostro lavoro nel loro, per poi venderlo o distribuirlo per profitto o incorporare il vostro lavoro, ma impedire l&#8217;accesso al sorgente in modo che non sia disponibile ad altri? <\/li>\n<li><strong>Come gestirete l&#8217;attribuzione? <\/strong> Cosa farete per dare credito ai creatori originali dei tool inclusi?<\/li>\n<\/ol>\n<p>Una volta che avrete risposto alle domande precedenti, cosa succede? \u00c8 giunto il momento di rispondere ad un&#8217;altra domanda.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2 id=\"section2\">Cosa significa open source?<\/h2>\n<p>Cosa vi viene in mente quando vi imbattete in un lavoro classificato come open source? Libero da utilizzare come lo ritenete appropriato? Scoprite cosa significa realmente in questo caso dalla <a href=\"https:\/\/opensource.org\/definition\">Open Source Initiative<\/a>.<\/p>\n<p>Dopo averlo letto, volete ancora includere del lavoro open source nel vostro progetto? Far\u00e0 deragliare il vostro scopo e il vostro obiettivo?<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2 id=\"section3\">Perch\u00e9 i progetti open source hanno una licenza?<\/h2>\n<p>Una ragione per cui i progetti sono concessi in licenza con una licenza open source \u00e8 per <strong>convenienza<\/strong>.<\/p>\n<p>Le licenze open source dicono agli sviluppatori come utilizzare il vostro lavoro e quali limitazioni e restrizioni devono rispettare. Non vorreste un flusso costante di messaggi di posta elettronica da parte di tutti quelli che sono interessati a utilizzare il vostro lavoro: potrebbero essere migliaia di persone.<\/p>\n<p>Allo stesso tempo, le licenze open source rendono facile per altri <strong>contribuire<\/strong> a un progetto, al contrario di un sistema chiuso. Immaginate i talenti che potranno contribuire a un progetto open source rispetto a un progetto interno. Sarete in grado di attirare risorse di gran lunga maggiori per raggiungere l&#8217;obiettivo del vostro progetto: s\u00ec, sarete d&#8217;accordo sul fatto che si pu\u00f2 ottenere molto di pi\u00f9 in questo modo.<\/p>\n<p>La licenza serve come <strong>protezione<\/strong> per il creatore di un lavoro o di un insieme di lavori: nessun altro potr\u00e0 affermare che il vostro lavoro sia loro. Assicuratevi di ottenere i credit che meritate come autori di un progetto.<\/p>\n<h3 id=\"section4\">Leggete ogni licenza, ogni volta<a class=\"subhead-anchor\" href=\"#section4\">#section4<\/a><\/h3>\n<p>Non tutte le licenze open source sono uguali. Date un&#8217;occhiata alla tabella nella <strong>Fig. 1<\/strong> per vedere che tipi di differenze potreste incontrare.<\/p>\n<div id=\"figure2\" class=\"illustration full\"><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2017\/11\/fig1.png\" border=\"0\" alt=\"Tabella di confronto delle licenze open source\" width=\"100%\" \/><\/p>\n<p>Fig. 1: Confronto delle licenze open source<br \/>Image Source: <a href=\"https:\/\/choosealicense.com\/appendix\/\">https:\/\/choosealicense.com\/appendix\/<\/a><\/p>\n<\/div>\n<\/div>\n<div class=\"paragrafo\">\n<h2 id=\"section5\">Introduzione alle licenze pi\u00f9 popolari<\/h2>\n<p>Di seguito sono riportate alcune delle licenze open source pi\u00f9 diffuse, con i dettagli su quali poteri o limitazioni vengono imposti per quanto riguarda l&#8217;utilizzo e la ridistribuzione.<\/p>\n<h3 id=\"section6\">MIT License<\/h3>\n<p>Un progetto con <a href=\"https:\/\/en.wikipedia.org\/wiki\/MIT_License\">questa licenza open source consente<\/a> di utilizzare, copiare, modificare, unire, pubblicare, distribuire, sub-licenziare e\/o vendere copie del Software e permettere di fare lo stesso alle persone a cui \u00e8 fornito il software&#8221;. Ci\u00f2 significa che potete utilizzare questo lavoro per il vostro progetto come lo ritenete appropriato (anche vendere opere derivate) con le uniche condizioni che voi 1) lasciate intatta la licenza MIT e 2) includiate un avviso di copyright.<\/p>\n<p>Ci\u00f2 significa che \u00e8 necessario includere una nota simile a questa nel file di licenza del vostro lavoro:<\/p>\n<div id=\"figure3\" class=\"quote\">\n<blockquote><p>&#8220;[Nome del vostro progetto] include codice da [creatore originale del lavoro incluso] ed \u00e8 concesso in licenza sotto la licenza MIT&#8221; seguito dal testo completo della licenza MIT.<\/p><\/blockquote>\n<\/div>\n<p>Un&#8217;altra cosa da notare prima di utilizzare un lavoro con questa licenza \u00e8 che &#8220;<a href=\"https:\/\/en.wikipedia.org\/wiki\/License_compatibility#GPL_compatibility\">Il software MIT concesso in licenza pu\u00f2 essere integrato nel software GPL, ma non il viceversa<\/a>&#8220;. Pensate a una situazione in cui dovrete includere dei lavori con le licenze MIT e GPL nel vostro progetto. Alla fine, questa combinazione porter\u00e0 la licenza GPL, escludendo la licenza MIT. (Potete leggere della licenza GPL qui sotto.)<\/p>\n<h3 id=\"section7\">Apache License<\/h3>\n<p>Questa licenza \u00e8 in qualche modo simile alla licenza MIT. Potete utilizzare i lavori con questa licenza nel vostro progetto a condizione che prendiate nota del fatto che &#8220;richiede la conservazione della<a href=\"https:\/\/en.wikipedia.org\/wiki\/Copyright\">copyright notice<\/a> e del <a href=\"https:\/\/en.wikipedia.org\/wiki\/Disclaimer\">disclaimer<\/a>&#8220;.<\/p>\n<p>I termini della Apache Licence sono <a href=\"https:\/\/softwareengineering.stackexchange.com\/questions\/220068\/file-with-apache-2-0-and-modifica\">molto rigorosi circa le modifiche<\/a>. \u00c8 necessario dichiarare esplicitamente che l&#8217;opera originale \u00e8 stata modificata e includere quanto segue nel vostro avviso di licenza:<\/p>\n<div id=\"figure4\" class=\"quote\">\n<blockquote><p>La Free Software Foundation considera che tutte le versioni della licenza Apache siano incompatibili con le versioni precedenti GPL 1 e 2 e, inoltre, considera le versioni di licenza Apache prima della v2.0 incompatibili con GPLv3. A causa delle richieste di licenza brevettuale della versione 2.0, la Free Software Foundation la raccomanda rispetto ad altre licenze non copyleft, specificamente raccomandandole sia per i piccoli programmi che per gli sviluppatori che desiderino utilizzare una licenza permissiva per altri motivi.<\/p><\/blockquote>\n<\/div>\n<h3 id=\"section8\">GNU General Public License (GPL) 3<\/h3>\n<p>Questa licenza non \u00e8 particolarmente permissiva se confrontata con, ad esempio, la licenza MIT. Tuttavia, promuove notevolmente lo sforzo comunitario ed \u00e8 una delle licenze open source pi\u00f9 popolari l\u00e0 fuori.<\/p>\n<p>Quando utilizzate un lavoro con GPL che rilascerete al pubblico (o ridistribuirete), questa licenza <a href=\"https:\/\/www.gnu.org\/licenses\/gpl-faq.html#GPLRequireSourcePostedPublic\">richiede che rendiate disponibili le modifiche<\/a> (inclusa la documentazione per l&#8217;installazione e la creazione) sotto la licenza GPL.<\/p>\n<h3 id=\"section9\">BSD 3-Clause License<\/h3>\n<p>Anche questa \u00e8 molto simile alla licenza MIT: vi permette l&#8217;utilizzo per progetti commerciali, la ridistribuzione e la modifica, ma devono essere incluse la nota sul copyright e la licenza BSD stessa.<\/p>\n<p>La scelta tra MIT e BSD dipende ora da ci\u00f2 che \u00e8 adatto al vostro progetto. Le licenze MIT e BSD differiscono in termini di compatibilit\u00e0 con altre licenze open source, mentre il lavoro licenziato MIT vi permetter\u00e0 di includere altri lavori con termini di licenza diversi, il lavoro con licenza BSD non lo permetter\u00e0. Di pi\u00f9 su questa compatibilit\u00e0 di licenza sotto.<\/p>\n<p>Ci sono <a href=\"https:\/\/opensource.org\/licenses\/alphabetical\">diverse altre licenze open source<\/a> che non sono incluse qui. Richiedono un&#8217;attenta lettura e comprensione prima di lanciarsi nell&#8217;utilizzo di opere con questo tipo di licenze.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2 id=\"section10\">Ignorare i termini di una licenza open source<\/h2>\n<p>Valutare quali licenze open source sono adatte si riduce ad evitare future cause legali. I problemi previsti sono problemi mezzo-risolti. Ma cosa succede se ignorate i termini di una licenza?<\/p>\n<p>Sarete perseguiti quando lo si scoprir\u00e0? La Free Software Foundation \u00e8 un&#8217;organizzazione che offre come volontarie le proprie risorse <a href=\"http:\/\/www.fsf.org\/licensing\/compliance\">per garantire la conformit\u00e0 delle licenze open source<\/a>: una specie di polizia delle licenze open source. Di seguito \u00e8 riportata una frase tratto dalla loro pagina di conformit\u00e0:<\/p>\n<div id=\"figure5\" class=\"quote\">\n<blockquote><p>Una volta che abbiamo accertato che si \u00e8 verificata una violazione, spieghiamo al violatore cosa dovr\u00e0 fare per essere conforme. Egli far\u00e0 alcuni cambiamenti appropriati &#8211; al software, al prodotto, al sito web o a qualunque cosa ne sia toccata &#8211; e ce lo comunicher\u00e0. Verificheremo questi cambiamenti, lo informeremo di eventuali nuovi problemi o di altri in sospeso e gli chiederemo di apportare ulteriori modifiche. Questo avanti e indietro continuer\u00e0 finch\u00e9 sar\u00e0 necessario.<\/p><\/blockquote>\n<\/div>\n<h3 id=\"section11\">Compatibilit\u00e0 delle licenze<\/h3>\n<p>E per quel che riguarda l&#8217;utilizzo di <strong>lavori con licenze open source diverse<!-- strong-->? Ci saranno delle implicazioni? In altre parole, se state pensando di &#8220;mescolare&#8221; il lavoro di vari termini di licenza in un progetto, \u00e8 qui che dovete <a href=\"http:\/\/www.ifross.org\/en\/what-license-compatibilit\u00e0\">iniziare a pensare alla compatibilit\u00e0<\/a>. <\/strong><\/p>\n<p><strong><\/p>\n<div id=\"figure6\" class=\"quote\">\n<blockquote>\n<p>Se delle componenti di codice che sono state concesse sotto condizioni di licenza diverse vengono compilate per formare un nuovo lavoro, si pone una domanda: l&#8217;uso comune del codice \u00e8 consentito in base alla licenza? Se per esempio il codice A sotto licenza X \u00e8 collegato al codice B sotto licenza Y per formare un nuovo programma, le licenze X e Y devono permetterlo. Se questo \u00e8 il caso, esiste la compatibilit\u00e0 della licenza.<\/p>\n<\/blockquote>\n<p>ifrOSS (The Institute for Legal Questions on Free and Open Source Software)<\/p>\n<\/div>\n<p>Magari avete trovato un lavoro open source che si adatta perfettamente al vostro progetto&#8230; Ma. La. Licenza. Non. \u00c8. Compatibile! Cosa puoi fare per questo?<\/p>\n<p>Innanzitutto, <a href=\"http:\/\/janelia-flyem.github.io\/licenses.html\">considerate la licenza del lavoro open source<\/a> che intendete utilizzare nel vostro progetto.<\/p>\n<p>Ovviamente, i problemi di licenza saranno pi\u00f9 facili da gestire quando userete lavori open source con la stessa licenza e un modo per evitare l&#8217;incompatibilit\u00e0 della licenza consiste nel leggere oltre l&#8217;elenco delle feature, dopo aver letto la sezione delle funzionalit\u00e0, assicuratevi di leggere rapidamente la sezione requisiti.<\/p>\n<p>Quando indagate gli strumenti open source da utilizzare nel vostro progetto, fate della &#8220;compatibilit\u00e0&#8221; la vostra compagna. Tenetela vicina.<\/p>\n<p>In termini di compatibilit\u00e0, la licenza MIT \u00e8 abbastanza generosa: a partire dal momento in cui questo articolo \u00e8 stato scritto, questa licenza impedisce <strong>solo<\/strong> di citare l&#8217;autore del lavoro. Quindi, in generale, un lavoro sotto licenza MIT \u00e8 ottimo per la maggior parte degli obiettivi. (Ricordatevi che questo non \u00e8 un consiglio legale).<\/p>\n<p><\/strong><\/div>\n<p><strong><\/p>\n<div class=\"paragrafo\">\n<h2 id=\"section12\">Violazione della licenza<\/h2>\n<p>Se un caso di licenza influisce su di voi o sul vostro progetto, notate che alcuni casi legali relativi all&#8217;infrazione della licenza vengono risolti in tribunale. Potreste essere in grado di negoziare e raggiungere un accordo personale con l&#8217;autore &#8211; un accordo che consentir\u00e0 di utilizzare il lavoro senza violazione. In poche parole, contattate l&#8217;autore del lavoro open source per discutere della situazione e dei possibili compromessi o delle alternative che potrebbe prendere in considerazione. Il negoziato fatto prima di intraprendere il vostro progetto potrebbe contribuire a chiarire la licenza, assicurare che voi e l&#8217;autore siate d&#8217;accordo ed evitare interamente una questione giuridica.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2 id=\"section13\">Per concludere<\/h2>\n<p>L&#8217;esame delle licenze open source dovrebbe essere parte della fase di pianificazione precoce del progetto, non venire dopo lo sviluppo.<\/p>\n<p>Per ridurre significativamente il rischio di violazioni, assicuratevi di prendere sul serio le violazioni delle licenze open source e che siano previste politiche open source appropriate per guidare il vostro team di sviluppo. Non dimenticate che il progetto avr\u00e0 anche bisogno di una licenza dopo aver completato lo sviluppo (e la produzione). Che licenza userete? Le licenze incluse nel lavoro open source utilizzato nel progetto determineranno la vostra licenza.<\/p>\n<p>Soprattutto, in qualit\u00e0 di sviluppatore individuale o entit\u00e0 aziendale che sviluppa, distribuisce o utilizza open source, dovreste trovare il tempo per leggere e comprendere i termini e le condizioni delle licenze open source che utilizzate.<\/p>\n<\/div>\n<p><\/strong><\/div>\n","protected":false},"excerpt":{"rendered":"<p>I progetti open source promettono di velocizzare la consegna del prodotto praticamente senza costi. Ma diverse licenze per i progetti possono influenzare il lavoro in modi significativi. Phillip Ikuvbogie vuole aiutarvi a capire le differenze tra le licenze open source pi\u00f9 popolari e come sia possibile incorporare i progetti open source in modo efficace.<\/p>\n","protected":false},"author":818,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","categories":[263,198],"tags":[],"coauthors":[516],"class_list":["post-782","article","type-article","status-publish","hentry","category-business","category-numero-220-29-settembre-2017"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/article\/782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/users\/818"}],"replies":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/comments?post=782"}],"wp:attachment":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media?parent=782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/categories?post=782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/tags?post=782"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/coauthors?post=782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}