我想从答案中了解代码段的版权。假设您提出一个问题,并且解决方案由十行代码组成,并在答案中给出。使用该代码是否有任何限制?

该页面的内容似乎受创用CC许可。如果在开源项目中使用代码,那么是否必须归因于作者?

我猜十行代码并不是真的有问题,但是行数是否很关键?

返回到常见问题索引

评论

请参阅我的答案以找到解决此问题的方法。

可能与Stack Overflow上的源代码许可证有何重复?

@ d3vid:这是中央常见问题解答;如果有任何欺骗关闭,则必须在另一个方向。

严格谈论GPL软件,请参阅在GPL软件和CC-BY-SA社区之间共享计算机代码。

如果您认为Stack是一种“公共空间”,而将代码作为一种艺术形式来拍照(或从内存中调出)应该没问题-而直接复制则需要根据当前许可归因。

#1 楼

您发布到Stack Overflow的任何内容均受知识共享许可的条款约束。您可以通过以下方式找到更多信息:查看页面右下角,单击cc-wiki链接,查看页面左下角,然后单击合法链接。

法律问题,您可能应该咨询律师。

评论


因此,基本上,如果我将来自stackoverflow的10行代码片段粘贴到我的项目中,我现在还必须在CC by-sa的基础上分发我的项目吗?

–davr
08年9月24日在17:54

如果您包含其他来源的代码段,则您不能随意将其内容提供给知识共享...,除非版权持有者另有说明,否则该内容将受原始许可的约束。

–史蒂夫·莫耶(Steve Moyer)
08年9月24日在17:55

在发布代码之前,这里没有任何更改谁拥有代码。如果发布者无权发布(由于其公司的IP规定,或者因为它是从其他地方获取的),则CC许可证不会阻止原始所有者主张对下载的人的侵权。

– M
08年9月24日在18:03

@Davr-如果您打算在与知识共享许可不兼容的许可下发布代码,我不会将其发布到StackOverflow。我想这对于大多数FOSS许可证来说都不是问题。而且,如果这是专有代码,则我不会一开始就发布。 :)

–杰森·贝克(Jason Baker)
08-09-24在18:24

不...我在说另一种方式。我问“我该怎么办?”,然后有人回答了一些源代码,大概是CC by-sa许可的。当我获取该源代码并将其添加到我的非开源应用程序中时,会发生什么?

–davr
08年9月24日在20:28

我修改了在stackoverflow上找到的代码,并将其添加到程序中(我打算在GPL下发布)。我在评论中提到了编写它的人,并将URL添加到了找到它的stackoverflow主题上。我还需要做其他事情吗?

–阿迪南
13年10月10日在15:43

@Jason:意识到这不是Davr的问题,我认为您先前的评论遗漏了一些内容。 IANAL,但是您可以将部分封闭源发布到SO和“双重许可”(因为这是您的全部)。如果我已经关闭foo,将foo再许可给您,那么您将foo张贴到SO不会阻止我继续将foo-superset视为否则已关闭。如果那个“分许可证持有人”是我自己,也是如此。您可以在CC下在SO上使用foo,而我可以在不起诉自己的情况下将foo-superset用作封闭状态。 ; ^)请参阅MySql和双重许可。

–松饼
13年11月30日在17:12

@JasonBaker我想对于大多数FOSS许可证来说这不是问题。错误!在“知识共享>兼容许可”的“ BY-SA”部分的“版本3.0”下:当前,没有非CC许可被指定为与BY-SA 3.0兼容。因此,除非已获得CC BY-SA 3.0的许可并且仅根据CC BY-SA 3.0的许可,否则您实际上被禁止在其他项目的任何子站点上使用他人/您自己发布的代码(因为不兼容其他许可)。

–zypA13510
'18 Mar 31'20:50



抱歉,这并不能真正回答问题,更多的是链接答案。

–keuleJ
18/09/12在11:38

#2 楼

这是软件许可的噩梦。如果您在答案中粘贴了与cc-wiki不兼容的许可证中的片段,则违反了SO条款。我可以想象可能有成千上万的此类违法案例。

除了主要问题之外,我个人还希望选择如何许可自己的作品。我很高兴所有文字成为病毒式cc-wiki。但我很不爽有下抄送维基我的小代码样本或类。

为了解决这个问题,我刚刚将此片段添加到了我的个人资料上,以


我在
stackoverflow上发布的所有原始源代码片段都专用于公共区域。按照您认为合适的方式处理它们。


