Skip to content

refactor(packaging): migrate dependencies to buildext - #434

Merged
deepin-bot[bot] merged 1 commit into
linuxdeepin:release/snipefrom
re2zero:refactor/linglong-buildext-migration
Oct 29, 2026
Merged

deepin-bot[bot] merged 1 commit into
linuxdeepin:release/snipefrom
re2zero:refactor/linglong-buildext-migration

Conversation

@re2zero

@re2zero re2zero commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Remove the legacy manual install_dep / deploy_dep handling from the Linglong build. Build-time and runtime dependencies are now declared in buildext.apt and resolved by Linyaps.

Changes

  • Drop the install_dep / deploy_dep calls and .install generation logic from linglong.yaml.
  • Delete the obsolete install_dep and deploy_dep scripts.
  • Adjust buildext.apt.build_depends / depends based on debian/control, base/runtime package lists, and actual usage evidence.

Dependency Classification

build_depends (missing from base/runtime, with usage evidence):

  • libdjvulibre-dev — linked via -ldjvulibre in .pro
  • libicu-dev — ICU support
  • liblcms2-dev — color management
  • libopenjp2-7-dev — JPEG2000 support
  • libchardet-dev — #include <chardet.h> in bundled deepin-pdfium
  • libkf6globalaccel-dev — -lKF6GlobalAccel in .pro
  • libkf6i18n-dev — -lKF6I18n in .pro

depends (runtime, missing from base/runtime):

  • pandoc — runtime executable
  • libdjvulibre21, libchardet1, libkf6globalaccel6, libkf6i18n6

Excluded (already in base/runtime or no usage evidence):

  • Qt6, DTK6, libtiff, libjpeg, libpng, zlib, libfreetype, pkg-config, libxkbcommon — already in runtime
  • libgxps-dev / libcairo2-dev — XPS support is disabled by default in the qmake build (requires CONFIG+=xps_support); no usage evidence in the active build
  • libspectre-dev — no usage evidence in source code or build system

Validation

  • YAML parses successfully (python3 -c 'import yaml; yaml.safe_load(open("linglong.yaml"))')
  • git diff --check passes (no whitespace errors)
  • No references to install_dep or deploy_dep remain in linglong.yaml
  • ll-builder build: dependencies resolved successfully via buildext.apt; all build_depends packages installed; compilation completed successfully. The build fails at the final linking stage due to a pre-existing runtime layer issue (libQt6WaylandClient.so.6 has an undefined reference to a Qt6 private API). This failure is not caused by this migration — it reproduces identically with the original linglong.yaml (verified by testing the unmodified code).

Notes

  • No application code or manual assets are changed.
  • No debian packaging rules are changed.

Multica issue: V-7089

Summary by Sourcery

Replace manual dependency and deployment handling with declarative buildext.apt dependency resolution for the Linglong package.

Enhancements:

  • Migrate Linglong build-time and runtime dependency declaration to buildext.apt, covering required development libraries, runtime libraries, and pandoc.

Build:

  • Remove legacy manual dependency installation and generated install-manifest handling from the Linglong build.

Chores:

  • Delete the obsolete install_dep and deploy_dep scripts.

1. Remove the manual install_dep/deploy_dep dependency handling from the Linglong build.
2. Declare the required build and runtime dependencies in buildext.apt.
3. Delete the obsolete install_dep and deploy_dep scripts.

Log: Linglong dependencies are now resolved declaratively.

Influence:
1. Verify ll-builder can parse and build the project with buildext.apt.
2. Confirm the application still starts and its runtime libraries are present.
3. Confirm no build script still references install_dep or deploy_dep.

refactor(packaging): 将依赖迁移到 buildext

1. 移除 Linglong 构建中的 install_dep/deploy_dep 手动依赖处理。
2. 在 buildext.apt 中声明构建期和运行期依赖。
3. 删除不再使用的 install_dep 和 deploy_dep 脚本。

Log: Linglong 依赖改为声明式解析。

Influence:
1. 验证 ll-builder 能解析并构建项目。
2. 确认应用可正常启动且运行库齐全。
3. 确认构建脚本不再引用 install_dep 或 deploy_dep。

PMS:Task-396575   Multica: V-7089
@deepin-ci-robot

Copy link
Copy Markdown

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@sourcery-ai

sourcery-ai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

The Linglong packaging flow now delegates build-time and runtime dependency resolution to Linyaps through declarative buildext.apt entries, removing the legacy install/deploy scripts and generated manifest logic while leaving application code and Debian packaging unchanged. The build was validated through compilation and dependency resolution; the reported final-link failure is an existing runtime-layer Qt issue reproduced with the original configuration.

Flow diagram for the updated Linglong build

flowchart TD
    Start[Start Linglong build]
    Resolve[Resolve buildext.apt dependencies]
    Configure[Configure project with qmake]
    Compile[Compile and install application]
    Runtime[Declare runtime dependencies]
    Finish[Produce package]

    Start --> Resolve
    Resolve --> Configure
    Configure --> Compile
    Compile --> Runtime
    Runtime --> Finish
Loading

File-Level Changes

Change Details Files
Replace manual dependency installation and deployment with declarative buildext.apt configuration.
  • Remove apt download, install_dep invocation, and generated install-manifest handling from the build recipe.
  • Declare required development packages under build_depends.
  • Declare pandoc and required runtime libraries under depends.
  • Retain the existing build and install flow while simplifying logging.
linglong.yaml
Remove obsolete dependency-management scripts.
  • Delete the custom dependency download/installation script.
  • Delete the custom runtime dependency discovery and deployment script.
install_dep
deploy_dep

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: re2zero

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

@re2zero
re2zero marked this pull request as ready for review October 29, 2026 02:06

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

@re2zero

re2zero commented Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

/merge

@deepin-bot
deepin-bot Bot merged commit 54fb2a9 into linuxdeepin:release/snipe Oct 29, 2026
8 checks passed
@re2zero
re2zero deleted the refactor/linglong-buildext-migration branch October 29, 2026 06:59
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