LiDetector:面向开源软件的许可证不兼容检测
软件工程
2022-04-25 v1
摘要
开源软件(OSS)许可证规定了复用、分发和修改软件所应遵循的条件。除 MIT 许可证等广泛使用的许可证外,开发者也可自定义其许可证(称为自定义许可证),其描述更为灵活。此类多样许可证的存在给理解许可证及其兼容性带来挑战。为避免财务与法律风险,在集成第三方包或复用附带许可证的代码时,确保许可证兼容性至关重要。本工作中,我们提出 LiDetector,一种有效工具,可提取并解释 OSS 许可证(包括官方许可证与自定义许可证),并检测这些许可证间的不兼容性。具体而言,LiDetector 引入基于学习的方法自动从任意许可证中识别有意义的许可证条款,并采用概率上下文无关文法(PCFG)推断权利与义务以进行不兼容检测。实验表明,LiDetector 优于现有方法,条款识别精确率 93.28%,权利与义务推断准确率 91.09%,并能以 10.06% 假正率与 2.56% 假负率有效检测不兼容。此外,借助 LiDetector,我们对 1,846 个项目的大规模实证研究发现 72.91% 的项目正遭受许可证不兼容,包括 MIT 许可证与 Apache 许可证等流行许可证。我们从不同利益相关者视角总结教训,并将所有相关数据及复现包公开以促进后续研究。
引用
@article{arxiv.2204.10502,
title = {LiDetector: License Incompatibility Detection for Open Source Software},
author = {Sihan Xu and Ya Gao and Lingling Fan and Zheli Liu and Yang Liu and Hua Ji},
journal= {arXiv preprint arXiv:2204.10502},
year = {2022}
}