中文

软件生态系统中的许可证不兼容问题

软件工程 2022-03-04 v1

摘要

当代软件的特点是对被声明为依赖项并从包管理器/注册中心(如 NPM、PyPI、RubyGems、Maven Central 等)获取的组件的复用。直接与间接依赖关系常常形成不透明的依赖网络,有时会导致其中出现相互冲突的软件许可证。在本文中,我们研究了来自七个包注册中心(Cargo、Maven、NPM、NuGet、Packagist、PyPI、RubyGems)的所有组件之间的许可证使用情况与许可证不兼容问题,并重点调查了由 GNU Affero General Public License (AGPL) 引起的许可证不兼容。我们发现,所使用的许可证的相对数量在各生态系统间存在差异(宽松许可证如 MIT 和 Apache 最为常见),直接许可证不兼容的数量从 Cargo 中的低至 2.3% 到 PyPI 中的高达 20.8% 不等,仅有一小部分的直接许可证不兼容是由 AGPL 许可证引起的(PyPI 中最多 0.04%),但高达 6.62% 的 Maven 包违反了某个间接依赖的 AGPL 许可证。我们的结果表明,复用来自 PyPI 或 Maven 的包的应用程序遭遇许可证不兼容并非不可能,这可能意味着应用程序在分发时(PyPI)或一旦作为 Web 应用程序公开可用时(Maven)就必须开源。

关键词

引用

@article{arxiv.2203.01634,
  title  = {License Incompatibilities in Software Ecosystems},
  author = {Rolf-Helge Pfeiffer},
  journal= {arXiv preprint arXiv:2203.01634},
  year   = {2022}
}