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 化 |