Remove fdk-aac-free and the AAC codec from the distribution#17331
Merged
Conversation
86c7be6 to
f45e5ef
Compare
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.
f45e5ef to
1c71577
Compare
reubeno
reviewed
May 24, 2026
Member
reubeno
left a comment
There was a problem hiding this comment.
Change seems pretty solid; one comment regarding search/replace anchoring...
1c71577 to
2c282bb
Compare
Contributor
There was a problem hiding this comment.
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, andpipewirefromfdk-aac/fdk-aac-free-develby 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-freecomponent 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. |
christopherco
commented
May 24, 2026
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.
2c282bb to
9ff1953
Compare
reubeno
approved these changes
May 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Removes the
fdk-aac-freecomponent from Azure Linux 4.0 and detaches its three remaining consumers.Changes (one commit per consumer, then component removal)
pkgconfig(fdk-aac)BR; flip cmake flag to-DWITH_FDK_AAC=OFF.fdk-aac-free-develBR; skip Fedora'smozilla-1667096.patch(Patch401) in%prep(the patch is fdk-aac-only — adds the--with-system-fdk-aacconfigure option and registersff_libfdk_aac_decoderin ffvpx's codec table); drop the now-unrecognizedac_add_options --with-system-fdk-aacline fromfirefox-mozconfig; bumpazl_release4 → 5.pkgconfig(fdk-aac)BR; add-D bluez5-codec-aac=disabledto the%mesoninvocation; bumpazl_release. Other bluez5 codecs (SBC, lc3, ldac on non-s390x) remain enabled.gnome-remote-desktop'sBuildRequires: pkgconfig(fdk-aac)is inside%if %{with rdp}and AZL builds withbuild.without = ["rdp"], so it's already inactive — no fix needed.Fixes: AB#19705