在开源项目中包含代码

时间:2009-07-27 06:07:37

标签: open-source

我在Apache License 2.0下有一个开源项目。通常,我只会在每个代码文件的顶部添加许可条款和条件注释。

我从某人的博客或网站上复制的代码怎么样?是否提供足够的链接指向该网站?即使代码是由其他人编写的,我仍然保留许可条款和条件吗?

这样做的正确方法是什么?

4 个答案:

答案 0 :(得分:8)

由于您不拥有版权,因此您无法重新授权不属于您的代码。如果代码已经获得许可,则必须使用该许可,并将该许可作为程序包的一部分提供。

如果代码不是许可证,那么我个人会寻找根据Apache许可证获得许可的替代代码,显然在代码中保留了版权声明,并在代码中注明了源代码和版权。您的项目的文档。

如果你不能这样做,为什么不通过电子邮件向代码作者询问他们是否要为其申请许可?如果他们选择与您不同的许可证,那么您应该明确说明代码本身和您的文档中的代码片段都是不同的许可证。

(当然我不是律师,也不是在电视上播放,而且许可是一个法律协议,你应该咨询一个而不是从互联网上的随机陌生人那里获得建议) < / p>

答案 1 :(得分:5)

请勿从博客中复制代码,除非它是明确的公共域或兼容许可。

如果它在兼容许可下,您只需在相关文件顶部的许可标题中提及它。 (并且还在您的about对话框中包含一个子句)某些许可证可能不需要这最后一点,但仍然是一个表达谢意的好方法。

答案 2 :(得分:5)

  

我复制的代码怎么样?   某人的博客或网站?正在推杆   一个足够的链接指向该网站?

IANAL,但是如果没有得到他们的许可,你就无法改变人们的执照。如果您从博客中复制的代码与Apache的许可证存在冲突,则无法将其包含在项目中。有一个合理使用的论点,但它非常滑(例如,我只是复制了一些非常小的东西,它确实不需要归属)。

所以,我会建议你在你复制样本的博客上阅读所有细则,如果你有任何疑惑拍摄电子邮件致作者解释你在做什么。一般来说,人们可以在源代码中找到他们博客帖子的超链接,但是每个人都可以根据他们选择的许可证来许可他们的IP。

答案 3 :(得分:1)

我认为这是一个严重的问题,因为没有明确许可证的任何东西都可能不在那里。例如,我找不到http://snippets.dzone.com/所需的许可证。我经常在搜索中遇到这个网站。他们声称自己是“公共源代码库”,但“公共”是什么意思?

同样在gist.github.com上,尽管人们似乎在将明确的许可证放入其文件方面要好一些。

作为这些网站的用户,您希望在您面前使用一段代码,无法解决此问题。在理想的世界中,提交某些内容的开发人员将包含明确的许可,但这似乎不太可能。我们可以合理地希望这些类型的站点强制用户在粘贴任何内容时选择许可证。

在大多数情况下,这些摘要的重要性不足以具有任何商业价值或保证任何限制性许可,但如果没有提交的人采取肯定行动,它仍属于他们,除了那些之外保留所有权利已被明确授予他人的。