开源使用、维护与分发等场景

开源使用的场景

企业在使用开源的时候,通常有两种场景:直接使用,修改(二次开发)。直接使用,又可以分为命令行调用、动态、静态库调用等情况。二次开发则涉及更多复杂的情况,甚至直接使用的软件,在使用过程中,也会发现需要做小量的修改。

另一种需要尽力避免的场景,可以称之为: 片段引用 ,就是复制部分开源软件的代码到自己的项目中,却不做任何申明,也不再当做开源软件管理。

开源维护的场景

在开源软件的日常使用中,可能涉及各种维护的场景,例如:升级版本,合入社区补丁,二次开发等情况。

在公司的内部,可能存在多个不同的团队,使用并修改同一款开源软件的情况。我们首先需要考虑将这些不同的使用与修改集中管理,并且及时处理各种风险事件,包括安全风险与法务风险。


开源分发的场景

1. 分发OSS的一种方式是使用半导体供应商提供的SDK(软件开发工具包)开发产品

如果SDK中包含的OSS在开发过程中被并入到产品中,那么这意味着半导体供应商在通过包含到SDK中来分发OSS,而产品开发人员则在通过包含到产品中来分发OSS。这种情况下,产品供应商有责任遵守许可证。但它们依赖于半导体供应商。如果半导体供应商没有提供有关包含到SDK中的OSS的适当信息,则产品供应商无法遵守OSS许可证。

2. OSS可能被分发的另一种方式是采用ODM或OEM的委托方式为制造商设计和开发产品。 ODM或OEM可以将OSS并入到产品中,这是产品分销商需要了解的

即使是OEM或ODM制造了该产品,该产品的品牌所有者也会分发并入在该产品中的OSS。品牌所有者必须遵守OSS许可证。如果ODM或OEM制造商没有提供有关OSS的恰当信息,则产品的品牌所有者无法遵守OSS许可证。


3. 分发OSS的其他方式包括贩售产品、发布移动应用软件,或者为之前贩售的设备提供软件更新

如果OSS被包含在产品、移动应用程序或软件更新中,这就构成了OSS的分发。贩售产品或发布软件的实体必须遵守OSS许可证。

4. 网页中使用的JavaScript构成分发

当网页被传输到用户的机器上时,可能会发生一种有趣的OSS分发情况。 当用户访问页面时,被包含到网页中的JavaScript作为页面数据的一部分,被从web服务器传输到用户机器上的浏览器。如果此JavaScript程序是OSS,那么这就构成了分发,许可证条款将发生效力。