所有反对源样本的病毒性质的人都应明确声明其样本所使用的许可证。

另一个选择是将任何较大的代码段发布到gist之类的网站上,并在文件的标题中添加许可证。

评论


“公共域”不是许可证。许可证是一种合同。公共领域是出于任何原因(例如过时,没有创造力,明确放置于此)而不受版权保护的一组作品。即使这样,您的意图也很清楚,可以将您的代码放入其中。

– MSalters
09年5月22日在8:10

“公共领域”在许多国家/地区不存在,因此,如果您希望每个人都可以无忧地使用代码段,请考虑使用CC0(如果您喜欢知识共享许可),WTFPL,Unlicence等。

–克里斯·杰斯特·杨(Chris Jester-Young)
2011年11月30日在21:08

这比公认的答案要有用得多,但是要使这种重新投入变得有意义,实际上它本身必须是一个许可(如@ ChrisJester-Young所指出的)。最接近公共领域的许可证是Unlicense。

–布克佐尔
2014年10月10日在18:25

谢谢!我也将此声明也添加到了我的个人资料中,包括专门的Unlicense。

–克里斯
2014年5月5日20:37

@ ChrisJester-Young,WTFPL是在法庭上有效的真实版权吗?

–起搏器
2014年6月17日在16:16



@Pacerier(我不是律师。)我知道在法庭上经过测试的唯一免费软件许可是GPL。 WTFPL唯一一次在法庭上受到测试的地方是版权所有者是否放弃了许可证并试图“在事实之后”提起诉讼,因为从技术上讲,被许可人没有办法违反许可证。我还没有听说过这种情况。

–克里斯·杰斯特·杨(Chris Jester-Young)
2014年6月17日17:03



@ ChrisJester-Young,所以我们不应该选择GPL而不是Unlicense和朋友吗?

–起搏器
14年6月17日在19:03

@Pacerier不,因为在这里,我们(作为版权所有者)的意图是使每个人都可以使用我们的代码片段执行任何所需的操作。使用GPL将无法实现这一目标。 CC0,Unlicence和WTFPL被认为是“尽可能接近公共领域”的许可证。 GPL不是这样的许可证。

–克里斯·杰斯特·杨(Chris Jester-Young)
2014年6月17日19:05



@ ChrisJester-Young,实际上,WTFPL和Unlicence实际上不会允许其他人开始声称他们创造了我们的作品吗?

–起搏器
2014年6月18日18:55



@Pacerier不。在许多国家,所有权,完整性和其他一些此类权利无法更改或放弃。

–chx
2014年10月12日,0:26

@chx,但是没人知道谁在说真话。他们可以声称这是他们的,并且无法反证明它属于我。

–起搏器
2014年10月12日下午5:45

@waffles,我认为您的技术无效,因为您是在SO上发布。为了使其正常工作,您必须首先将其发布在“公共领域”下的其他位置,然后将其复制到您的SO帖子中。否则,它将不成立。

–起搏器
15年4月12日在12:18

该片段只有在有人出现并编辑您的问题之前才有价值,然后许可再次返回cc-wiki。

–德米特里·格里戈里耶夫(Dmitry Grigoryev)
16年6月8日在16:14

我还要确保您说这是对Stackoverflow的知识共享“默认”的补充。如果您将签名显示为无效,而不是扩展stackoverflow使用条款,则您可能没有法律依据。

– Tormod
18年1月15日在10:19

您可能想要在拥有的所有Stack Exchange配置文件上写下该代码:meta.stackexchange.com/questions/333089/…-所有Stack Exchange网站都使用相同的许可证。很棒的主意,我现在将其放在我的所有个人资料中(尽管带有WTFPL许可证)。

– DADi590
20/12/23在21:32



#3 楼

如果您正在谈论从Stack Overflow获取代码以用于您的工作中,我会非常小心。即使在这里的人认为Stack Overflow的帖子由知识共享所涵盖,您也需要能够证明您从此处获得了代码。

一个简短的故事来说明:


其他人认为该代码对于他们所面临的问题是一个很好的解决方案,并决定将其复制到GPL涵盖的开源GnuFizzBu​​zz项目中。从现在开始的五年后,有人正在对您的代码进行开源审核(也许您是在向一个紧张的客户出售产品,或者您的公司即将上市)。
开源审核会找到您从Stack那里获得的代码片段溢出,并将其识别为起源于GnuFizzBu​​zz。
现在您将不得不解释如何/为什么将GPL代码混入商业产品中,或证明该代码实际上是来自Stack Overflow。您能证明将代码发布到Stack Overflow的人首先拥有它吗(也许他们实际上是从GnuFizzBu​​zz复制它以开始wih)。
用我自己的眼睛。安全的做法是将您发现的所有代码段都视为对某些功能的解释。阅读,理解并根据您的理解编写解决方案。如果您使用的是商业产品,请不要剪切/粘贴在Internet上找到的代码。

