检测项目license/copyright

1 阅读1分钟

scancode 静态扫描

apt install -y python3-dev gcc g++ make libffi-dev libssl-dev
# 创建虚拟环境(避免污染系统) 
python3 -m venv scancode-venv 
# 激活环境 
source scancode-venv/bin/activate
pip install --upgrade pip setuptools wheel
# 安装 scancode 
pip install --default-timeout=1000 scancode-toolkit


# 扫描当前目录
source ./scancode-venv/bin/activate
./scancode -clip --license --copyright --json result.json .
./scancode -l -c --json-pp result.json /user_code/debug/ --processes 4
scancode -l -c --json-pp result.json /user_code/debug/ --processes 4 --ignore "*.o" --ignore "*.tar.gz" --ignore "*.tar" --ignore "*/.git/*"

licensecheck

apt install -y licensecheck licensecheck -r --copyright . > /tmp/license_copyright.txt

协议宽松程度商用修改后是否必须开源必须保留版权声明必须声明修改特点
MIT最宽松✅ 允许❌ 不需要✅ 必须❌ 不需要极简,随便用,只留署名
BSD 3-Clause宽松✅ 允许❌ 不需要✅ 必须❌ 不需要不能用作者名字做宣传
Apache 2.0中等✅ 允许❌ 不需要✅ 必须✅ 需要专利授权,企业最常用
MPL 2.0中等✅ 允许⚠️ 修改过的文件要开源✅ 必须✅ 需要文件级 Copyleft
LGPL中等偏严✅ 允许⚠️ 仅修改库时需开源✅ 必须✅ 需要动态链接可闭源,静态链接需开源
GPLv2✅ 允许必须开源✅ 必须✅ 需要强传染,整个衍生软件要开源
GPLv3最严✅ 允许必须开源✅ 必须✅ 需要比 v2 多反专利锁、反 Tivo 化