Skip to content

Remove fdk-aac-free and the AAC codec from the distribution#17331

Merged
christopherco merged 4 commits into
4.0from
chrco/remove-fdk-aac-free
May 24, 2026
Merged

Remove fdk-aac-free and the AAC codec from the distribution#17331
christopherco merged 4 commits into
4.0from
chrco/remove-fdk-aac-free

Conversation

@christopherco
Copy link
Copy Markdown
Collaborator

@christopherco christopherco commented May 17, 2026

Summary

Removes the fdk-aac-free component from Azure Linux 4.0 and detaches its three remaining consumers.

Changes (one commit per consumer, then component removal)

  1. freerdp — drop pkgconfig(fdk-aac) BR; flip cmake flag to -DWITH_FDK_AAC=OFF.
  2. firefox — drop fdk-aac-free-devel BR; skip Fedora's mozilla-1667096.patch (Patch401) in %prep (the patch is fdk-aac-only — adds the --with-system-fdk-aac configure option and registers ff_libfdk_aac_decoder in ffvpx's codec table); drop the now-unrecognized ac_add_options --with-system-fdk-aac line from firefox-mozconfig; bump azl_release 4 → 5.
  3. pipewire — drop pkgconfig(fdk-aac) BR; add -D bluez5-codec-aac=disabled to the %meson invocation; bump azl_release. Other bluez5 codecs (SBC, lc3, ldac on non-s390x) remain enabled.
  4. fdk-aac-free — remove component definition, publish-channel entry, lock file, and rendered spec.

gnome-remote-desktop's BuildRequires: pkgconfig(fdk-aac) is inside %if %{with rdp} and AZL builds with build.without = ["rdp"], so it's already inactive — no fix needed.

Fixes: AB#19705

@christopherco christopherco force-pushed the chrco/remove-fdk-aac-free branch 7 times, most recently from 86c7be6 to f45e5ef Compare May 24, 2026 03:31
Upstream freerdp builds AAC audio support against fdk-aac via an unconditional BuildRequires: pkgconfig(fdk-aac) and a hardcoded -DWITH_FDK_AAC=ON cmake flag. AZL does not ship fdk-aac-free, so the BR is unsatisfiable.

Add two overlays: drop the BR with spec-remove-tag, and flip the cmake flag to -DWITH_FDK_AAC=OFF with spec-search-replace in %build. The FreeRDP client/server falls back to its other audio codecs (gsm, lame, opus when enabled, etc.); AAC backhaul is unavailable.
@christopherco christopherco force-pushed the chrco/remove-fdk-aac-free branch from f45e5ef to 1c71577 Compare May 24, 2026 03:42
Copy link
Copy Markdown
Member

@reubeno reubeno left a comment

Choose a reason for hiding this comment

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

Change seems pretty solid; one comment regarding search/replace anchoring...

Comment thread base/comps/pipewire/pipewire.comp.toml Outdated
@christopherco christopherco force-pushed the chrco/remove-fdk-aac-free branch from 1c71577 to 2c282bb Compare May 24, 2026 06:41
@christopherco christopherco marked this pull request as ready for review May 24, 2026 07:17
Copilot AI review requested due to automatic review settings May 24, 2026 07:17
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

This PR removes the fdk-aac-free AAC codec component from Azure Linux 4.0 and updates remaining consumer components to stop requiring/building against fdk-aac, ensuring the distro no longer depends on or ships that codec.

Changes:

  • Detach freerdp, firefox, and pipewire from fdk-aac / fdk-aac-free-devel by removing BuildRequires and disabling related build options/patches.
  • Bump AZL rebuild counters (azl_release) where needed to reflect AZL-only behavioral changes.
  • Remove the fdk-aac-free component from component lists, publish channels, locks, and rendered specs.

Reviewed changes

Copilot reviewed 13 out of 17 changed files in this pull request and generated no comments.

