Quale licenza Open Source scegliere per un ASP.NET MVC 3 OpenId StarterKit?

4

Ho creato un sito ASP.NET MVC 3 (RC al momento) che utilizza il sistema di login OpenID. Stavo ancora imparando su OpenID mentre implementavo questo, quindi ho commentato il codice pesantemente. Il risultato è un sito che consente agli utenti di accedere / registrarsi con OpenID, aggiungere altri OpenID al proprio account e rimuoverli. Questo piccolo progetto può quindi essere utilizzato come punto di partenza per qualsiasi nuovo progetto che utilizzi il sistema di login OpenID. Può anche essere usato come risorsa per le persone per imparare OpenID con.

Ho deciso di pubblicare questo progetto come open source. Questo sarà il mio primo progetto open source e ho bisogno di decidere quale licenza usare. Voglio che le persone siano in grado di usarlo per qualsiasi scopo desiderino. Possono imparare da esso, utilizzarlo per progetti commerciali o non commerciali e creare le proprie forcelle del codice. Sarebbe anche bello per gli altri essere in grado di contribuire al progetto con cose come correzioni di bug su siti come GitHub. Ma mi piacerebbe essere il proprietario del copyright del codice che è sotto il mio controllo. Ad esempio il codice che si trova nel mio repository GitHub (chiamerò questo il codice principale). Ho sentito che per questo ho bisogno di ottenere ogni contributore, che aggiunge codice a questa base di codice, per darmi il copyright per il loro contributo. Come funziona esattamente?

Uso anche altre risorse concesse in licenza (per lo più open source) nei miei progetti. Ecco il loro elenco e le loro licenze:

  • DotNetOpenAuth (Ms-PL)
  • T4MVC (parte di MvcContrib che è licesned utilizzando Apache License 2.0)
  • ASP.NET MVC (Ms-PL)
  • ADO.NET Entity Framework CTP4 (Non sono riuscito a trovare una licenza)

Ovviamente voglio usare il codice base principale per ogni tipo di progetto che voglio. Commerciale, non commerciale, open source, ...

Quindi ho alcune domande molto importanti qui:

  1. Quale licenza dovrei usare? Penso che GPL o LGPL non siano adatti qui. Stavo guardando Apache 2, New BSD, MIT e Ms-PL. Ms-PL sembra essere una buona idea, ma non ne sono sicuro.
  2. Quali restrizioni e / o obblighi ho nei confronti delle risorse che utilizzo in questo progetto? Penso di aver letto da qualche parte che devo aggiungere -LICENSE.txt per le risorse Ms-PL. È vero? Come funziona questo per Apache 2 e altre licenze? Cosa devo fare se modifico il codice di queste risorse e poi lo uso nel mio progetto?
  3. Mi piacerebbe anche una clausola "così com'è" nella licenza, quindi le persone non possono citarmi se qualcosa va storto mentre stanno usando il mio codice.
  4. Devo aggiungere qualcosa ai miei file per chiarire qual è la licenza? In tal caso, come posso formattarlo?

Anche un'ultima cosa. Se decido di creare un modello di Visual Studio da questo esempio, come posso concederlo in licenza?

    
posta gligoran 16.11.2010 - 19:56
fonte

2 risposte

4

Poiché utilizzi componenti MS-PL e Apache 2.0, sei limitato dalla licenza MS-PL e dalla licenza Apache 2.0. Ciò significa che non è possibile utilizzare la GPL in ogni caso, dal momento che è incompatibile con MS-PL, e la versione 2 della GPL è anche incompatibile con Apache 2.0. Detto questo, suggerirei di rilasciare le tue parti con MS-PL, Apache 2.0 o BSD, quindi non stai aggiungendo requisiti.

Puoi leggere le licenze per vedere cosa devi fare. Non sono lunghi Con MS-PL, puoi fare praticamente tutto purché tutto sia rilasciato sotto MS-PL e tu includi l'intera licenza (che non è lunga). Con Apache 2.0, è praticamente la stessa cosa, tranne che è necessario includere qualsiasi file AVVISO. Devi includere tutte le attribuzioni, ecc., E questo è abbastanza comune tra tutte le licenze del sistema operativo.

Non puoi davvero aggiungere alle licenze. Sei libero di mettere qualsiasi diniego che desideri. Puoi inserirli in un file NOTICE, che in Apache 2.0 richiede che vengano conservati.

Dovresti elencare quali file sono sotto quali licenze, e devi includere copie complete di MS-PL e Apache 2.0 nel pacchetto.

Fai attenzione a ADO.NET Entity Framework CTP4, come dici tu non riesci a trovare una licenza. Se non riesci a trovare una licenza, si applica la normale legge sul copyright e non puoi legalmente utilizzarla. Puoi scrivere a chiunque possieda quel codice e vedere quale licenza usano.

Per quanto riguarda la proprietà del copyright, non puoi mai ritirare le licenze open source per le versioni rilasciate al di sotto di esse, ma se possiedi tutti i diritti d'autore applicabili puoi concedere la licenza a tuo piacimento. Alcune società, come MySQL AB, hanno rilasciato ciò che avevano sotto GPL e vendevano altre licenze per denaro, in modo che (diciamo) un'altra società potesse usare MySQL come parte del loro prodotto commercialmente venduto senza dover rilasciare sotto licenza GPL.

Dato che stai utilizzando componenti di proprietà di altre persone, non puoi davvero farlo con l'intero progetto, ma puoi farlo con le tue porzioni.

Per farlo, dovresti ottenere tutti coloro che contribuiscono a compilare un modulo di assegnazione del copyright, insieme ad alcune prove che possiedono il copyright (e, ad esempio, che non conta come lavoro a noleggio per un datore di lavoro). Questo tende a diminuire i contributi degli utenti, quindi potresti voler saltare completamente. Potresti voler vedere cosa fa il progetto Gnu, dal momento che vogliono il copyright completo ed emularlo.

    
risposta data 19.11.2010 - 17:20
fonte
2

Personalmente, se è possibile dare gli altri componenti che hai citato, sceglierei AGPL (aka < a href="http://en.wikipedia.org/wiki/Affero_General_Public_License"> Affero GPL ) per un'applicazione web di qualsiasi tipo.

    
risposta data 19.11.2010 - 16:47
fonte

Leggi altre domande sui tag