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:
- 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.
- 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?
- 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.
- 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?