Releasing an ASP.NET MVC 3 OpenId StarterKit under Open Source License

I've build a ASP.NET MVC 3 (RC at the moment) site that uses OpenID login system. I was still learning about OpenID while implementing this so I commented the code heavily. The result is a site that let's users login/register with OpenID, add other OpenIDs to their account and also remove them. This little project can be then used as a starting point for any new project that would use OpenID login system. It can also be used as a resource for people to learn OpenID with.

I decided to release this project as open source. This will be my first open source project and I need to decided what license to use. I want people to be able to use this for any purpose they wish for. They can learn from it, use it for commercial or non-commercial projects and make their own forks of the code. It would also be nice for others to be able to contribute back to the project with stuff like bug fixes on sites like GitHub. But I'd like to be the copyright owner of the code that is under my control. For example the code that is in my GitHub repository (I'll call this the main code base). I've heard that for this I need to get every contributor, that adds code to this code base, to give me the copyright for their contribution. How exactly does this work?

I also use other licensed (mostly open source) resources in my projects. Here's their list and their licenses:

  • DotNetOpenAuth (Ms-PL)
  • T4MVC (part of MvcContrib which is licesned using Apache License 2.0)
  • ASP.NET MVC (Ms-PL)
  • ADO.NET Entity Framework CTP4 (I couldn't find a license)
  • I of course want to use the main code base for any type of projects I want. Commercial, non-commercial, open source, ...

    So I have some very important questions here:

  • Which license should I use? I think GPL or LGPL is not suitable here. I was looking at Apache 2, New BSD, MIT and Ms-PL. Ms-PL seems to be a good fit as, but I'm not sure.
  • What restrictions and/or obligations do I have towards the resources I use in this project? I think I read somewhere that I have to add -LICENSE.txt for Ms-PL resources. Is that true? How does this work for Apache 2 and other licenses? What do I have to do if I modify any of these resources' code and then use that in my project?
  • I'd also really like a "as-is" clause in the license, so people can't sue me if something goes wrong while they're using my code.
  • Do I need to add anything to my files to make clear what the license is? If so, how do I format that?
  • Also one last thing. If I decide to make a Visual Studio template out of this samples how do I license that?


    I've heard one report (from someone who couldn't back it up) that Ms-PL restricts use by other open source software of other licenses. I disagree with them, but neither of us were lawyers.

    Most open source licenses including Ms-PL include as-is clauses.

    I totally support not going with GPL or LGPL because that severely restricts your "freedom" to do with the software whatever you want. It's highly sided toward the "religion" of perpetual "free software" and not so much freedom. Not trying to flamebait, but it's a genuine concern.

    Personally I chose Ms-PL because I share the same goals your question suggests you have and I felt Ms-PL fit the bill. I'm not in a position to promise correct legal interpretation, but it's my unprofessional opinion.

    I do believe you are required to include the licenses/copyright notices in your own software redists based on the Ms-PL anyway, but you don't have to add new references to these licenses I believe. So I'd consider it enough if your LICENSE file included your own license, and the licenses of the other software your redist includes, mention to which files each license applies. And then don't recompile any of your dependencies to remove the copyright notices that may have been included in the compiled software.

    链接地址: http://www.djcxy.com/p/79496.html

    上一篇: Postgis / Geodjango:无法确定PostGIS版本的数据库

    下一篇: 在开源许可下发布ASP.NET MVC 3 OpenId StarterKit