Skip to content

fix(libavif and deps): remove libavif and remove dependency from all dependent packages#17311

Draft
binujp wants to merge 1 commit into
4.0from
bphilip/libavif-elide
Draft

fix(libavif and deps): remove libavif and remove dependency from all dependent packages#17311
binujp wants to merge 1 commit 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,
ahead of libavif removal 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 (gd, gd-devel, gd-progs)

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

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 (including opencv-imgcodecs)

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 (webkit2gtk4.1, webkitgtk6.0, all -devel and -doc)

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

Not applicable

  • libheif: Not a component in AZL4
  • ffmpeg / libavcodec-free: Already removed from distro
  • gstreamer1-plugins-bad-free: No avif dependency in spec

All 6 packages built successfully and verified to have no libavif
dependency in the resulting RPMs.

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
…dependent packages

Remove libavif component from the distro and disable avif/libavif
support in all packages that depend on it.

## 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 (gd, gd-devel, gd-progs)

### 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

### 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 (including opencv-imgcodecs)

### 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 (webkit2gtk4.1, webkitgtk6.0, all -devel and -doc)

### 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`
- Removed lock file `locks/libavif.lock`
- Removed rendered specs `specs/l/libavif/`

## Not applicable
- libheif: Not a component in AZL4
- ffmpeg / libavcodec-free: Already removed from distro
- gstreamer1-plugins-bad-free: No avif dependency in spec

All 6 packages built successfully and verified to have no libavif
dependency in the resulting RPMs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@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.

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