Skip to main content

max / alloy

Record why ffmpeg brings a speech synthesiser and a ham radio codec flite (21 MB) and lpcnetfreedv (15 MB) sit in the media closure and were never chosen. Traced 2026-08-17: libavcodec-free hard-requires libcodec2.so.1.2, which pulls codec2, which pulls lpcnetfreedv; libavfilter-free requires libflite.so.1 plus five voice libraries for its text-to-speech filter. No route out. mpv links libavcodec and libavfilter directly, codec2 and flite are the sole providers of those sonames, and ffmpeg-free is the only ffmpeg in the configured repos, so there is no lighter combination to switch to. Removing 36 MB means building ffmpeg ourselves. Written down rather than cut, which is the other half of the done condition: the next person to notice these should find the answer instead of re-deriving it.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-17 21:19 UTC
Signed with PGP, not checked
Commit: 24f81ba0b86433232a7e33192dd3d03bec87e53d
Parent: 068d6cb
1 file changed, +9 insertions, -0 deletions
@@ -149,6 +149,15 @@
149 149 what makes it look orphaned, and the query is the thing that is wrong: dependents
150 150 require the soname. `libLLVM.so.21.1()(64bit)` is required by `mesa-dri-drivers`,
151 151 `mesa-vulkan-drivers` and `rust`. Load-bearing three times over.
152 + - **`flite` 21 MB and `lpcnetfreedv` 15 MB.** A speech synthesiser and a digital voice
153 + codec for amateur radio, in an image with no use for either. Neither was chosen and
154 + neither can be removed. `libavcodec-free` carries a hard soname requirement on
155 + `libcodec2.so.1.2`, which pulls codec2, which pulls lpcnetfreedv; `libavfilter-free`
156 + requires `libflite.so.1` and five voice libraries for its text-to-speech filter. mpv
157 + links both libraries directly, `codec2` and `flite` are the only packages providing
158 + those sonames, and `ffmpeg-free` is the only ffmpeg in the configured repos, so there
159 + is no lighter combination to switch to. Checked 2026-08-17. Dropping 36 MB here means
160 + building ffmpeg ourselves, which is not worth 36 MB.
152 161 - **`mesa-vulkan-drivers`, 153 MB.** Twelve ICDs, no rpm dependents at all, because the
153 162 Vulkan loader opens one by dlopen off a JSON manifest. The x86_64 ones are load-bearing:
154 163 `intel` (21 MB), `intel_hasvk` (17 MB), `radeon` (16 MB), `nouveau` (13 MB), `lvp` (12 MB,