Show a summary per file
File Description
specs/p/pipewire/pipewire.spec Drops pkgconfig(fdk-aac) BR and disables the bluez5 AAC codec in the meson build flags.
specs/p/pipewire/pipewire.azl.macros Bumps azl_release for the AZL-only pipewire change.
base/comps/pipewire/pipewire.comp.toml Adds overlays to remove pkgconfig(fdk-aac) and inject -D bluez5-codec-aac=disabled; bumps azl_release.
locks/pipewire.lock Updates input fingerprint due to component config changes.
specs/f/freerdp/freerdp.spec Drops pkgconfig(fdk-aac) BR and disables WITH_FDK_AAC in the cmake invocation; release/changelog drift captured by render.
base/comps/freerdp/freerdp.comp.toml Adds overlays to remove the fdk-aac BR and flip -DWITH_FDK_AAC=OFF.
locks/freerdp.lock Updates input fingerprint due to component config changes.
specs/f/firefox/firefox.spec Drops fdk-aac-free-devel BR and skips Patch401 application in %prep.
specs/f/firefox/firefox.azl.macros Bumps azl_release for the AZL-only firefox change.
specs/f/firefox/firefox-mozconfig Removes the --with-system-fdk-aac mozconfig option line.
base/comps/firefox/firefox.comp.toml Adds coordinated overlays (skip Patch401, remove mozconfig option, drop BR) and bumps azl_release.
locks/firefox.lock Updates input fingerprint due to component config changes.
specs/f/fdk-aac-free/fdk-aac-free.spec Removes rendered spec as part of component removal.
specs/f/fdk-aac-free/sources Removes rendered sources entry as part of component removal.
locks/fdk-aac-free.lock Removes the component lock file.
base/comps/components.toml Removes [components.fdk-aac-free] entry from the component list.
base/comps/components-publish-channels.toml Removes fdk-aac-free from publish channel component list.

Comment thread base/comps/firefox/firefox.comp.toml
Upstream Fedora firefox carries an unconditional BuildRequires: fdk-aac-free-devel, the Fedora-specific firefox-mozconfig (Source10) ships `ac_add_options --with-system-fdk-aac`, and mozilla-1667096.patch (Patch401) wires that mozconfig option into toolkit/moz.configure and registers ff_libfdk_aac_decoder in ffvpx's codec_list.c. The patch exclusively adds fdk-aac support: it touches four files (the configure option, the wrapper decoder libfdk-aacdec.c, the codec-list registration, and the moz.build glue) and nothing else.

Three overlays:

  1. spec-search-replace in %prep replaces the `%patch -P401` invocation with a skip comment, so the configure option and the ffvpx codec-list entry are both gone.
  2. file-search-replace drops the now-unrecognized `ac_add_options --with-system-fdk-aac` line from firefox-mozconfig.
  3. spec-remove-tag drops the fdk-aac-free-devel BR.

Bump azl_release 4 -> 5 per the per-AZL-change convention documented at the top of firefox.comp.toml.
Upstream Fedora pipewire builds the bluez5 AAC codec (used for A2DP audio streaming to AAC-capable Bluetooth sinks) against fdk-aac via an unconditional BuildRequires: pkgconfig(fdk-aac). AZL does not ship fdk-aac-free, so the BR is unsatisfiable.

Add two overlays: drop the BR with spec-remove-tag, and pass -D bluez5-codec-aac=disabled to the %meson invocation by extending the existing `-D volume=disabled -D bluez5-codec-aptx=disabled` line via spec-search-replace. The other bluez5 codecs (SBC, lc3, ldac on non-s390x) remain enabled for Bluetooth audio streaming; only AAC sinks lose support.

Bump azl_release for this AZL-only change.
fdk-aac-free is the "free" Fedora variant of the FDK AAC codec, used by gstreamer, pipewire, freerdp, and (nominally) firefox for AAC audio en/decode. AZL is dropping it from the distro.

The AZL consumers were detached in the preceding commits in this series:

  - fix(freerdp): drop fdk-aac codec dep
  - fix(firefox): drop fdk-aac-free-devel and Fedora fdk-aac patch
  - fix(pipewire): drop AAC bluetooth codec

gstreamer1-plugins-bad-free was removed from the distro in a separate 4.0 commit; no detachment commit is needed here.

gnome-remote-desktop's `BuildRequires: pkgconfig(fdk-aac)` is inside `%if %{with rdp}` and AZL builds with `build.without = ["rdp"]`, so it is already inactive -- no fix needed.

Remove the component definition (base/comps/components.toml), the publish-channel entry (components-publish-channels.toml), the lock file (locks/fdk-aac-free.lock), and the rendered spec (specs/f/fdk-aac-free/). The only leftover references in base/comps/ are explanatory comments in the consumer overlays added by the preceding commits.
@christopherco christopherco force-pushed the chrco/remove-fdk-aac-free branch from 2c282bb to 9ff1953 Compare May 24, 2026 07:47
@christopherco christopherco merged commit a2a8ddd into 4.0 May 24, 2026
11 checks passed
@christopherco christopherco deleted the chrco/remove-fdk-aac-free branch May 24, 2026 23:30
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