-
Notifications
You must be signed in to change notification settings - Fork 55
reproducible build error #1344
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
reproducible build error #1344
Conversation
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThis PR ensures deterministic Debian builds by introducing reproducible build parameters and streamlines plugin deployment by restricting install targets to QML-relevant files only. Flow diagram for reproducible build parameters in Debian packagingflowchart TD
A["Debian build process"] --> B["Apply reproducible build parameters"]
B --> C["Deterministic output"]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey there - I've reviewed your changes - here's some feedback:
- The PR description mentions adding reproducible build parameters, but I don’t see those changes in the diff—please include the intended build flag definitions.
- The FILES_MATCHING patterns only include qmldir, *.qmltypes, *.qml, and *.js; confirm that this doesn’t omit other runtime assets (e.g., images or translations) needed by the plugins.
- Since the install() invocations are duplicated across multiple CMakeLists, consider extracting them into a common macro or function to reduce repetition.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The PR description mentions adding reproducible build parameters, but I don’t see those changes in the diff—please include the intended build flag definitions.
- The FILES_MATCHING patterns only include qmldir, *.qmltypes, *.qml, and *.js; confirm that this doesn’t omit other runtime assets (e.g., images or translations) needed by the plugins.
- Since the install() invocations are duplicated across multiple CMakeLists, consider extracting them into a common macro or function to reduce repetition.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
|
TAG Bot New tag: 2.0.18 |
|
TAG Bot New tag: 2.0.19 |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: 18202781743, BLumia The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
1. Added CMAKE_SKIP_BUILD_RPATH=ON flag to enable reproducible builds 2. This flag prevents embedding build machine specific paths in binaries 3. Modified dh_auto_configure to include DEB_CMAKE_EXTRA_FLAGS 4. Ensures consistent binary output across different build environments Influence: 1. Test building the package on different machines to verify reproducibility 2. Compare binary checksums from different build environments 3. Verify that RPATH is not embedded in the compiled binaries 4. Test package installation and functionality after the change 5. Ensure build process completes successfully with the new flag feat: 添加可重复编译参数 1. 添加 CMAKE_SKIP_BUILD_RPATH=ON 标志以启用可重复构建 2. 该标志防止在二进制文件中嵌入特定于构建机器的路径 3. 修改 dh_auto_configure 以包含 DEB_CMAKE_EXTRA_FLAGS 4. 确保在不同构建环境中获得一致的二进制输出 Influence: 1. 在不同机器上测试软件包构建以验证可重复性 2. 比较来自不同构建环境的二进制校验和 3. 验证编译后的二进制文件中未嵌入 RPATH 4. 测试更改后的软件包安装和功能 5. 确保构建过程使用新标志后能成功完成
Changed the CMake installation directives for dock, notification center, and notification plugin modules to use FILES_MATCHING with specific patterns instead of installing entire directories. This prevents redundant files from being installed during repeated builds, which was causing compilation issues. The modification specifies that only QML-related files (qmldir, *.qmltypes, *.qml, *.js) should be installed from the build directories, rather than copying all files. This resolves the problem where unnecessary files were being repeatedly installed, leading to compilation conflicts and build inconsistencies. Influence: 1. Verify that dock panel still loads and functions correctly 2. Test notification center display and interaction 3. Check notification plugin behavior 4. Ensure all QML components are properly installed and accessible 5. Test repeated builds to confirm no installation conflicts occur fix: 优化插件安装以避免冗余文件 修改了dock、通知中心和通知插件模块的CMake安装指令,使用FILES_MATCHING和 特定模式替代安装整个目录。这防止了在重复构建期间安装冗余文件,该问题曾导 致编译问题。 此修改指定仅应从构建目录安装QML相关文件(qmldir、*.qmltypes、*.qml、 *.js),而不是复制所有文件。这解决了因重复安装不必要文件而导致的编译冲突 和构建不一致问题。 Influence: 1. 验证dock面板仍能正确加载和运行 2. 测试通知中心的显示和交互 3. 检查通知插件行为 4. 确保所有QML组件正确安装并可访问 5. 测试重复构建以确认没有安装冲突发生
|
/forcemerge |
|
This pr force merged! (status: blocked) |
deepin pr auto review我来分析一下这个git diff的内容,主要涉及构建系统的改进。以下是我的审查意见:
总体来说,这些改进是积极的,主要提高了构建系统的精确性和安全性。建议继续完善构建系统的文档,并考虑添加更多的错误检查和验证步骤。 |
Summary by Sourcery
Add reproducible build parameters and streamline plugin installation to include only necessary file types
New Features:
Enhancements:
qmldir,.qmltypes,.qml, and.jsin CMakeLists to avoid redundant files