Skip to content

fix(glycin): disable jpegxl bcond and remove heif/jxl loader sources#17654

Open
WithEnoughCoffee wants to merge 2 commits into
microsoft:4.0from
WithEnoughCoffee:fix/glycin-jpegxl-br
Open

fix(glycin): disable jpegxl bcond and remove heif/jxl loader sources#17654
WithEnoughCoffee wants to merge 2 commits into
microsoft:4.0from
WithEnoughCoffee:fix/glycin-jpegxl-br

Conversation

@WithEnoughCoffee

@WithEnoughCoffee WithEnoughCoffee commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Disables the jpegxl build conditional and removes glycin-heif/glycin-jxl loader source directories in %prep to prevent unresolvable BuildRequires.

Problem

Koji nightly build of glycin (task 2584524) fails at buildroot resolution (mock exit 30) due to two missing providers:

  1. pkgconfig(libjxl) >= 0.11.0 — the jpegxl bcond was enabled (since %rhel is undefined in AZL4)
  2. crate(libheif-rs)%cargo_generate_buildrequires -a scans all workspace members including glycin-heif, emitting Rust crate deps even though the meson build skips that loader

Fix

  • Add "jpegxl" to build.without (alongside existing "heif") to gate the C-level BR
  • Add overlay to remove glycin-heif and glycin-jxl loader source dirs in %prep, preventing cargo from generating crate BRs (same pattern as existing glycin-raw/glycin-jpeg2000 removals)

Validation

Build verified locally: glycin-2.0.8-5.azl4 builds successfully. Output RPMs contain only glycin-image-rs and glycin-svg loaders with no heif/jxl dependencies.

Split out of AB#20330.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the Azure Linux glycin component to avoid Koji buildroot resolution failures by disabling the jpegxl bcond (in addition to heif) and ensuring Cargo buildrequires generation does not scan the glycin-heif / glycin-jxl workspace members.

Changes:

  • Disable jpegxl via build.without and propagate the resulting _without_jpegxl macro into the rendered spec.
  • Remove glycin-heif and glycin-jxl loader source directories in %prep when the corresponding bconds are disabled, preventing unresolvable crate() BuildRequires.
  • Update rendered spec + lock fingerprint to match the component configuration changes.

Review notes (by severity):

  • Errors (must-fix): The rendered spec changelog includes an rpmautospec “Local changes (uncommitted)” entry, which is a strong indicator the spec was rendered from a dirty tree and will likely fail the rendered-specs drift check in CI.
  • Warnings (should-fix): The overlay uses spec-search-replace to inject new %prep lines; a spec-append-lines overlay would be more resilient to upstream changes. Also consider making the new removals tolerant of missing dirs (rm -rf / guard) to avoid future build breaks if upstream layout changes.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.

File Description
base/comps/glycin/glycin.comp.toml Adds jpegxl to build.without and injects a %prep overlay to remove heif/jxl loader directories.
locks/glycin.lock Updates the component input fingerprint after config/overlay changes.
specs/g/glycin/glycin.azl.macros Generated macros now include %_without_jpegxl 1 reflecting build.without.
specs/g/glycin/glycin.spec Rendered spec reflects the new %prep removals and updated rpmautospec release/changelog.

Comment thread specs/g/glycin/glycin.spec Outdated
Comment thread base/comps/glycin/glycin.comp.toml
Comment thread specs/g/glycin/glycin.spec Outdated
The glycin nightly build (Koji task 2584524) failed at buildroot
resolution because:
1. jpegxl bcond was enabled, pulling pkgconfig(libjxl) — not in AZL4
2. %cargo_generate_buildrequires scanned all workspace members including
   glycin-heif, emitting crate(libheif-rs) deps — also unavailable

Fix: add jpegxl to build.without list, and add an overlay to remove
glycin-heif and glycin-jxl loader source dirs in %prep (same pattern
as the existing glycin-raw/glycin-jpeg2000 removals). This prevents
both the C-level and Rust crate-level BRs from being generated.

Build verified: glycin-2.0.8-5.azl4 builds successfully with only
glycin-image-rs and glycin-svg loaders. No heif/jxl deps in output RPMs.

Ref: AB#20330

@reubeno reubeno left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Changes generally look good, just 2 comments.

Comment thread base/comps/glycin/glycin.comp.toml Outdated
Comment thread base/comps/glycin/glycin.comp.toml Outdated
Move detailed context to PR description; remove closed work item reference.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@WithEnoughCoffee WithEnoughCoffee requested a review from a team as a code owner June 17, 2026 21:22

@binujp binujp left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The change looks fine. Saw that you may not have done a koji build. Can you please do one to verify build closure holds? I will go ahead and approve this now.

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.

4 participants