如果我想要一个开源项目,我应该在 codeplex 上选择什么许可证?所有许可证的优缺点是什么?
3 回答
如果您想确保修改您的程序或在您的程序之上构建(通过链接到它)的任何人都应该以与您共享您的相同的方式共享他们的更改,您应该选择GPL。
如果您想确保修改您的库的任何人共享他们的更改,但允许人们从专有应用程序动态链接到它,他们不会根据您与他们共享的条款与您共享源代码,您应该选择LGPL。
如果您想允许任何人按照他们的意愿使用您的代码,除了为您提供信用之外没有其他重大限制,您应该使用MIT(也称为X11)许可证。它简短、简单、易于理解和宽容。
如果您需要与已有许可证的现有项目集成,您可能应该只使用相同的许可证。在同一个许可证下将所有内容都放在一个项目中,对于任何想要使用它的人来说,生活都会变得更加轻松。但是如果你正在创建一个新项目,我会推荐上面列出的三个许可证之一,因为它们被广泛使用,众所周知,所以当你提到它们时人们会确切地知道你的意思,并且会使你的代码更容易集成与现有项目。还有许多其他许可证可供选择,但总的来说,它们只会使事情变得更加复杂和困难(因为它们不太为人所知,因为许可证不兼容等),而没有改进上面列出的许可证之一。
这很大程度上取决于你想要什么。我将非常简要地总结一下,但我建议您更深入地阅读各种许可证。
- GPL:如果您想共享代码,那很好,但如果有人将您的代码放入商业产品中,您将无法入睡。缺点:大量几乎无法理解的法律内容。
- BSD/ISC/MIT:非常小的许可证,只保留版权归属。也许被使用的是商业产品。一般人都能理解。缺点:如果您关心 Apple 是否采用您的代码,那么它不适合您(Safari 中的 webkit,OSX 中的 freebsd 用户区)。
- Apache/Mozilla:有点像 GPL,但也保护品牌名称。缺点:你不能调整并仍然用你得到的名字来称呼它。
- 上面有很多变化。缺点:没有人知道许可证的含义。
许可证的选择是个人的,取决于您希望如何使用您的项目。
我建议在 Open Source Inititive 阅读此内容。
特别是,他们有一个页面描述按类别分组的许可证。
以下是一些更常见的目标:
为了鼓励您的项目用于商业用途,我建议您查看BSD和MIT许可证。
为了鼓励商业和非商业工作,但强制所有用户共享对您的代码的任何修改,请查看LGPL 许可证。
如果您想强制使用您的代码的每个人共享任何修改,请查看GPL 许可证。
列出了许多其他的,每一个都有自己的显着优点和缺点......这些只是四个非常常见的选择。