Skip to content

fix(libavif): remove libavif and disable avif support in all dependent packages#17311

Merged
reubeno merged 8 commits into
4.0from
bphilip/libavif-elide
May 20, 2026
Merged

fix(libavif): remove libavif and disable avif support in all dependent packages#17311
reubeno merged 8 commits into
4.0from
bphilip/libavif-elide

Conversation

@binujp
Copy link
Copy Markdown
Contributor

@binujp binujp commented May 16, 2026

Disable avif/libavif support in all packages that depend on it,
then remove the libavif component from the distro.

Packages updated

efl

  • Control: %bcond avif 1 — bcond controls BuildRequires + meson -Devas-loaders-disabler
  • Fix: build.without = ["avif"]
  • Created: base/comps/efl/efl.comp.toml (moved from inline)
  • Result: No avif dependency in RPMs ✅

gd

  • Control: %bcond_without avif (Fedora) / %bcond_with avif (RHEL) — bcond controls BR + Requires
  • Fix: build.without = ["avif"] added to existing comp.toml
  • Result: No avif dependency in RPMs ✅

SDL2_image

  • Control: Unconditional BuildRequires: libavif-devel; --disable-avif-shared in configure
  • Fix: spec-remove-tag to drop BR + spec-search-replace to change --disable-avif-shared to --disable-avif
  • Created: base/comps/SDL2_image/SDL2_image.comp.toml (moved from inline)
  • Result: No avif dependency in RPMs ✅

SDL3_image

  • Control: Unconditional BuildRequires: cmake(libavif) + cmake flags SDLIMAGE_AVIF=ON
  • Fix: spec-remove-tag to drop BR + spec-search-replace to set AVIF cmake flags OFF
  • Pin: Pinned to Fedora f43 commit 6b9cdf9 (version 3.4.4) which adds BuildRequires: libpng-static, fixing a pre-existing build failure caused by libpng cmake config referencing libpng16.a
  • Created: base/comps/SDL3_image/SDL3_image.comp.toml (moved from inline)
  • Result: No avif dependency in RPMs ✅

opencv

  • Control: Unconditional BuildRequires: pkgconfig(libavif) — no cmake flag for avif in spec
  • Fix: spec-remove-tag to drop BR + spec-search-replace to add -DWITH_AVIF=OFF cmake flag
  • Extended: base/comps/opencv/opencv.comp.toml
  • Result: No avif dependency in RPMs ✅

webkitgtk

  • Control: Unconditional BuildRequires: pkgconfig(libavif) — cmake has -DUSE_AVIF option
  • Fix: spec-remove-tag to drop BR + spec-search-replace to add -DUSE_AVIF=OFF to cmake
  • Created: base/comps/webkitgtk/webkitgtk.comp.toml (moved from inline)
  • Result: No avif dependency in RPMs ✅

kf6-kimageformats

  • Control: Unconditional BuildRequires: cmake(libavif) — auto-discovers avif via cmake
  • Fix: spec-remove-tag to drop cmake(libavif) BR
  • Extended: base/comps/kf6-kimageformats/kf6-kimageformats.comp.toml
  • Result: No avif dependency in RPMs ✅

libavif removal

  • Removed from base/comps/components.toml
  • Removed from base/comps/components-publish-channels.toml
  • Deleted lock file and rendered specs

Build verification

All 7 packages built successfully and verified to have no libavif dependency in resulting RPMs ✅

Not applicable

  • libheif: Not a component in AZL4
  • ffmpeg / libavcodec-free: Already removed from distro
  • gstreamer1-plugins-bad-free: No avif dependency in spec (svt-av1 dep handled in separate PR)

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

@binujp binujp changed the base branch from tomls/base/main to 4.0 May 16, 2026 01:22
@binujp binujp force-pushed the bphilip/libavif-elide branch 3 times, most recently from ff401bc to 498aafe Compare May 16, 2026 01:30
@binujp binujp changed the title fix(libavif deps): disable libavif dependency in all dependent packages fix(libavif and deps): remove libavif and remove dependency from all dependent packages May 16, 2026
@binujp binujp marked this pull request as ready for review May 16, 2026 01:33
Copilot AI review requested due to automatic review settings May 16, 2026 01:33
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Removes the libavif component from Azure Linux and surgically disables avif support in every dependent component (efl, gd, SDL2_image, opencv, webkitgtk, kf6-kimageformats) via component overlays and build.without toggles, regenerating the affected rendered specs and locks.

Changes:

  • Delete libavif component (lock, rendered spec, sources, components.toml entry, publish-channels entry).
  • Add/extend .comp.toml files for the six dependents to drop libavif BuildRequires and force the avif knob off (bcond build.without, cmake/configure flag overlays).
  • Re-render specs + refresh locks (and generate .azl.macros for the components newly using build.without).

Reviewed changes

