在没有合理许可的情况下,您是否可以使用某种尺寸复制合理使用的代码?例如,如果我复制一个(通常)三行代码的代码段怎么办?这样合理吗?如果合理使用,我需要多长时间才能获得许可证?
在没有合理许可的情况下,您是否可以使用某种尺寸复制合理使用的代码?例如,如果我复制一个(通常)三行代码的代码段怎么办?这样合理吗?如果合理使用,我需要多长时间才能获得许可证?
Answers:
在美国,合理使用的法律原则不适用于将受版权保护的作品的摘录嵌入源代码中。您所在司法管辖区的法律如何应用这种学说可能会有所不同。
我将从美国版权局关于合理使用的文章中摘录,其版权一般如下:
第107节列出了可以将特定作品的复制视为公平的各种目的,例如批评,评论,新闻报道,教学,奖学金和研究[重点是我的]。第107条还规定了在确定特定用途是否公平时应考虑的四个因素:
- 使用的目的和性质,包括这种使用是商业性质还是非营利性教育目的
- 受版权保护的作品的性质
- 与版权作品整体相关的部分的数量和实质性
- 使用对受版权保护作品的潜在市场或价值的影响。
合理使用与侵权之间的区别可能尚不清楚,并且难以定义。 没有特定数量的单词,行或注释(强调我的名字),可以未经允许安全地使用。承认受版权保护的材料的来源并不能代替获得许可。
它总结了版权的法律限制,“合理使用”进一步限制,例如:
版权保护作者表达自己的特定方式。它不会扩展到作品中传达的任何想法,系统或事实信息。
最安全的方法是始终在使用受版权保护的材料之前获得版权所有者的许可。版权局无法授予此权限。
版权保护的局限性告诉我们,尽管您不能通过合理使用来复制代码的“片段”,但是可以重写在这些片段中表达想法,系统(包括算法)或事实信息的方式。
简而言之,三行代码应该足够小,以便您重写它,以免侵犯原始作品的版权。编写问题的时间可能比重写问题花费的时间更长。
我不是律师。
但是,您绝对可以在编写的任何代码中使用以下三行代码:
for (i = 0; i < 5; i++) {
printf("I am not a lawyer!\n");
}
.... 纯粹是功能代码(不是您可能认为的功能,而是通过其功能来实现)。它实际上并没有完成任何事情。它只是锻炼了语言的结构。它支持做实际工作的东西,您经常键入它,以便有一个宏可以生成它。但是,您所说的不是“合理使用”,而是首先是具有版权或许可权?
唯一正确的答案是请律师。十行代码来自什么?高度专业的排序算法?某种固件?自Usenet诞生以来,数以百万计的配置文件解析器之一就在其中徘徊?由另一个程序生成的代码会根据您的数据库模式生成数据库类?
但是,请向我证明您是为for循环或switch语句编写的,而不仅仅是复制了我的。在断言不再听起来很荒谬的时候,您可能就应该与律师或至少与您的工程经理/ PM /等等交谈。
我参与了多个免费/开源项目,其中一些项目要求对“琐碎”的内容进行版权分配。所有具有此要求的人都将“琐碎的”定义为添加或修改的十行代码。但这只是建立某种标准的任意试金石。比起10行切换,一行弯曲的字节比较更有可能受到版权保护。
我的摘要库包含数百个功能,所有功能都具有原始的作者信息(以doxygen风格的注释)以及许可信息(如果有的话,大多数只是公共领域)。
除非很琐碎(例如在我的幽默示例中),否则我不会重用代码,除非我知道自己有权这样做。我也始终遵循适用的任何许可规则。为了帮助我将来的自己(或将来的维护者),我喜欢在评论中留下指向找到内容的链接,即使这是tar球的名称,如果我离开公司,我也会打开USB记忆棒。
版权适用于创意作品,包括想法的表达(合法地对待源代码),只要这些想法的表达达到的独创性和创造性水平超过被视为具有创造力的最低要求的水平保护和复制数量不被认为是微不足道的。
如果该表达方式与众不同,则称为未达到版权保护的阈值;如果复制量被认为是微不足道的,则称为最小复制,并且不受版权保护。法院发现,在计算机程序显然是执行特定操作的最小程序的情况下(并且该操作本身不是创新的),它可以扩展到计算机程序。例如,这里和这里讨论了几种情况。
在问题的上下文中,所引用的那三行几乎可以肯定地属于该类别:本质上完全是功能而不是创造性,并且几乎可以肯定地执行许多软件中都存在的通用操作。在这种情况下,它们可能不受保护。
从技术上讲,这实际上不是“合理使用”,它是版权持有人有权强制执行的特定法定豁免,而是基于随时间累积的普通法判例,但术语“合理使用”经常以包含两种含义的方式宽松地使用它们,实际上它们之间存在实质性的重叠。
美国的“合理使用原则”是对版权侵权主张的可能的肯定辩护。“肯定抗辩”是指您承认未经许可进行复制并因此侵犯了某人的版权,但是随后您声称出于某种原因您有权这样做而不会产生负面后果。老实说,这似乎是一种危险的策略。您建议编写侵犯某人或某人的版权的代码,并依靠合理使用的辩护。我很容易想到3行代码可能是“合理使用”的,但是这里的3行,那里的3行以及其他地方的3行不是。
对于版权侵权,有更好的防御措施:首先不要侵权。无需复制代码片段,而是阅读,仔细检查,了解它的工作原理,了解它,一旦完全了解它,就无需复制,而是编写自己的三行代码。这具有多个优点: