翻译 / 林晓澜
理解为什么在代码库中会发现未经授权的开放源码的三种常见情况,以及将其嵌入商业应用程序的含义。
赋予权利
在我们深入探索其中的含义之前,让我们先定义一下许可证对软件的作用。许可证是权利的授予。要使用一个软件,无论它是开源的还是商业的,都需要一些授权。在美国和许多其他地方,创造性工作(包括软件)默认受到独占版权的保护。这意味着没有作者的明确许可,任何人都不能合法地使用、复制、分发或修改该软件。这种许可以证书的形式来授予权利。如果没有该许可,最基本的假设是您没有使用该软件的许可。
没有授权的开放源码是如何进入的呢?
未经授权的组件
一个未授权的组件可以通过几种方式进入代码库。最直接的方式是创建者(和版权所有者)在创建开源组件时没有选择或分配许可证。你可能认为没有限制使用的许可证意味着它可以自由使用。但是根据上面提到的版权法,没有作者的明确许可,就没有授予使用权力。因此,对于这些组件,假设您没有使用、修改或分发组件的权限。在这些情况下,公司必须确定风险程度。如果没有许可证,公司就没有使用该组件的许可,并且可能会面临昂贵而耗时的知识产权诉讼。这似乎是一种极度危险的情况,但正如前面提到的,我们在审计的代码库中发现了33%的这种情况。
开源的代码片段
最后一个假定场景没有这么简单。我们经常发现,当开发人员编写代码时,他们可能会从一些普遍的地方(如网站Stack Overflow)引入一段开放源代码。这些代码片段不是完整的组件;它们只是执行特定功能的组件中的一小部分。但是从堆栈溢出这类地方获得的片段几乎从来没有附上适用的许可条款。
有些人会质疑这段代码本身是否值得版权保护。换句话说:片段代码有创造力吗?或者因为它是纯粹的功能性代码,所以首先就不是可版权保护的主体,因此不需要许可?这场争论归结为你如何规避风险——特别是考虑到一段代码被认为具有足够的创造性以获得版权保护的门槛相对较低。在最坏的情况下,法院会做出决定,您可能需要从应用程序中删除代码,这需要您花费宝贵的时间重新编写应用程序,以及金钱和法律资源来解决这个问题。
保持开源许可的优势
程序开发小组
兼收并购
从我们审计服务团队的发现来看,似乎许多公司仍然没有正确管理他们对开源的使用。需要提醒的是,我们在2019年审计的代码库中,发现有33%包含未经授权的开源组件。令人震惊的是,有67%的代码库包含有许可证冲突的组件。对于进行收购的公司,特别是收购的知识产权是软件的公司,我们建议您在交易完成前确认所有的许可已经被识别并得到遵守。因为如果发现IP不符合法规,它的价值就会面临风险。即使可以修复潜在的问题,补救所需的时间仍然必须在集成期间考虑在内,这些资源可能会交由第三方保管。
对于团队来说,开放源码许可问题可能非常复杂,甚至难以解释,而且成本很高。但是通过正确的工具和服务可以简化合规协议的制定。
往期推荐