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