以下内容来是个人理解,因为我不是律师,所以不要将此视为我的法律建议。
前言
今天看到耗子叔发的一条推 新年伊始,可以预见的是,Github 上要出现一堆更新 Copyright 年份的 Pull Requests …😂
随后去 GitHub 上看,果然茫茫然都是更新 Copyright 的:
我觉得这里面肯定有些文章,就去深入了解和学习下,以下是学习心得。
什么是著作权
根据 中华人民共和国著作权法 附则说明,著作权即版权。
著作权是在创作作品过程中享有的一系列权利的总称,这些作品大到我们熟悉的书籍、影视、音乐小到我写的这段文字,一旦创作完成,无需进行任何正式的注册或申请,也不管是不是发表,立刻享有著作权,这意味着您对其他人可以用它做什么有独一无二的发言权。
著作权保护的权利比较多,比如:
- 复制权
- 修改权
- 发表权
- 等等
这些保护是有道理的,一旦有其他人可以使用、复制、分发或修改您的作品,你可以随时拿起法律武器保护自己的权益。
开源运动
开源软件运动可以追溯到 20 世纪 50 年代,当时科学家们在共享软件代码的基础上开发出的软件称为开放源代码软件。但是,直到 20 世纪 90 年代才有了现在意义上的开源软件运动。
开源软件运动的奠基人是著名的黑客社区成员、自由软件基金会(Free Software Foundation)的创始人史蒂夫·鲍尔(Richard Stallman)。鲍尔在 1983 年创立了自由软件基金会,并在 1989 年发布了著名的 GNU 通用公共许可证(GNU GPL),这是第一个自由软件许可协议。
鲍尔和他的同事们相信,所有人都应该有权利自由地使用、修改和再发布软件。他们认为,软件是公共财富,应该被共享,而不是被商业公司垄断。
在随后的几十年中,开源软件运动取得了巨大的成功,并对软件行业产生了深远的影响。目前,许多流行的软件都是开源软件,如操作系统 Linux、浏览器 Firefox、办公软件 LibreOffice 等。
其中最重要的是自由软件许可协议的四个自由:
- 自由使用:用户可以自由地使用软件,包括商业用途。
- 自由修改:用户可以自由地修改软件,并制作衍生作品。
- 自由再发布:用户可以自由地再发布软件,包括源代码和二进制文件。
- 自由传播:用户可以自由地传播软件,包括贩卖、出租或赠送。
版权保护是一个非常好的行为,但是开源是另一种特殊的情况,因为开源作者一般希望其他人使用、修改和共享该作品,而作者只署个名就行了,但是因为法律默认作者是独占版权,这样其他人在复制使用时,这侵犯了作者的复制权,也没办法多人协作,这侵犯了修改权,假如是多人协作的代码,那么为您的项目做出贡献的每个人也将成为其作品的独家版权持有者,这意味包括作者本人也没权利使用。
至于用代码盈利,更是无稽之谈,基本上其他人除了能看源代码学习下,啥也做不了,所以您需要一个明确说明这些权限的许可证。
开源许可协议
开源许可协议是由 Open Source Initiative 来制定的,你可以在它的官网看到,目前制定通过的所有开源协议:opensource.org/licenses/al…
常用的开源协议,GitHub 的这个网站更加直观:choosealicense.com/licenses/
开源协议有法律效力吗
毫无疑问开源协议是有法律效力的,根据 中华人民共和国著作权法 著作权主要包括人身权和财产权,其中开源协议是一种许可协议,许可是财产权的一种体现。
从法律表现的结果来看,它和合同很像,具有法律约束力,开源协议,更像一种个人表达的最佳提炼,你写了一个自创的程序,在微博或者推特发一句话:放弃此软件的所有著作权利。这句话提炼下基本上就是 MIT 协议。
什么是版权所属日期
如果一个作品其版权只有一分钟,肯定没啥意义,所以需要一个合理的保护期,版权所属日期是为了确定版权的有效期。
Apache License 2.0 的版权所属日期格式如下:
Copyright [yyyy] [name of copyright owner]
MIT License 的版权所属日期格式如下:
Copyright (c) [year] [fullname]
我们以 MIT License 为例,看一下它出现的地方长成啥样:
Copyright 2022 Vavr, https://vavr.io
Copyright (C) 2016-2022 The Neo Project.
Copyright 2015-2022 Ghent University
Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
Copyright (c) 2013-present, Facebook, Inc.
如果你想看到更多,这里有一个列表:Copyright notices and licenses for Open Source Software
我们看到上面 MIT 协议的版权所属日期,MIT License 规定 Copyright (c) 之后是项目创建日期,上面很多例子只是像 MIT License,并未完全遵守,但它们依然是有效的,原因就在于
- 声明的年份用当前协议
- 其他年份作者则保留所有著作权利。
这就是为什么那些写了具体日期范围(2013-20222)的项目在新年开始就立刻要更新版权所属日期,因为超过了这个日期,除了作者都有可能面临诉讼,因为协议已经变更,继续使用有风险。
为什么有的开源项目所有源代码文件顶部都有版权声明
这是因为有的人认为应该在每个文件的顶部留下姓名、源代码库 url 和许可证标识符,这样如果文件被集成到其他地方,就知道它使用的是什么许可证以及在哪里可以找到项目,主要方便随意使用者。
版权所属日期不是必须的
在 OSI 的官方文档中,MIT 许可证的格式规定包含版权所有年份是必需的。
# https://opensource.org/licenses/MIT
Copyright <YEAR> <COPYRIGHT HOLDER>
但是在实际使用中,很多人在使用 MIT 许可证时并没有完全遵守上述协议,比如 GitHub,但这仍然是有效的:
# https://choosealicense.com/licenses/mit/#suggest-this-license
Copyright (c) [year] [fullname]
亚马逊得出结论,开源代码不需要在版权声明中包含日期。从 GitHub 上的各种项目可以推断,微软、Facebook 等也得出了相同的结论,所属年份不是必需的,所以放弃它也没关系。
React 在 2018 年就把所有文件,包括版权声明文件 LICENSE 在这个 PR facebook/react#13593 中全改成无日期的形式,部分截图如下:
如果你不是想在特定时间让项目使用某个协议,那么就不要指定固定范围的版权版权所属日期,因为保持最新的年份很烦人。
参考
- 中华人民共和国著作权法
- Copyright Notices in Open Source Software Projects
- TIL: You Can Stop Updating Copyright Attribution Years
- ChatGPT
- Copyright notices and licenses for Open Source Software
- copyright-statements-source-files
- copyright-notices-open-source-software
- copyright: update all copyright lines and remove year ranges