评论


...因此,如果包含来自SO的代码,请在注释中包含URL。

–msh210
2011-12-19 21:30

如果您依赖特定的代码(以及适用的版权),请与作者联系。 CC-WIKI不是软件许可证,您想使使用条款比CC-WIKI许可证能够指定的使用条款更明确。

– hakre
2012年1月30日15:05

在这个答案中(实际上是由Jeff Atwood撰写),其中写道:“一段代码属于摘录类别,因此在合理使用下应该可以自由使用” –但是什么时候该段代码太长而不能成为一段代码?

– KajMagnus
2013年2月22日11:00



@KajMagnus:这是法律判断,这是错误的。合理使用原则不适用于将版权作品的摘录嵌入源代码中。

–布克佐尔
2014-03-10 18:44

能够选择要在其中包含内容的许可,或者能够具有签名选项,这对我来说很有趣,例如:“在任何Stack Exchange网站上发布的所有来自我的东西都在以下许可证:[许可证名称/链接/任何内容,而不是默认的许可证。”。我可以将其放在个人资料中,但是很幸运任何人都可以去那里查看。除非我手动编写它,否则我认为这很奇怪,但它总比在错误的许可证下获得更好?

– DADi590
20 Dec 24 '20:19

#4 楼

已经在UserVoice上对此进行了讨论。 Jeff通过以下响应结束了请求:


我希望人们不会在SO上发布巨大的代码块,从而使之更多是引用/合理使用类型的情况。 >

对于商业工作,使用SO中的任何代码之前,应先咨询公司律师。

评论


感谢您提供的uservoice参考,看来这很清楚。

– nikow
08年9月30日在15:36

内容很明确,但作为版权的拥有者,您有权按照您认为合适的许可来许可您的作品。 (除了本网站上的cc-wiki之外),我在个人资料上附加了免责声明,表示我正在分发我的摘要。我希望其他人跟随套房

–华夫饼
09年5月22日在7:54

唯一的麻烦是,不幸的是,有些立法没有“合理使用”的概念。但是我也同意,这么小的片段可能不会造成任何问题,因为所有“标准”问题的实现看起来都是相似的。我还想向CC常见问题解答暗示有关软件使用CC许可证的信息。

– Quzgar
13年5月23日在11:26

考虑到代码审查站点,其中长而庞大的代码块是规范,我想说杰夫的答案已经过时了。

–西蒙·福斯伯格
2013年12月19日在1:45

@SimonAndréForsberg,确实,我们现在甚至拥有Stack Snippets,这间接地鼓励了更长的代码。

–起搏器
15年4月12日在12:16

#5 楼

只有律师才能回答这个问题。但是,合理使用和合理使用非常相关,一小段代码是否具有版权。

此外,在向律师提出意见时,其所隐含的许可也很重要。律师可能会说,有人以任何方式使用他们为回答问题而发布的代码时,很难合理地辩称有人侵犯了他们的版权。允诺禁止反言等法律概念可能会发挥作用。有趣的是,根据法律,声誉点是否可以被视为“考虑”。

专利问题的风险更大,因为专利法太荒谬了,而且还在不断恶化。软件专利非常危险,已经对软件行业和自由软件造成了极大损害。

出口限制(例如ITAR)也很危险,尽管保护语音作为源代码的一些重要先例组。曾经有一段时间,在发送数据之前,仅具有钩子就可以处理数据在美国被限制为一种弹药。

评论


没有隐式许可证。有一个明确的名称-CC-BY-SA。

– David Thornley
09-10-15在21:37

#6 楼

我不是律师,但是我认为,如果您直接剪切和粘贴代码,那么您将必须查看网站的cc-wiki允许您执行的操作。就个人而言,我认为如果您阅读代码,理解代码,然后使用该知识来编写自己的代码,您可能会对版权问题有所了解,因为您没有对内容进行剪切和粘贴。代码。

但是,值得注意的是,您确实必须意识到代码可能拥有专利,在这种情况下,您必须意识到这些问题。这是您开始考虑让律师就此做出选择的一个方面-如果您在公司工作,则法律部门的某人可能会为您提供有关问题的答案。