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

时间:2010-11-16 03:59:28

标签: asp.net-mvc open-source licensing dotnetopenauth

我已经构建了一个使用OpenID登录系统的ASP.NET MVC 3(目前为RC)站点。我在实现这个时仍然在学习OpenID,所以我对代码进行了大量评论。结果是一个允许用户使用OpenID登录/注册的站点,将其他OpenID添加到他们的帐户并删除它们。然后,这个小项目可以用作任何使用OpenID登录系统的新项目的起点。它也可以用作人们学习OpenID的资源。

我决定将此项目作为开源发布。这将是我的第一个开源项目,我需要决定使用什么许可证。我希望人们能够将它用于他们想要的任何目的。他们可以从中学习,将其用于商业或非商业项目,并自己制作代码。其他人也可以通过像GitHub这样的网站上的错误修复等方式回馈项目。但我想成为我控制下的代码的版权所有者。例如,我的GitHub存储库中的代码(我将其称为主代码库)。我听说为此我需要得到每个贡献者,为这个代码库添加代码,给我他们贡献的版权。这究竟是如何工作的?

我还在项目中使用其他许可(主要是开源)资源。这是他们的清单和许可证:

  • DotNetOpenAuth(Ms-PL)
  • T4MVC(MvcContrib的一部分,使用Apache License 2.0进行切换)
  • ASP.NET MVC(Ms-PL)
  • ADO.NET实体框架CTP4(我找不到许可证)

我当然希望将主代码库用于我想要的任何类型的项目。商业,非商业,开源,......

所以我在这里有一些非常重要的问题:

  1. 我应该使用哪种许可证?我认为GPL或LGPL不适合这里。我在看Apache 2,新BSD,麻省理工学院和Ms-PL。 Ms-PL似乎很合适,但我不确定。
  2. 我对此项目中使用的资源有哪些限制和/或义务?我想我在某处读到了我必须为Ms-PL资源添加-LICENSE.txt。真的吗?这对Apache 2和其他许可证有何影响?如果我修改这些资源中的任何代码然后在我的项目中使用它,我该怎么办?
  3. 我也非常喜欢许可证中的“原样”条款,因此如果在使用我的代码时出现问题,人们就不能起诉我。
  4. 我是否需要在文件中添加任何内容以明确许可证是什么?如果是这样,我该如何格式化?
  5. 也是最后一件事。如果我决定使用此样本制作Visual Studio模板,我该如何许可?

1 个答案:

答案 0 :(得分:2)

我听过一个报告(来自无法支持的人),Ms-PL限制其他许可证的其他开源软件使用。我不同意他们,但我们都不是律师。

包括Ms-PL在内的大多数开源许可都包含as-is子句。

我完全支持使用GPL或LGPL,因为这严重限制了您对软件的“自由”,无论您想要什么。它高度支持永久“自由软件”的“宗教”而不是自由。不是想尝试火焰,但这是一个真正的问题。

就我个人而言,我选择了Ms-PL因为我的问题与你提出的目标相同,我觉得Ms-PL符合要求。我无法承诺正确的法律解释,但这是我不专业的意见。

我相信您需要根据Ms-PL在您自己的软件redists中包含许可/版权声明,但您不必添加对这些许可的新引用我相信。因此,如果您的LICENSE文件包含您自己的许可证,以及您的redist包含的其他软件的许可证,请考虑每个许可证适用的文件。然后不要重新编译任何依赖项以删除可能已包含在已编译软件中的版权声明。