开源使用、维护与分发等场景
开源使用的场景
企业在使用开源的时候,通常有两种场景:直接使用,修改(二次开发)。直接使用,又可以分为命令行调用、动态、静态库调用等情况。二次开发则涉及更多复杂的情况,甚至直接使用的软件,在使用过程中,也会发现需要做小量的修改。
另一种需要尽力避免的场景,可以称之为: 片段引用 ,就是复制部分开源软件的代码到自己的项目中,却不做任何申明,也不再当做开源软件管理。
开源维护的场景
在开源软件的日常使用中,可能涉及各种维护的场景,例如:升级版本,合入社区补丁,二次开发等情况。
在公司的内部,可能存在多个不同的团队,使用并修改同一款开源软件的情况。我们首先需要考虑将这些不同的使用与修改集中管理,并且及时处理各种风险事件,包括安全风险与法务风险。
开源分发的场景
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许可证。