字节跳动研发开源合规基础

技术

文章来源|字节跳动开源法务团队

引言

字节跳动在开发、测试和部署软件时会依赖第三方软件。我们使用的大多数第三方软件都是开源软件(OSS)。我们还会使用第三方专有软件,有些是根据付费许可协议使用,有些是根据共享软件许可协议或者开发者许可协议获得免费许可。

软件受到知识产权(IP)法律的保护,因此每当我们使用任何类型的第三方软件时,我们都需要确保我们获得了许可。大多数软件(包括开源软件)都附带许可条款,说明我们被允许如何使用该软件,以及我们的使用受到哪些限制。字节跳动需要依赖研发团队确保我们在使用第三方软件时都遵守了许可条款。

本基础指南解释了软件的知识产权保护,概述了开源软件和开源许可协议(也称“开源许可证”),以及研发团队在遵守开源许可协议和其他第三方软件许可协议方面发挥的作用。

目标

阅读本指南后,你能够了解:

  1. 软件知识产权保护的基础知识;
  2. 什么是开源软件;
  3. 开源许可协议的常见条款;
  4. 字节跳动研发使用的其他类型的第三方软件;
  5. 字节跳动遵守 OSS 和其他第三方软件许可协议的政策和流程。

0 1

适用于软件保护的几种知识产权

有几种不同类型的知识产权保护可以适用于软件,包括版权、专利、商业秘密保护和商标权。 本指南主要侧重于版权和专利权,这与我们对第三方软件的使用最为相关。

版权

版权,也称著作权。版权法保护“原创作品”,包括书籍、照片、音乐词曲和录音、电影和其他视听作品以及软件等。需要注意的是,版权保护作者的表达,而不是作品背后的思想。例如,如果开发者编写电子表格程序,版权法禁止他人未经许可复制该程序,但不阻止他人自行编写电子表格软件。

即使作者没有向政府部门登记其版权,软件也会自动受到版权保护。但是,作者可以登记其版权以获得更好的法律保护。

版权人享有的专有权

根据版权法,软件的版权人对该软件拥有一系列专有权,这些专有权包括:

  • 复制软件的权利
  • 创建“衍生作品”(即创建基于软件的作品)的权利
  • 将作品分发给他人的权利

根据不同国家或地区的法律,版权保护通常持续 50 年或 70 年,有时更长,视情况而定。

专利

专利法保护新颖的、有用的且不是显而易见的发明。不同于版权保护开发者对软件功能的特定表达,专利权可以保护实现软件功能的技术方案。

专利权不是自动授予的,软件的创建者必须在特定国家申请才能在该国获得专利。如果他们获得了专利权,他们有权阻止其他人生产具备专利中所描述的技术方案的软件。值得注意的是,在开发的的时候,是有可能在不知情的情况下侵犯专利权的。

因为专利权比版权广泛得多,它们的保护也有更严格的时间限制。在大多数国家,专利权的期限都不超过 20 年。

其他类型的知识产权

  • 商业秘密保护,保护具有价值的保密信息,包括处于保密状态的软件代码。
  • 商标权,保护将产品与其生产者联系在一起的识别标记(文字、标识、标语、颜色等)。与版权和专利权不同,商标法主要是为了保护产品的消费者而不是生产者:通过防止不同的生产者使用类似的标记,防止消费者对产品的来源的混淆。

02

软件许可基础

因为所有的软 件都自动受到版权的保护,我们只能在得到软件版权人许可的情况下才能使用其他人创作的软件。 这种许可通常采取许可协议的形式,即通过一份法律文件,规定被允许的软件使用方式,以及对其使用的限制。 “被许可人”是可以指根据许可协议条款使用软件的任何人。

字节跳动使用的第三方软件分为两类: 开源软件和专有软件

开源软件许可协议

开源软件 ”是指在符合开源定义的许可条款下以源代码形式提供的任何软件。这些许可条款包含在开源软件许可协议(开源许可协议)中,至少允许任何拥有该软件副本的人:

  • 出于任何目的运行软件
  • 修改软件
  • 复制软件
  • 分发软件及其修改版本

开源许可协议也可能包含限制或义务,这将在下面详细讨论。例如,大多数开源许可协议规定,无论何时分发软件副本,都必须包含许可协议副本。但根据开源定义,开源许可协议永远不会要求支付许可费用,也不能限制如下内容:

  • 谁被允许使用该软件(也就是说只要遵守许可条款,谁都可以使用该软件)

  • 该软件可用于什么

  • 该软件可与哪些产品一起使用

  • 哪些其他软件可以与该软件一起分发

  • 该软件可以使用什么样的技术或界面

专有软件许可协议

“专有软件”是指任何未采用开源许可协议的第三方软件。

专有软件许可协议有许多不同的形式。有些要求用户支付许可费(也称为使用费)。有些其他的许可协议,有时称为“免费软件”许可协议或“共享软件”许可协议,允许免费使用,但仅限于某些目的或有限时间的使用。专有软件可能仅以可执行形式分发,也可能附带用户可受限使用的源代码。

一些专有软件许可协议包含与开源许可协议非常相似的条款,包括允许修改和重新分发软件。但是,如果许可协议的一些条款不符合开源定义,例如限制了某些用途,则该许可协议不被视为开源许可协议。

03

开源许可协议的常见许可条款

世界上有许多不同的开源许可协议。开放源码促进会(Open Source Initiative,缩写:OSI)已经批准了 100 多个符合开源定义的现有许可协议,还有更多的许可协议可能符合定义的条件,但还未经过 OSI 审议。

