Skip to content

chore(debian): exclude platform wallpapers from dh_install#57

Merged
mhduiy merged 1 commit into
linuxdeepin:masterfrom
mhduiy:platform
Jun 1, 2026
Merged

chore(debian): exclude platform wallpapers from dh_install#57
mhduiy merged 1 commit into
linuxdeepin:masterfrom
mhduiy:platform

Conversation

@mhduiy

@mhduiy mhduiy commented Jun 1, 2026

Copy link
Copy Markdown
Contributor
  1. Added override_dh_install to skip platform-specific wallpaper directories

Log: Exclude deepin/platform and deepin-livewallpapers/platform from install

chore(debian): 在 dh_install 中排除 platform 壁纸目录

  1. 新增 override_dh_install 以跳过平台特定的壁纸目录

Log: 安装时排除 deepin/platform 和 deepin-livewallpapers/platform 目录

1. Added override_dh_install to skip platform-specific wallpaper directories

Log: Exclude deepin/platform and deepin-livewallpapers/platform from install

chore(debian): 在 dh_install 中排除 platform 壁纸目录

1. 新增 override_dh_install 以跳过平台特定的壁纸目录

Log: 安装时排除 deepin/platform 和 deepin-livewallpapers/platform 目录
@deepin-ci-robot

Copy link
Copy Markdown

deepin pr auto review

你好!我是CodeGeeX。我已仔细审查了你提供的 debian/rules 文件的 git diff。

这个修改的主要目的是在 Debian 打包的 dh_install 阶段,排除 deepin/platformdeepin-livewallpapers/platform 这两个目录。

以下是我对这段代码的详细审查意见:

1. 语法逻辑

  • 语法正确:在 Debian debhelper 构建系统中,使用 override_dh_install: 来重写默认的 dh_install 行为是标准做法。--exclude 参数的语法也是正确的,支持多次使用以排除多个路径。
  • 潜在逻辑风险(通配符匹配)--exclude 参数执行的是子串匹配或基于文件列表的过滤。这意味着它不仅会匹配 usr/lib/deepin/platform,如果存在 usr/share/deepin/platform 也会被一并排除。此外,如果路径中包含类似 not-deepin/platform 的字符串,也会被误排除。虽然在实际的 Deepin 相关项目中这种误伤概率极低,但逻辑上需保持警惕。

2. 代码质量

  • 格式规范:Makefile(包括 debian/rules)对空白字符极其敏感。override_dh_install: 下面的命令行必须且只能以 Tab 键开头,不能是空格。从 diff 记录来看,你使用了 Tab,这是符合规范的。
  • 可读性:将两个 --exclude 写在同一行,当排除项较少时是完全可以接受的。但如果未来排除项增多,单行命令会变得过长且难以维护。

3. 代码性能

  • 性能影响微乎其微dh_install--exclude 机制仅仅是在安装拷贝文件时跳过匹配的文件,不涉及复杂的计算,对编译和打包性能几乎没有负面影响。

4. 代码安全

  • 无直接安全漏洞:这段代码仅用于构建阶段的文件剔除,不涉及运行时的特权提升、网络通信或敏感数据处理,因此没有直接的安全风险。
  • 供应链构建安全:需要确保排除这些平台插件是有意为之。如果这些被排除的库是某些核心功能的依赖,将其排除可能导致打包出的二进制文件在运行时缺失依赖而崩溃,这属于构建逻辑的完整性问题。

💡 改进建议

1. 提升可读性与可维护性(换行与续行符)
如果未来还需要排除更多目录,建议使用反斜杠 \ 将参数换行,这样 git diff 时也更清晰:

override_dh_install:
	dh_install \
		--exclude=deepin/platform \
		--exclude=deepin-livewallpapers/platform

2. 考虑更精确的路径匹配(如果需要)
如前所述,--exclude 是模糊匹配。如果你只想排除特定前缀路径下的文件(例如仅在 usr/lib/ 下排除),--exclude 可能做不到。此时可以考虑在 override_dh_install 中执行完默认安装后,使用 rm -rf 显式删除:

override_dh_install:
	dh_install
	# 显式删除特定目录,更加精确且意图明确
	rm -rf debian/your-package-name/usr/lib/deepin/platform
	rm -rf debian/your-package-name/usr/lib/deepin-livewallpapers/platform

注意:使用 rm -rf 时,请务必将 your-package-name 替换为你实际的 debian 包名,并确保路径正确。

3. 添加注释说明意图
在 Debian 打包规则中,排除特定文件往往是为了解决某些特定的打包合规性问题(例如 Deepin 的某些非自由组件或冲突依赖)。建议在代码上方添加注释说明为什么要排除,以免后续维护者误删:

# 排除 deepin 相关平台插件,因为 [填写排除原因,如:许可证问题/依赖缺失等]
override_dh_install:
	dh_install --exclude=deepin/platform --exclude=deepin-livewallpapers/platform

总结:当前的修改在语法和逻辑上是正确且可用的,主要建议在于增加注释说明排除原因,并在未来排除项增多时注意换行排版

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: 18202781743, mhduiy

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

@mhduiy mhduiy merged commit a1b9b98 into linuxdeepin:master Jun 1, 2026
15 of 17 checks passed
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.

3 participants