我应该从我的开源项目的codeplex中select什么许可证?

如果我想要一个开源项目,我应该select哪种许可证? 所有许可证有什么优点和缺点?

如果你想确保修改你的程序或者build立在程序之上(通过链接)的人应该像你分享你的程序一样分享他们的修改,你应该selectGPL

如果你想确保任何修改你的库的人都共享他们的修改,但是允许人们从一个专有的应用程序中dynamic地链接到你的应用程序,selectLGPL

如果您希望允许任何人按照自己的意愿使用您的代码,除了提供您的信用之外,没有任何重大限制,您应该使用MIT (也称为X11 )许可证。 它简短,简单,容易理解,宽容。

如果您需要与已有许可证的现有项目进行集成,则应该使用相同的许可证。 在同一个许可证下的所有项目中,任何人都可以轻松地使用它。 但是如果你正在创build一个新的项目,我会推荐上面列出的三个许可证之一,因为它们被广泛使用,众所周知,所以人们知道你提到它们时的含义,并且会更容易地集成代码与现有的项目。 还有许多其他的许可证可供select,但总的来说,如果不改进上述许可证之一,它们就会使事情变得更加复杂和困难(因为许可证不兼容等原因而不太为人所知)。

这很大程度上取决于你想要什么。 我会很简短地总结一下,但我build议您阅读更多的许可证。

  • GPL:如果你想分享代码,但是如果有人把你的代码放入商业产品,晚上就不能入睡。 骗子:几乎不可能理解的合法东西。
  • BSD / ISC / MIT:只保留版权归属的最小许可证。 也许是使用商业产品。 可以被普通人理解。 缺点:如果你关心苹果是否取得你的代码,那么它不适合你(Safari中的webkit,OSX中的freebsd userland)。
  • Apache / Mozilla:有点像GPL,但也保护品牌名称。 缺点:你不能调整,仍然用你得到的名字来调用它。
  • 上面的很多变化。 缺点:没有人知道许可证的含义。

许可证的select是个人的,取决于你希望如何使用你的项目。

我build议你在开放源代码计划(Open Source Inititive)上阅读。

特别是,他们有一个页面来描述按类别分组的许可证 。


以下是一些比较常见的目标:

为了鼓励您的项目的商业用途,我build议您查看BSD和MIT许可证。

为了鼓励商业和非商业性的工作,但是强迫所有的用户共享你的代码的任何修改,请看LGPL许可证。

如果您想强制每个使用您的代码的人分享任何修改,请查看GPL许可证。

还有很多其他的列表,每一个都有自己的重大利益和缺点……这只是四个非常普遍的select。