From: Julien Olivain via buildroot <buildroot@buildroot.org>
To: Alsey Coleman Miller <alseycmiller@gmail.com>
Cc: buildroot@buildroot.org, Michael Fischer <mf@go-sys.de>
Subject: Re: [Buildroot] [PATCH 7/8] package/sdl3_mixer: new package
Date: Tue, 22 Sep 2026 21:59:55 +0200 [thread overview]
Message-ID: <6152a5813ec8b59c67e339e2914058ad@free.fr> (raw)
In-Reply-To: <20260816191830.533747-8-alseycmiller@gmail.com>
Hi Alsey,
Thanks for the patch. I have few comments, see below.
On 16/08/2026 21:18, Alsey Coleman Miller wrote:
> SDL3_mixer is the multi-channel audio mixer library for SDL3. It plays
> AIFF, AU, VOC and WAVE, MIDI through the built-in timidity, and MP3,
> Ogg Vorbis and FLAC through the bundled dr_mp3, stb_vorbis and dr_flac
> decoders, none of which need a dependency.
>
> The better decoders are built when their libraries are already in the
> configuration: flac, mpg123, opusfile, wavpack, fluidsynth, libxmp for
> modules and game-music-emu for console chiptunes. Ogg Vorbis comes from
> vorbisfile or tremor and never both, since upstream errors out when the
> two are enabled together, so tremor is used only when libvorbis is
> absent.
>
> VENDORED is off so the copies of those libraries in the tarball are not
> used, DEPS_SHARED off so they are linked rather than dlopen()ed, and
> STRICT on so a decoder that cannot find its library fails the build
> instead of being dropped silently.
>
> Built with CMake, like sdl3 itself, rather than with the autotools
> setup
> the SDL2 counterpart uses.
>
> Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
> ---
> DEVELOPERS | 1 +
> package/Config.in | 1 +
> package/sdl3_mixer/Config.in | 17 +++++
> package/sdl3_mixer/sdl3_mixer.hash | 3 +
> package/sdl3_mixer/sdl3_mixer.mk | 103 +++++++++++++++++++++++++++++
> 5 files changed, 125 insertions(+)
> create mode 100644 package/sdl3_mixer/Config.in
> create mode 100644 package/sdl3_mixer/sdl3_mixer.hash
> create mode 100644 package/sdl3_mixer/sdl3_mixer.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 56b01fa5cc..964fe9a597 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -172,6 +172,7 @@ N: Alsey Coleman Miller <alseycmiller@gmail.com>
> F: package/liblc3/
> F: package/plutosvg/
> F: package/plutovg/
> +F: package/sdl3_mixer/
>
> N: Alvaro G. M <alvaro.gamez@hazent.com>
> F: package/dcron/
> diff --git a/package/Config.in b/package/Config.in
> index 5e1601036c..853d3bd07d 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -369,6 +369,7 @@ comment "Graphic libraries"
> source "package/sdl3/Config.in"
> source "package/sdl3_gfx/Config.in"
> source "package/sdl3_image/Config.in"
> + source "package/sdl3_mixer/Config.in"
> source "package/sdl3_ttf/Config.in"
> source "package/spirv-headers/Config.in"
> source "package/tk/Config.in"
> diff --git a/package/sdl3_mixer/Config.in
> b/package/sdl3_mixer/Config.in
> new file mode 100644
> index 0000000000..cfefb4719b
> --- /dev/null
> +++ b/package/sdl3_mixer/Config.in
> @@ -0,0 +1,17 @@
> +config BR2_PACKAGE_SDL3_MIXER
> + bool "sdl3_mixer"
> + depends on BR2_PACKAGE_SDL3
> + help
> + SDL3_mixer is a multi-channel audio mixer library for
> + SDL3. It plays AIFF, AU, VOC and WAVE samples, MIDI
> + through the built-in timidity, and MP3, Ogg Vorbis and
> + FLAC through the bundled dr_mp3, stb_vorbis and dr_flac
> + decoders.
> +
> + The higher quality decoders are used instead when their
> + libraries are enabled in the configuration (flac, mpg123,
> + libvorbis or tremor, opusfile, wavpack, fluidsynth), and
> + module and console chiptune playback is added by libxmp
> + and game-music-emu.
> +
> + https://github.com/libsdl-org/SDL_mixer
> diff --git a/package/sdl3_mixer/sdl3_mixer.hash
> b/package/sdl3_mixer/sdl3_mixer.hash
> new file mode 100644
> index 0000000000..44602037e1
> --- /dev/null
> +++ b/package/sdl3_mixer/sdl3_mixer.hash
> @@ -0,0 +1,3 @@
> +# Locally calculated
> +sha256
> 182a07c745375e113dc740d43964ff21b0be29f29f59876c4dbc4db3d32f6901
> SDL3_mixer-3.2.4.tar.gz
> +sha256
> e36997fe492c48e7ed873065cc3a694f38e8189a328d3709099ffdc9a8843f4c
> LICENSE.txt
> diff --git a/package/sdl3_mixer/sdl3_mixer.mk
> b/package/sdl3_mixer/sdl3_mixer.mk
> new file mode 100644
> index 0000000000..beff679466
> --- /dev/null
> +++ b/package/sdl3_mixer/sdl3_mixer.mk
> @@ -0,0 +1,103 @@
> +################################################################################
> +#
> +# sdl3_mixer
> +#
> +################################################################################
> +
> +SDL3_MIXER_VERSION = 3.2.4
> +SDL3_MIXER_SOURCE = SDL3_mixer-$(SDL3_MIXER_VERSION).tar.gz
> +SDL3_MIXER_SITE = https://www.libsdl.org/projects/SDL_mixer/release
> +SDL3_MIXER_LICENSE = Zlib
> +SDL3_MIXER_LICENSE_FILES = LICENSE.txt
> +SDL3_MIXER_CPE_ID_VENDOR = libsdl
> +SDL3_MIXER_CPE_ID_PRODUCT = sdl_mixer
> +SDL3_MIXER_INSTALL_STAGING = YES
> +SDL3_MIXER_DEPENDENCIES = sdl3 host-pkgconf
> +
> +# AIFF, AU, VOC and WAVE, plus the bundled dr_flac, dr_mp3, stb_vorbis
> and
> +# timidity decoders, need no dependency and are left enabled by
> default.
> +# STRICT makes the build fail when a decoder we asked for cannot find
> its
> +# library, instead of silently dropping it. DEPS_SHARED=OFF links the
> +# decoder libraries directly rather than dlopen()ing them at runtime.
> +SDL3_MIXER_CONF_OPTS = \
> + -DSDLMIXER_VENDORED=OFF \
> + -DSDLMIXER_DEPS_SHARED=OFF \
> + -DSDLMIXER_STRICT=ON \
> + -DSDLMIXER_TESTS=OFF \
> + -DSDLMIXER_EXAMPLES=OFF \
> + -DSDLMIXER_INSTALL_MAN=OFF
> +
> +ifeq ($(BR2_PACKAGE_GAME_MUSIC_EMU),y)
Here, the script "utils/check-symbols" reports an error:
package/sdl3_mixer/sdl3_mixer.mk:30: BR2_PACKAGE_GAME_MUSIC_EMU
referenced but not defined
This symbol does not exist. This package is missing in
your patch series, or this block should be removed.
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_GME=ON
> +SDL3_MIXER_DEPENDENCIES += game-music-emu
> +else
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_GME=OFF
> +endif
> +
> +# MOD playback goes through libxmp; libxmp-lite is not packaged.
> +ifeq ($(BR2_PACKAGE_LIBXMP),y)
Same comment here:
The script "utils/check-symbols" reports an error:
package/sdl3_mixer/sdl3_mixer.mk:38: BR2_PACKAGE_LIBXMP referenced but
not defined
> +SDL3_MIXER_CONF_OPTS += \
> + -DSDLMIXER_MOD=ON \
> + -DSDLMIXER_MOD_XMP=ON \
> + -DSDLMIXER_MOD_XMP_LITE=OFF
> +SDL3_MIXER_DEPENDENCIES += libxmp
> +else
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_MOD=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_FLAC),y)
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_FLAC_LIBFLAC=ON
> +SDL3_MIXER_DEPENDENCIES += flac
> +else
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_FLAC_LIBFLAC=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_MPG123),y)
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_MP3_MPG123=ON
> +SDL3_MIXER_DEPENDENCIES += mpg123
> +else
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_MP3_MPG123=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y)
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_MIDI_FLUIDSYNTH=ON
> +SDL3_MIXER_DEPENDENCIES += fluidsynth
> +else
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_MIDI_FLUIDSYNTH=OFF
> +endif
> +
> +# Opus is decoded through opusfile, which pulls in opus and libogg.
> +ifeq ($(BR2_PACKAGE_OPUSFILE),y)
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_OPUS=ON
> +SDL3_MIXER_DEPENDENCIES += opusfile
> +else
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_OPUS=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_WAVPACK),y)
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_WAVPACK=ON
> +SDL3_MIXER_DEPENDENCIES += wavpack
> +else
> +SDL3_MIXER_CONF_OPTS += -DSDLMIXER_WAVPACK=OFF
> +endif
> +
> +# Ogg Vorbis comes from either vorbisfile or tremor, never both;
> upstream
> +# errors out when the two are enabled together. tremor is the
> integer-only
> +# decoder, so it is only used when libvorbis is absent.
> +ifeq ($(BR2_PACKAGE_LIBVORBIS),y)
> +SDL3_MIXER_CONF_OPTS += \
> + -DSDLMIXER_VORBIS_VORBISFILE=ON \
> + -DSDLMIXER_VORBIS_TREMOR=OFF
> +SDL3_MIXER_DEPENDENCIES += libvorbis
> +else ifeq ($(BR2_PACKAGE_TREMOR),y)
> +SDL3_MIXER_CONF_OPTS += \
> + -DSDLMIXER_VORBIS_VORBISFILE=OFF \
> + -DSDLMIXER_VORBIS_TREMOR=ON
> +SDL3_MIXER_DEPENDENCIES += tremor
> +else
> +SDL3_MIXER_CONF_OPTS += \
> + -DSDLMIXER_VORBIS_VORBISFILE=OFF \
> + -DSDLMIXER_VORBIS_TREMOR=OFF
> +endif
> +
> +$(eval $(cmake-package))
> --
> 2.47.3
Could you send an updated patch, please?
Best regards,
Julien.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2026-09-22 20:00 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-16 19:18 [Buildroot] [PATCH 0/8] package/sdl3*: complete the SDL3 family Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 1/8] package/plutovg: new package Alsey Coleman Miller
2026-09-22 20:23 ` Julien Olivain via buildroot
2026-08-16 19:18 ` [Buildroot] [PATCH 2/8] package/plutosvg: " Alsey Coleman Miller
2026-09-22 20:27 ` Julien Olivain via buildroot
2026-08-16 19:18 ` [Buildroot] [PATCH 3/8] package/sdl3: add ALSA and test program options, follow dbus Alsey Coleman Miller
2026-09-22 20:08 ` Julien Olivain via buildroot
2026-08-16 19:18 ` [Buildroot] [PATCH 4/8] package/sdl3_image: bump to version 3.4.4 Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 5/8] package/sdl3_ttf: do not build the samples or install man pages Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 6/8] package/sdl3_ttf: build plutosvg support when available Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 7/8] package/sdl3_mixer: new package Alsey Coleman Miller
2026-09-22 19:59 ` Julien Olivain via buildroot [this message]
2026-08-16 19:18 ` [Buildroot] [PATCH 8/8] package/sdl3_net: " Alsey Coleman Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6152a5813ec8b59c67e339e2914058ad@free.fr \
--to=buildroot@buildroot.org \
--cc=alseycmiller@gmail.com \
--cc=ju.o@free.fr \
--cc=mf@go-sys.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox