Skip to content

feat: add license information for Excel libraries and test data#54

Closed
pppanghu77 wants to merge 1 commit intolinuxdeepin:develop/20260424from
pppanghu77:dev
Closed

feat: add license information for Excel libraries and test data#54
pppanghu77 wants to merge 1 commit intolinuxdeepin:develop/20260424from
pppanghu77:dev

Conversation

@pppanghu77
Copy link
Copy Markdown
Contributor

  • Add MIT license information for xlsxio library files
  • Add BSD-2-Clause license information for libxls library files
  • Add CC0-1.0 license for test data files
  • Update build dependencies to include libexpat1-dev and libminizip-dev Log: feat: add license information for Excel libraries and test data Task: https://pms.uniontech.com/task-view-388905.html

- Add MIT license information for xlsxio library files
- Add BSD-2-Clause license information for libxls library files
- Add CC0-1.0 license for test data files
- Update build dependencies to include libexpat1-dev and libminizip-dev
Log: feat: add license information for Excel libraries and test data
Task: https://pms.uniontech.com/task-view-388905.html
@deepin-ci-robot
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: pppanghu77

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@github-actions
Copy link
Copy Markdown

  • 检测到debian目录文件有变更: debian/control

@deepin-ci-robot
Copy link
Copy Markdown

deepin pr auto review

这是一,以下是对该 git diff 的审查意见,主要针对语法逻辑、代码质量、代码性能和代码安全四个方面。

1. 总体评估

这次变更主要是为了引入两个新的第三方库(xlsxiolibxls)以支持 Excel 文件的处理,并相应地更新了许可证声明(.reuse/dep5)、添加了 BSD-2-Clause 许可证文件,以及更新了 Debian 构建依赖(debian/control)。整体逻辑清晰,符合开源项目引入新依赖的标准流程。

2. 详细审查意见

A. .reuse/dep5 文件变更

  • 语法逻辑

    • 版权年份xlsxio 的版权声明为 2016,而 libxls 的版权年份跨度很大(2004-2018)。建议确认这些年份是否准确,特别是对于 xlsxio,如果该库在 2016 年之后仍有更新,建议更新年份范围(例如 2016-2023),以确保版权声明的时效性。
    • 版权所有者libxls 的版权所有者列表很长,包含了多个贡献者。这是正确的做法,因为 BSD 协议通常要求保留所有贡献者的版权声明。
  • 代码质量

    • 格式:格式规范,符合 DEP5 格式要求。
    • 完整性:新增的条目清晰地指明了文件路径和许可证类型。
    • 测试数据:为 tests/file/* 添加了 CC0-1.0(公共领域)声明,这是处理测试数据的最佳实践,避免了测试数据受版权保护带来的法律复杂性。
  • 代码安全

    • 许可证合规性xlsxio 使用 MIT 许可证,libxls 使用 BSD-2-Clause 许可证。这两种许可证都是宽松的,与项目现有的 MIT 许可证兼容。引入它们不会引入法律风险。
    • 空白版权tests/file/* 的版权声明为 None,配合 CC0-1.0 是合法的,表示放弃版权。

B. LICENSES/BSD-2-Clause.txt 文件新增

  • 语法逻辑

    • 模板占位符:新添加的许可证文本中包含 <year><copyright holder>。这是标准的许可证模板文本。虽然这通常用于项目自身的声明,但在 LICENSES/ 目录下存放的是许可证的标准文本。根据 REUSE 规范,这里的文本应该是通用的模板,因此保留占位符是符合规范的。
  • 代码质量

    • 文本完整性:文本内容完整,准确对应 BSD-2-Clause 协议。

C. debian/control 文件变更

  • 语法逻辑

    • 依赖项:新增了 libexpat1-devlibminizip-dev
      • libexpat1-dev:通常用于 XML 解析。xlsxio 依赖 expat 是合理的,因为 XLSX 文件本质上是 XML 的压缩包。
      • libminizip-dev:用于 ZIP 压缩/解压。XLSX 文件是 ZIP 格式,因此引入 minizip 也是合理的。
    • 逻辑关联:依赖的添加与引入的第三方库(xlsxiolibxls)的功能需求相匹配。
  • 代码性能

    • 库的选择
      • libexpat 是一个流式 XML 解析器,以速度快和内存占用低著称,适合处理可能较大的 Excel 文件。
      • minizipzlib 的一个轻量级封装,性能表现良好。
      • 这两个库的选择在性能上是合理的。
  • 代码安全

    • 已知漏洞:引入新的二进制依赖会增加潜在的安全风险。
      • libexpat:历史上曾出现过 XML 外部实体(XXE)和缓冲区溢出漏洞。建议确保 Debian 源中提供的版本是较新的,或者确认构建环境中的版本已修复了已知的高危漏洞(如 CVE-2022-25235, CVE-2022-25236 等)。
      • minizip:同样存在过一些与 ZIP 文件解析相关的内存安全漏洞(如著名的 "zip slip" 或缓冲区溢出)。
    • 建议:在引入这些库时,建议在代码层面(调用这些库的地方)添加对文件大小的限制和异常处理,防止解析恶意构造的 Excel/ZIP 文件导致拒绝服务(DoS)或代码执行。

3. 总结与改进建议

  1. 版权年份更新:建议核实 3rdparty/libs/fileext/excel/xlsxio/* 的版权年份,如果该库有持续维护,建议更新年份范围。
  2. 安全加固:由于引入了处理 XML 和 ZIP 文件的库,建议在业务逻辑层增加对上传/解析文件大小的校验,并确保捕获所有可能的解析异常,防止崩溃或漏洞利用。
  3. 版本锁定(可选):如果项目对安全性要求极高,建议在 debian/control 或构建脚本中指定所需依赖的最低版本号(例如 libexpat1-dev (>= 2.4.1)),以确保构建环境使用的是包含安全补丁的版本。

除此之外,该变更符合规范,逻辑正确,可以合并。

@pppanghu77 pppanghu77 closed this Apr 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants