Files
Shuery 2cbcaaee48 chore(license): 补 Apache License 2.0
许可证正文**逐字采用** ASF 的 LICENSE-2.0.txt,只把 APPENDIX 里的版权占位行填成
"Copyright 2026 Shuery" —— 正文一个字节都没改。

为此先下载规范文本再打补丁,而不是凭记忆抄一遍:许可证抄错一个词就不再是那个许可证了。
校验方式是逐行对比本仓 LICENSE 与规范文本,结果只差版权那一行(规范文本 11358 字节、
SHA256 cfc7749b…;本仓 11337 字节,差额 21 字节正好等于两行文本的长度差)。

选 Apache-2.0 而非 MIT,主要差别在第 3 节的**明示专利授权**:贡献者授予专利许可,
而不只是版权许可。

同时:
  * README 的许可证章节从「尚未声明」改成实际条款摘要 + 徽章(License: Apache-2.0)
  * BakNRet.psd1 的 PrivateData.PSData 登记 LicenseUri 与 Copyright,Import-Module
    之后可直接读到许可信息
  * 不加 NOTICE:第 4(d) 节只在作品本身带 NOTICE 时才要求向下传递,而本仓库不分发第三方
    代码(Pester / PSScriptAnalyzer 只放在 .tools/ 供本地测试,既进 gitignore 也不进分发产物)
  * .scratch/ci-cd 的两份报告补了带日期的「后续更新」注记,关掉许可证合规的 L-1 与依赖
    安全扫描的 R-1,避免后来的人读到「主许可证未声明」这个已经过期的结论

验收:test.ps1 9/9 全绿(5.1 与 7);静态分析 80 条、0 Error(与改动前持平);
README 相对链接 0 失效、新增外部链接 2/2 返回 200;双宿主解析 psd1 零错、89 个导出不变。
2026-10-02 01:34:45 +08:00

4.4 KiB
Raw Permalink Blame History

许可证合规检查报告(license-compliance-checker)

Warning

免责声明:本报告由自动化工具基于仓库内的文件生成,仅为工程参考,不构成法律建议。 涉及对外分发、商业使用或二次许可时,请咨询法务。

  • 项目:BakNRet
  • 检查时间:2026-09-28
  • 主许可证:未声明 —— 仓库根目录不存在 LICENSE / LICENSE.md / LICENSE.txt

Note

后续更新(2026-10-02):L-1 已关闭。 仓库已补 LICENSE(Apache License 2.0,正文逐字采用 ASF 的 LICENSE-2.0.txt,仅把 APPENDIX 的版权占位行填成 Copyright 2026 Shuery), README 的许可证章节与 BakNRet/BakNRet.psd1 的 LicenseUri / Copyright 同步登记。 下方「主许可证:未声明」与 L-1 条目保留为检查当时的发现,不再代表当前状态。

1. 依赖与组件许可证清单

license-checker / pip-licenses / go-licenses 等工具不适用(本项目无包管理器依赖)。 下列清单通过读取 .tools/modules 下的模块清单与许可证文件、以及七项外部组件的官方许可条款得出。

组件 版本 许可证 来源依据 与主许可证关系
BakNRet(本项目) 1.0.0(模块清单) 未声明 无 LICENSE 文件 —
Pester 5.9.1 Apache-2.0 Pester.psd1 的 Copyright + LicenseUri 测试期工具,未声明主许可证时无冲突可判
PSScriptAnalyzer 1.25.0 MIT .tools/modules/PSScriptAnalyzer/1.25.0/LICENSE 同上
Newtonsoft.Json(PSScriptAnalyzer 内置依赖) 随包 MIT 同目录 ThirdPartyNotices.txt 同上
7-Zip 26.03 LGPL-2.1-or-later + BSD-3-Clause + unRAR 限制 上游许可(用户自备,不随本仓库分发) 未分发,仅本地调用
PowerShell 5.1 / 7.7 MIT(宿主环境) — 未分发
.NET 运行时 — MIT(宿主环境) — 未分发

2. 许可证分布

MIT                 ████████████████████  3 项(PSScriptAnalyzer、Newtonsoft.Json、PowerShell/.NET)
Apache-2.0          ███████               1 项(Pester)
LGPL + BSD + unRAR  ███████               1 项(7-Zip)
未声明              ███████               1 项(本项目自身)  <-- 需要处理

全部第三方许可证均为宽松型(MIT / Apache-2.0 / BSD),无 copyleft 传染风险。

3. 冲突与注意事项

ID 级别 对象 说明 建议
L-1 ❌ 需处理 本项目自身 没有 LICENSE 文件 = 默认「保留所有权利」。他人无权复制、修改、分发;GitHub 上也会显示为无许可证项目 明确选一个:想宽松就 MIT,想带专利授权就 Apache-2.0
L-2 ⚠️ 需注意 7-Zip 的 unRAR 限制 7-Zip 许可证禁止用其 unRAR 代码还原 RAR 压缩算法。本项目只用 7z 解压 / 压缩,不实现 RAR 压缩 无需动作;当前用法不触发该限制
L-3 ⚠️ 需注意 Pester 5.9.1 的版权年份 模块清单里 Copyright 写的是 (c) 2026 by Pester Team(上游清单原文) 无需动作;仅记录,勿在文档中改写上游声明
L-4 ✅ 兼容 PSScriptAnalyzer(MIT)+ Newtonsoft.Json(MIT) MIT 与 MIT/Apache 混合无冲突 仅在本仓库内作为测试工具使用,未再分发

4. 合规建议

  1. 先补主许可证(L-1)。这是本仓库唯一的合规缺口,且成本最低。
  2. .tools/ 下的模块不要提交进版本库(已 gitignore)——它们是第三方代码, 提交会牵出「再分发」与版权声明保留义务。
  3. 若将来把 BakNRet 公开发布,请在 README / 发布产物里保留 7-Zip 的许可与免责声明引用; 当前仓库并未捆绑 7-Zip 二进制,所以现在无需附带其许可证全文。
  4. 若决定以 MIT 发布,注意 MIT 要求保留版权与许可声明:README「致谢」一节已引用上游项目, 可再补一份 THIRD-PARTY-NOTICES.md 收纳 Pester / PSScriptAnalyzer 的声明(可选)。

免责声明(重申):以上判断基于文件名、模块清单字段与上游公开条款的自动比对, 存在识别错误的可能;不构成法律建议。