虽然每个开源许可协议的内容都不同,不过所有的这些许可协议中包含的义务大致可以归类为:

  • 包含免责和不保证条款,免责和不保证条款是指开源代码的作者对使用该软件造成的任何损害不承担法律责任。一些情况下,如果你使用了开源软件,你需要将适用于该开源软件的免责和不保证条款包含在你的软件中;
  • 声明要求,是指开源软件的任何副本和衍生作品都必须包含有关开源许可协议、作者知识产权和 / 或代码修改的书面声明(notice)。大多数开源许可协议都包含特定的声明要求;
  • Copyleft 要求,是指开源软件的衍生作品必须根据相同的开源许可协议进行许可,并且在软件分发给他人时必须提供源代码。Copyleft 要求不如上面两条要求那么常见,但一些 Copyleft 许可协议(如 GPL)非常受欢迎。

除了这些常见的术语之外,开源许可协议还可能包括各种其他限制。许多开源许可协议禁止在衍生作品的营销材料中使用软件作者的姓名。一些 Copyleft 许可协议(如 GPL-3.0)要求安装在锁定设备中的软件分发时需要包含安装密钥。

04

开源许可协议的类型

开源许可协议通常根据它们包含的义务类型分为几个不同的类别。各个类别包含的许可协议非常广泛,每个类别中的许可条款可能会有很大差异。

宽松(Permissive)许可协议

“宽松”的开源许可协议通常包含最少的限制,并且不包含 Copyleft 要求。如果衍生作品是基于宽松开源许可协议的作品产生的,宽松开源许可协议往往允许该作品以另一个许可协议分发,包括专有许可协议。

最流行的开源许可协议之一 MIT 许可协议是一种典型的宽松许可协议,它允许对软件进行无限制的修改和重新分发,只要在软件(或衍生作品)重新分发时包含许可条款和作者的版权声明。一些宽松许可协议可能还包括其他限制,例如:

  • 禁止使用作者的姓名或商标来推广软件的修改版本;
  • 禁止任何诉称该软件侵犯其专利的人分发该软件。

常见的宽松许可协议包括:MIT 许可协议,BSD 许可协议,Apache 许可协议。需要注意的是,也有一些宽松许可协议,如 Unlicense 和 MIT-0 许可协议,不包含任何限制。

Copyleft 许可协议

“Copyleft” 或“互惠”许可协议包含两个关键要求:

(1)开源软件的衍生作品必须根据同一开源许可协议进行许可;(2)任何分发开源软件或其衍生作品的人也必须向软件的接收者提供相应的源代码。

如上所述,衍生作品是基于开源项目的任何作品。例如,如果你修改了开源项目,则修改后的版本是开源项目的衍生作品;如果你将开源项目的源代码包含在另一个软件产品中,则该产品是开源项目的衍生作品;如果你将软件产品与开源库相结合(例如通过链接),则该软件产品可能也是开源项目的衍生作品。

通常的 Copyleft 许可协议包括:GNU General Public License (GPL) 、Affero GPL (AGPL) 等。

Weak Copyleft 许可协议

Weak Copyleft 许可协议类似于 Copyleft 许可协议,只是它们不要求所有衍生作品都根据同一开源许可协议进行许可,而是只适用于对原始软件的源代码进行的修改。

Weak Copyleft 许可协议通常适用于旨在合并到其他软件作品中的软件库。当 Weak Copyleft 许可协议下的库作为另一个程序(库的衍生作品)的一部分分发时,程序的分发方还必须根据该库的许可协议向接收方提供库的源代码(包括任何修改)。

常见 Weak Copyleft 许可协议包括:GNULesser General Public License(LGPL)、MozillaPublic License(MPL)和 Eclipse Public License(EPL)等。

05

使用第三方软件时,需要遵守开源和第三方许可条款

字节跳动有关于在我们的产品中使用开源和第三方专有软件的政策。这些政策旨在确保我们:

  • 遵守我们使用的所有开源许可协议和第三方专有软件的许可协议。如果我们不遵守许可协议要求,我们可能会因知识产权侵权而被起诉或在开源社区失去声誉;
  • 发现我们使用的开源软件中的任何安全漏洞,以便我们及时修补它们;
  • 如果许可协议与我们的业务需求不兼容,请勿在我们的产品中使用该许可协议下的任何软件。例如,除非我们愿意把我们的软件开源,否则我们不能分发与 Copyleft 开源软件相结合的软件。

我们的政策规定了哪些开源许可协议可被用于字节跳动不同类型的产品,哪些场景需要获得法务的批准才能使用。例如,可用于 SaaS 产品的许可协议可能无法用于分发给客户的软件或硬件产品。

活动推荐

10 月 21 日字节跳动开源 OpenDay 中,开源法务孙振华将于上午主论坛进行主题分享——《开源的法律是为了开源》。

议题简介

开源的法律机制是为了开源的发展,具体而言:

  1. 从条款角度看,开源许可的定义并不是纯粹的定义,而是开源社区长期形成的共识,共识的意义在于开源协作。
  2. 从专利角度看,为了让 Linux/K8S 等基础软件免于专利纠纷,开源社区逐步形成了全球最大的专利联盟来抵御开源技术面临的专利风险,以保障开源的发展。
  3. 从历史角度看,GPL 许可是伟大的创新,其互惠性确保了在闭源软件大行其道的年代 Linux Kernel 可以健康发展;Apache-2.0 许可证则充分考虑到对于下游用户在版权、专利方面的全面授权,促进了 Apache 系列软件以及云原生的基石 K8S 的迅速传播,成为标准。
  4. 从未来角度看,什么是大模型的开源,是否有新的许可应运而生,则是值得探讨的问题。

关注开源法律合规的同学欢迎报名活动现场交流。

报名链接:www.bagevent.com/event/OpenDay2023

(点击底部「阅读原文」直达)

picture.image

扫码报名

picture.image

30
0
0
0
关于作者
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论