Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Open source 在开源项目中包含代码_Open Source - Fatal编程技术网

Open source 在开源项目中包含代码

Open source 在开源项目中包含代码,open-source,Open Source,我有一个Apache许可证2.0下的开源项目。通常,我只会在每个代码文件的顶部添加许可条款和条件注释 我从某人的博客或网站上复制的代码呢?放一个指向网站的链接就足够了吗?即使代码是由其他人编写的,我仍然保留许可条款和条件 这样做的正确方法是什么?您不能重新授权非您的代码,因为您不拥有版权。如果代码已在许可证下,则必须使用该许可证,并将该许可证作为软件包的一部分提供 如果代码不在许可证下,那么我个人会寻找另一段在Apache许可证下许可的代码,显然保留代码中的版权声明,并在项目文档中注明源代码和版

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

我从某人的博客或网站上复制的代码呢?放一个指向网站的链接就足够了吗?即使代码是由其他人编写的,我仍然保留许可条款和条件


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

您不能重新授权非您的代码,因为您不拥有版权。如果代码已在许可证下,则必须使用该许可证,并将该许可证作为软件包的一部分提供

如果代码不在许可证下,那么我个人会寻找另一段在Apache许可证下许可的代码,显然保留代码中的版权声明,并在项目文档中注明源代码和版权

如果你不能做到这一点,为什么不发电子邮件给代码作者,询问他们是否为其声明许可证?如果他们选择了与您不同的许可证,那么您应该明确,代码本身和您的文档中的代码块都在不同的许可证下


(当然,我不是律师,也不在电视上播放,因为许可是一项法律协议,你应该咨询一位律师,而不是听取互联网上随机陌生人的建议)

不要从博客复制代码,除非它是明确的公共域或在兼容的许可下

如果它在兼容许可证下,您只需在相关文件顶部的许可证标题中提及它。(并在“关于”对话框中加入一条)某些许可证可能不需要这最后一点,但这仍然是表示感谢的好方法

我从中复制的代码呢 某人的博客或网站?正在放 一个指向网站的链接就足够了吗

IANAL,但是你不能在没有得到许可的情况下修改别人的许可证。如果从博客复制的代码与Apache的许可证冲突,则不能将其包含在项目中。有一个合理使用的论据,但它相当狡猾(例如,我只是复制了一些非常小的东西,它真的不需要归属)


因此,我建议你阅读你复制样本的博客上的所有细节,如果你有任何疑问,发一封电子邮件给作者解释你在做什么。一般来说,人们可以在源代码中使用超链接到他们的博客文章,但是每个人都可以根据他们选择的任何许可证来许可他们的IP

我认为这是一个严重的问题,没有明确许可证的任何东西都可能不存在。例如,我找不到任何关于需要什么许可证的说明。我经常在搜索中看到这个网站。它们声称是“公共源代码库”,但“公共”是什么意思

类似地,gist.github.com上也出现了类似的情况,不过在文件中添加显式许可证似乎会更好一些

作为这些网站的用户,如果你面前有一段你想使用的代码,你就无法解决这个问题。在理想的情况下,开发者提交的东西会包括一个明确的许可证,但这似乎不太可能。我们可以合理地期望的最好结果是,这类网站在粘贴任何内容时强制用户选择许可证


在大多数情况下,这些片段的重要性不足以产生任何商业价值,也不足以保证任何限制性许可,但如果提交人不采取平权行动,这些片段仍然是他们的,保留除已明确授予他人的权限以外的所有权限。

这取决于您使用的代码是如何获得许可的。许多“许可”许可证允许您对代码执行任何您喜欢的操作,包括重新许可。当然,这取决于MS Pl没有的许可证,而Creative Commons没有。BSD是一个很有意思的问题——在许可证规则范围内,当一些Linux用户在将BSD网络部件包括在内核中之前,在GPL下对其进行重新许可时,引起了强烈的抗议,但与精神不符,因为NetBSD无法收回更改。我可以重新编写代码并将其用作我的代码吗?我想这取决于代码的功能。如果它是一个众所周知的算法的实现,那么一定。如果重写所做的只是更改变量名,那么可能不是。如果您使用这个示例作为灵感,通过它,在不使用原始代码的情况下重新实现功能,这可能是可以的。可能这些事情需要律师来解决。好吧,那么对于a来说,把它包括进来并引用链接就可以了?我投票结束这个问题,因为它要求关于许可的信息,最好留给律师。