我们如何选择开源许可证?
我是软件工程师,而不是律师,而且我的大学不提供任何有关许可软件的课程。实际上,他们缺乏与法律相关的课程(但数量在缓慢增长)。我在哪里可以了解开放源代码许可证以及如何选择它们?
解决方案
回答
这里有很多描述:
http://www.gnu.org/licenses/license-list.html#Software许可
使用哪个选项可能是政治决定,但最终应由我们对软件的计划/需求决定。如果要确保它始终是免费的,则选择GPL或者另一个" Copyleft"许可证。如果我们不介意将其用于商业用途,请选择与其兼容的另一种用途。
回答
如果我们要查找有关免费和开源许可证的信息,则可以使用有用的比较表:http://en.wikipedia.org/wiki/Comparison_of_free_software_licences
回答
我几乎总是以麻省理工学院或者BSD(他们是等效的)结束,因为
- 是那里最宽松的许可证。它只是说我们对任何麻烦不承担任何责任,并有选择地强迫人们在衍生产品中包含原始作品的版权声明。
- 它允许封闭源衍生工具,这是我的一件好事:公司有时无法根据GPL进行工作(它们自己可能使用具有受限许可的第三方的产品或者组件)。
那就是,当我们在野外遇到GNU / GPL时,它们通常是极端主义者。
回答
当然,维基百科基本上具有我们需要知道的所有信息。但是困难的部分是要知道从哪里开始。我建议从阅读有关Apache许可证和GNU GPL的文章开始,这是同一故事的两个流行方面,它们各自为与代码相关的人员提供不同的自由。
简而言之:Apache许可证使任何人都可以对代码进行任何操作,包括在封闭源代码产品中使用和使用它。它使使用该代码的任何人都可以自由地使用其代码来完成自己想做的事情。
另一方面,GNU GPL允许代码仅用于也在GPL下分发的项目中。在这种情况下,我们可能会编写一些代码并阻止专有公司使用作品。在这里,我们为代码本身赋予了自由,它将始终用于"免费"目的。
回答
我们也有类似的困境。在我们公司,我们决定在框架上投入大量时间,最终希望将其发布给开源社区。该业务是使用开放源代码工具(apache,php等)建立的,该回馈了。我们决定使用LGPL / MPL双重许可。这样,我们可以整合社区中的修补程序/改进,同时仍然保护在其之上运行的应用程序(尤其是我们的应用程序)也免于被迫开源。
回答
如果我们想使用GPL库,必须自己使用GPL,或者如果我们打算将软件作为更大项目的一部分,那么更多实用主义的原因也会影响我们对许可证的选择。
回答
我们始终可以只使用最好的WTFPL。我在我的大多数学校项目中都使用了此功能,因为它们并不是那么好用。
回答
这可能会引起无休止的讨论,但是在决定使用哪种许可证时,我会坚持一个原则:不要创建一个新的!
无论法人的论点是多么有说服力,因为当前的许可证都无法完全满足我们项目的独特需求,我们应该编写自己的许可证,甚至只是"稍微修改"一个现有的许可证,都将他当作程序员来看待我们,认为他只是之所以要使用GOTO语句,是因为该语言的其他功能均无效。
其他建议:
- 选择一种主要用途(请参阅http://freshmeat.net/stats/#license)
- 请参阅David A. Wheeler关于为何选择与GPL兼容的许可证的讨论-http://www.dwheeler.com/essays/gpl-compatible.html。
回答
对于没有提及开放源代码计划作为有关存在哪些开放源代码许可证的信息源,我感到有些惊讶。它可能不进行比较,因此其他站点也值得检查。
回答
我最近开始研究适用于相当大量工作的许可类型。所有开放源代码许可证的选择数量和内容,限制(或者不限制)和限制令人困惑。我在发布的答案中找到了几个很好的链接,但是没有发现任何指向开放源代码倡议的按字母顺序排列的许可证列表的内容,因此我将其包含在此处。