Copilot reviewed 18 out of 25 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
base/comps/components.toml Drops inline entries for libavif, efl, SDL2_image, webkitgtk (now have dedicated comp files).
base/comps/components-publish-channels.toml Removes libavif from publish channel list.
base/comps/efl/efl.comp.toml New dedicated comp; build.without = ["avif"].
base/comps/gd/gd.comp.toml Adds build.without = ["avif"] and explicit Release bump (manual release).
base/comps/SDL2_image/SDL2_image.comp.toml New: removes BR and switches --disable-avif-shared--disable-avif.
base/comps/opencv/opencv.comp.toml Adds avif BR removal + %cmake regex injection of -DWITH_AVIF=OFF \.
base/comps/webkitgtk/webkitgtk.comp.toml New: removes BR + injects -DUSE_AVIF=OFF into both %cmake invocations (missing line continuation).
base/comps/kf6-kimageformats/kf6-kimageformats.comp.toml Removes cmake(libavif) BR.
specs/* and locks/* Re-rendered specs, generated .azl.macros, refreshed input fingerprints.
specs/l/libavif/*, locks/libavif.lock Removed component artifacts.

Comment thread base/comps/webkitgtk/webkitgtk.comp.toml Outdated
Comment thread base/comps/gd/gd.comp.toml
Copy link
Copy Markdown
Collaborator

@christopherco christopherco left a comment

Choose a reason for hiding this comment

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

SDL3_image will also fail to build because it has a BR on cmake(libavif)

Comment thread specs/w/webkitgtk/webkitgtk.spec Outdated
@binujp binujp force-pushed the bphilip/libavif-elide branch 2 times, most recently from e0e2ba1 to f9cbbcd Compare May 17, 2026 02:59
@binujp binujp marked this pull request as draft May 17, 2026 03:20
@binujp binujp force-pushed the bphilip/libavif-elide branch from f9cbbcd to fe3862a Compare May 17, 2026 03:42
@binujp
Copy link
Copy Markdown
Contributor Author

binujp commented May 17, 2026

Interesting that the SDL3_image dependency was not found by any script. A rpm -qR or spec grep clearly shows it, but not a dnf repoquery. Fixed it, added dependency removal overlays to SDL3_image.

@binujp binujp force-pushed the bphilip/libavif-elide branch from fe3862a to 696d86c Compare May 19, 2026 01:49
@binujp binujp changed the title fix(libavif and deps): remove libavif and remove dependency from all dependent packages fix(libavif): remove libavif and disable avif support in all dependent packages May 19, 2026
@binujp binujp force-pushed the bphilip/libavif-elide branch from 696d86c to 84e6260 Compare May 19, 2026 04:48
@binujp binujp requested review from christopherco and Copilot May 19, 2026 04:51
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 21 out of 29 changed files in this pull request and generated 1 comment.

Comment thread base/comps/components-publish-channels.toml
@binujp binujp marked this pull request as ready for review May 19, 2026 15:40
@binujp binujp force-pushed the bphilip/libavif-elide branch from 84e6260 to d53a1ba Compare May 19, 2026 15:46
@binujp binujp requested a review from Copilot May 19, 2026 15:47
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 21 out of 29 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

specs/l/libavif/libavif.spec:1

  • The libavif component definition at base/comps/libavif/libavif.comp.toml has not been deleted by this PR. Only the rendered spec (specs/l/libavif/libavif.spec, sources) and the lock file (locks/libavif.lock) are removed, but the component is still defined via [components.libavif] in base/comps/libavif/libavif.comp.toml (picked up by components.toml's includes = ["**/*.comp.toml", ...]). As a result, the component remains active but has no rendered spec/lock, which will cause CI drift (Check Rendered Specs / Update Locks) and leaves stale overlays referencing dav1d. The whole base/comps/libavif/ directory (including libavif.comp.toml) must also be removed to fully retire the component.

@binujp binujp force-pushed the bphilip/libavif-elide branch 2 times, most recently from 60a0aaa to 4e90556 Compare May 19, 2026 22:57
@binujp binujp requested a review from Copilot May 19, 2026 23:22
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

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

Comment thread base/comps/components.toml
Comment thread base/comps/opencv/opencv.comp.toml
Comment thread base/comps/SDL3_image/SDL3_image.comp.toml
Comment thread specs/s/SDL3_image/SDL3_image.spec
binujp and others added 8 commits May 20, 2026 00:43
Add avif to build.without to disable AVIF image loader support.
AZL does not ship libavif.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add avif to build.without and bump Release to 20. AZL does not ship
libavif.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove libavif-devel BuildRequires and change --disable-avif-shared to
--disable-avif. AZL does not ship libavif.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Pin SDL3_image to Fedora f43 commit 6b9cdf9 which includes
BuildRequires: libpng-static, fixing the pre-existing build failure
caused by libpng's cmake config referencing libpng16.a.

Disable avif support via overlays (remove cmake(libavif) BR, set
SDLIMAGE_AVIF flags OFF).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove pkgconfig(libavif) BuildRequires and add -DWITH_AVIF=OFF cmake
flag. AZL does not ship libavif.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove pkgconfig(libavif) BuildRequires and add -DUSE_AVIF=OFF cmake
flag to both webkit2gtk4.1 and webkitgtk6.0 builds. AZL does not ship
libavif.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove cmake(libavif) BuildRequires. AZL does not ship libavif.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove libavif package from Azure Linux. All reverse dependencies have
been updated to build without libavif support.

Removed:
- components.toml entry
- components-publish-channels.toml entry
- locks/libavif.lock
- specs/l/libavif/ (rendered spec and sources)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 22 out of 30 changed files in this pull request and generated 1 comment.

@@ -1,3 +1,14 @@
[components.gd]
# Release: 19%{?prever}%{?short}%{?dist}
@reubeno reubeno dismissed christopherco’s stale review May 20, 2026 05:12

Feedback has been addressed.

@reubeno reubeno merged commit 04f76fb into 4.0 May 20, 2026
15 checks passed
@reubeno reubeno deleted the bphilip/libavif-elide branch May 20, 2026 05:12
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