* [Buildroot] [PATCH 1/8] package/plutovg: new package
2026-08-16 19:18 [Buildroot] [PATCH 0/8] package/sdl3*: complete the SDL3 family Alsey Coleman Miller
@ 2026-08-16 19:18 ` Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 2/8] package/plutosvg: " Alsey Coleman Miller
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Alsey Coleman Miller @ 2026-08-16 19:18 UTC (permalink / raw)
To: buildroot; +Cc: Michael Fischer, Alsey Coleman Miller
plutovg is a standalone 2D vector graphics library providing path
filling and stroking, gradients and text rendering. It is the renderer
plutosvg is built on.
Examples are not built: they are demo programs that are never installed.
Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/plutovg/Config.in | 7 +++++++
package/plutovg/plutovg.hash | 3 +++
package/plutovg/plutovg.mk | 16 ++++++++++++++++
5 files changed, 28 insertions(+)
create mode 100644 package/plutovg/Config.in
create mode 100644 package/plutovg/plutovg.hash
create mode 100644 package/plutovg/plutovg.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 98c9ee55d3..5e39d38fc9 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -170,6 +170,7 @@ F: package/xen/
N: Alsey Coleman Miller <alseycmiller@gmail.com>
F: package/liblc3/
+F: package/plutovg/
N: Alvaro G. M <alvaro.gamez@hazent.com>
F: package/dcron/
diff --git a/package/Config.in b/package/Config.in
index 6058800682..d98705e981 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -350,6 +350,7 @@ comment "Graphic libraries"
source "package/mesa3d-headers/Config.in"
source "package/ocrad/Config.in"
source "package/ogre/Config.in"
+ source "package/plutovg/Config.in"
source "package/psplash/Config.in"
source "package/sdl/Config.in"
source "package/sdl_gfx/Config.in"
diff --git a/package/plutovg/Config.in b/package/plutovg/Config.in
new file mode 100644
index 0000000000..f452318198
--- /dev/null
+++ b/package/plutovg/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_PLUTOVG
+ bool "plutovg"
+ help
+ plutovg is a standalone 2D vector graphics library, providing
+ path filling and stroking, gradients, and text rendering.
+
+ https://github.com/sammycage/plutovg
diff --git a/package/plutovg/plutovg.hash b/package/plutovg/plutovg.hash
new file mode 100644
index 0000000000..95ef84fee3
--- /dev/null
+++ b/package/plutovg/plutovg.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 2b0d17a6e016f47b86f9c00e2cb82600041b1ea1f7d2a00c2d46ae542cbfed3c plutovg-1.3.3.tar.gz
+sha256 a55d1e78eaf75779c336b4ba061e74aae56a21195d234474fb24a398935d6ce1 LICENSE
diff --git a/package/plutovg/plutovg.mk b/package/plutovg/plutovg.mk
new file mode 100644
index 0000000000..a77fac1c43
--- /dev/null
+++ b/package/plutovg/plutovg.mk
@@ -0,0 +1,16 @@
+################################################################################
+#
+# plutovg
+#
+################################################################################
+
+PLUTOVG_VERSION = 1.3.3
+PLUTOVG_SITE = $(call github,sammycage,plutovg,v$(PLUTOVG_VERSION))
+PLUTOVG_LICENSE = MIT
+PLUTOVG_LICENSE_FILES = LICENSE
+PLUTOVG_INSTALL_STAGING = YES
+PLUTOVG_DEPENDENCIES = host-pkgconf
+
+PLUTOVG_CONF_OPTS = -DPLUTOVG_BUILD_EXAMPLES=OFF
+
+$(eval $(cmake-package))
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread* [Buildroot] [PATCH 2/8] package/plutosvg: new package
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-08-16 19:18 ` Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 3/8] package/sdl3: add ALSA and test program options, follow dbus Alsey Coleman Miller
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Alsey Coleman Miller @ 2026-08-16 19:18 UTC (permalink / raw)
To: buildroot; +Cc: Michael Fischer, Alsey Coleman Miller
plutosvg is a small SVG rendering library built on plutovg.
PLUTOSVG_ENABLE_FREETYPE is on because the FreeType integration is what
provides OpenType-SVG rendering - the hooks FreeType calls for the SVG
glyphs in a colour emoji font - which is what consumers of this library
generally want it for.
Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/plutosvg/Config.in | 10 ++++++++++
package/plutosvg/plutosvg.hash | 3 +++
package/plutosvg/plutosvg.mk | 18 ++++++++++++++++++
5 files changed, 33 insertions(+)
create mode 100644 package/plutosvg/Config.in
create mode 100644 package/plutosvg/plutosvg.hash
create mode 100644 package/plutosvg/plutosvg.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 5e39d38fc9..56b01fa5cc 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -170,6 +170,7 @@ F: package/xen/
N: Alsey Coleman Miller <alseycmiller@gmail.com>
F: package/liblc3/
+F: package/plutosvg/
F: package/plutovg/
N: Alvaro G. M <alvaro.gamez@hazent.com>
diff --git a/package/Config.in b/package/Config.in
index d98705e981..5e1601036c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -350,6 +350,7 @@ comment "Graphic libraries"
source "package/mesa3d-headers/Config.in"
source "package/ocrad/Config.in"
source "package/ogre/Config.in"
+ source "package/plutosvg/Config.in"
source "package/plutovg/Config.in"
source "package/psplash/Config.in"
source "package/sdl/Config.in"
diff --git a/package/plutosvg/Config.in b/package/plutosvg/Config.in
new file mode 100644
index 0000000000..613b1b8ba6
--- /dev/null
+++ b/package/plutosvg/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_PLUTOSVG
+ bool "plutosvg"
+ select BR2_PACKAGE_FREETYPE
+ select BR2_PACKAGE_PLUTOVG
+ help
+ plutosvg is a small SVG rendering library built on plutovg. It
+ is built with the FreeType integration enabled, which is what
+ provides OpenType-SVG (colour emoji) rendering.
+
+ https://github.com/sammycage/plutosvg
diff --git a/package/plutosvg/plutosvg.hash b/package/plutosvg/plutosvg.hash
new file mode 100644
index 0000000000..fb6c210e93
--- /dev/null
+++ b/package/plutosvg/plutosvg.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 49d5cfe772d3aa10cd4879f2f6e189f5083c08e4c8ea01bf3d5b87c97dfca7d2 plutosvg-0.0.8.tar.gz
+sha256 a55d1e78eaf75779c336b4ba061e74aae56a21195d234474fb24a398935d6ce1 LICENSE
diff --git a/package/plutosvg/plutosvg.mk b/package/plutosvg/plutosvg.mk
new file mode 100644
index 0000000000..17142a1eb4
--- /dev/null
+++ b/package/plutosvg/plutosvg.mk
@@ -0,0 +1,18 @@
+################################################################################
+#
+# plutosvg
+#
+################################################################################
+
+PLUTOSVG_VERSION = 0.0.8
+PLUTOSVG_SITE = $(call github,sammycage,plutosvg,v$(PLUTOSVG_VERSION))
+PLUTOSVG_LICENSE = MIT
+PLUTOSVG_LICENSE_FILES = LICENSE
+PLUTOSVG_INSTALL_STAGING = YES
+PLUTOSVG_DEPENDENCIES = host-pkgconf freetype plutovg
+
+PLUTOSVG_CONF_OPTS = \
+ -DPLUTOSVG_ENABLE_FREETYPE=ON \
+ -DPLUTOSVG_BUILD_EXAMPLES=OFF
+
+$(eval $(cmake-package))
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread* [Buildroot] [PATCH 3/8] package/sdl3: add ALSA and test program options, follow dbus
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-08-16 19:18 ` [Buildroot] [PATCH 2/8] package/plutosvg: " Alsey Coleman Miller
@ 2026-08-16 19:18 ` Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 4/8] package/sdl3_image: bump to version 3.4.4 Alsey Coleman Miller
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Alsey Coleman Miller @ 2026-08-16 19:18 UTC (permalink / raw)
To: buildroot; +Cc: Michael Fischer, Alsey Coleman Miller
SDL_ALSA had no option at all, so whether the ALSA audio driver was
built depended on what SDL's own detection found in the sysroot when it
happened to configure. Add BR2_PACKAGE_SDL3_ALSA and pass
SDL_ALSA_SHARED=OFF with it, so libasound is linked rather than
dlopen()ed - a dlopen leaves nothing in the ELF, and the library is then
absent from the target unless something else pulls it in.
SDL_DBUS was off unconditionally, which loses screensaver inhibition and
the D-Bus parts of the Wayland backend; make it follow BR2_PACKAGE_DBUS.
Add BR2_PACKAGE_SDL3_TESTS for the test programs, which are useful for
checking the video and audio drivers on the target.
Finally, name the backends that were left unset - OSS, JACK, sndio,
PipeWire, RPI - and turn the examples off. SDL probes for each of these
and builds against whatever it finds, so leaving them out makes the
result depend on which unrelated packages are enabled.
Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
---
package/sdl3/Config.in | 15 +++++++++++++++
package/sdl3/sdl3.mk | 38 +++++++++++++++++++++++++++++++++++++-
2 files changed, 52 insertions(+), 1 deletion(-)
diff --git a/package/sdl3/Config.in b/package/sdl3/Config.in
index 7bce4ceaba..ed43879862 100644
--- a/package/sdl3/Config.in
+++ b/package/sdl3/Config.in
@@ -75,6 +75,21 @@ config BR2_PACKAGE_SDL3_OPENGLES
comment "OpenGL ES support needs an OpenGL ES provider"
depends on !BR2_PACKAGE_HAS_LIBGLES
+config BR2_PACKAGE_SDL3_ALSA
+ bool "ALSA audio"
+ depends on BR2_PACKAGE_ALSA_LIB
+ help
+ Enable the ALSA audio driver.
+
+comment "ALSA audio needs alsa-lib"
+ depends on !BR2_PACKAGE_ALSA_LIB
+
+config BR2_PACKAGE_SDL3_TESTS
+ bool "build test programs"
+ help
+ Build and install the SDL3 test programs, which are useful
+ for checking the video and audio drivers on the target.
+
endif
comment "sdl3 needs a toolchain w/ dynamic library, threads, wchar"
diff --git a/package/sdl3/sdl3.mk b/package/sdl3/sdl3.mk
index ecbcbf4bc2..7c92ee9bc8 100644
--- a/package/sdl3/sdl3.mk
+++ b/package/sdl3/sdl3.mk
@@ -13,23 +13,59 @@ SDL3_CPE_ID_VENDOR = libsdl
SDL3_CPE_ID_PRODUCT = simple_directmedia_layer
SDL3_INSTALL_STAGING = YES
+SDL3_DEPENDENCIES = host-pkgconf
+
+# The audio and video backends this does not have a Buildroot option for are
+# named explicitly rather than left out: SDL probes for each of them and
+# builds against whatever it happens to find in the sysroot, so an unlisted
+# backend makes the result depend on which other packages are enabled.
SDL3_CONF_OPTS = \
- -DSDL_DBUS=OFF \
-DSDL_DUMMYVIDEO=OFF \
+ -DSDL_EXAMPLES=OFF \
-DSDL_HIDAPI=OFF \
-DSDL_IBUS=OFF \
-DSDL_INSTALL_DOCS=OFF \
+ -DSDL_JACK=OFF \
-DSDL_JOYSTICK_MFI=OFF \
-DSDL_JOYSTICK_VIRTUAL=OFF \
-DSDL_OFFSCREEN=OFF \
+ -DSDL_OSS=OFF \
+ -DSDL_PIPEWIRE=OFF \
-DSDL_PULSEAUDIO=OFF \
-DSDL_RENDER_D3D=OFF \
-DSDL_RPATH=OFF \
+ -DSDL_RPI=OFF \
+ -DSDL_SNDIO=OFF \
-DSDL_STATIC=ON \
-DSDL_UNIX_CONSOLE_BUILD=ON \
-DSDL_VIVANTE=OFF \
-DSDL_VULKAN=OFF
+ifeq ($(BR2_PACKAGE_SDL3_ALSA),y)
+SDL3_DEPENDENCIES += alsa-lib
+# SDL_ALSA_SHARED makes SDL dlopen() libasound at runtime rather than link it,
+# which leaves nothing in the ELF for Buildroot to see and the library absent
+# from the target unless something else pulls it in.
+SDL3_CONF_OPTS += -DSDL_ALSA=ON -DSDL_ALSA_SHARED=OFF
+else
+SDL3_CONF_OPTS += -DSDL_ALSA=OFF
+endif
+
+# SDL uses D-Bus for screensaver inhibition and for parts of the Wayland
+# backend, so it follows dbus rather than being off unconditionally.
+ifeq ($(BR2_PACKAGE_DBUS),y)
+SDL3_DEPENDENCIES += dbus
+SDL3_CONF_OPTS += -DSDL_DBUS=ON
+else
+SDL3_CONF_OPTS += -DSDL_DBUS=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_SDL3_TESTS),y)
+SDL3_CONF_OPTS += -DSDL_TESTS=ON
+else
+SDL3_CONF_OPTS += -DSDL_TESTS=OFF
+endif
+
# SDL3 fails to build in Thumb mode on some ARM architectures
ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
SDL3_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -marm"
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread* [Buildroot] [PATCH 4/8] package/sdl3_image: bump to version 3.4.4
2026-08-16 19:18 [Buildroot] [PATCH 0/8] package/sdl3*: complete the SDL3 family Alsey Coleman Miller
` (2 preceding siblings ...)
2026-08-16 19:18 ` [Buildroot] [PATCH 3/8] package/sdl3: add ALSA and test program options, follow dbus Alsey Coleman Miller
@ 2026-08-16 19:18 ` 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
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Alsey Coleman Miller @ 2026-08-16 19:18 UTC (permalink / raw)
To: buildroot; +Cc: Michael Fischer, Alsey Coleman Miller
3.1.1 is a prerelease. 3.4.4 is the current release, and the option
names changed with it: PNG is now SDLIMAGE_PNG_LIBPNG, with
SDLIMAGE_BACKEND_STB selecting the built-in decoder used when no helper
library is available.
Build the optional format backends according to the image libraries
already in the configuration - AVIF, JPEG, TIFF, WEBP and JXL alongside
the existing PNG - rather than PNG alone. VENDORED stays off so the
copies of those libraries carried in the tarball are not used, and
DEPS_SHARED off so they are linked rather than dlopen()ed.
The formats SDL3_image decodes by itself (BMP, GIF, LBM, PCX, PNM, QOI,
SVG, TGA, XCF, XPM, XV) need no helper and are always available.
Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
---
package/sdl3_image/Config.in | 10 ++++-
package/sdl3_image/sdl3_image.hash | 4 +-
package/sdl3_image/sdl3_image.mk | 62 ++++++++++++++++++++++++++++--
3 files changed, 68 insertions(+), 8 deletions(-)
diff --git a/package/sdl3_image/Config.in b/package/sdl3_image/Config.in
index 9b9c4f0d74..b93d40c1e7 100644
--- a/package/sdl3_image/Config.in
+++ b/package/sdl3_image/Config.in
@@ -3,7 +3,13 @@ config BR2_PACKAGE_SDL3_IMAGE
depends on BR2_PACKAGE_SDL3
help
SDL3_image is an image file loading library. It loads images
- as SDL surfaces, and supports the following formats: BMP,
- GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, XCF, XPM, XV.
+ as SDL surfaces, and supports the following formats: AVIF,
+ BMP, GIF, JPEG, JXL, LBM, PCX, PNG, PNM, QOI, SVG, TGA, TIFF,
+ WEBP, XCF, XPM, XV.
+
+ The formats needing a helper library are built according to
+ the image libraries enabled in the configuration (jpeg,
+ libpng, tiff, webp, libjxl, libavif); the rest are decoded by
+ SDL3_image itself and are always available.
http://www.libsdl.org/projects/SDL_image/
diff --git a/package/sdl3_image/sdl3_image.hash b/package/sdl3_image/sdl3_image.hash
index 83f5e7eaf1..c7ddbdc43b 100644
--- a/package/sdl3_image/sdl3_image.hash
+++ b/package/sdl3_image/sdl3_image.hash
@@ -1,3 +1,3 @@
# Locally calculated
-sha256 d5685f220d5ae99439d710d808d8c478c6ccfaac539876929239b875a6723792 SDL3_image-3.1.1.tar.gz
-sha256 7826eca0a0f7e591f38dd844e207a200aac81a59b20d8a30c3af8c6282af13e6 LICENSE.txt
+sha256 29751304a13d25ac513f24305fa25b06a6edd9607718c90129b8350d35fc5573 SDL3_image-3.4.4.tar.gz
+sha256 e36997fe492c48e7ed873065cc3a694f38e8189a328d3709099ffdc9a8843f4c LICENSE.txt
diff --git a/package/sdl3_image/sdl3_image.mk b/package/sdl3_image/sdl3_image.mk
index fadb870b6f..ac3e375551 100644
--- a/package/sdl3_image/sdl3_image.mk
+++ b/package/sdl3_image/sdl3_image.mk
@@ -4,19 +4,73 @@
#
################################################################################
-SDL3_IMAGE_VERSION = 3.1.1
+SDL3_IMAGE_VERSION = 3.4.4
SDL3_IMAGE_SITE = https://www.libsdl.org/projects/SDL_image/release
SDL3_IMAGE_SOURCE = SDL3_image-$(SDL3_IMAGE_VERSION).tar.gz
SDL3_IMAGE_LICENSE = Zlib
SDL3_IMAGE_LICENSE_FILES = LICENSE.txt
+SDL3_IMAGE_CPE_ID_VENDOR = libsdl
+SDL3_IMAGE_CPE_ID_PRODUCT = sdl_image
SDL3_IMAGE_INSTALL_STAGING = YES
-SDL3_IMAGE_DEPENDENCIES = sdl3
+SDL3_IMAGE_DEPENDENCIES = sdl3 host-pkgconf
+
+# VENDORED would build the copies of libpng and friends carried in the
+# tarball; DEPS_SHARED would dlopen them at runtime instead of linking, which
+# leaves nothing in the ELF for Buildroot to see.
+SDL3_IMAGE_CONF_OPTS = \
+ -DSDLIMAGE_VENDORED=OFF \
+ -DSDLIMAGE_DEPS_SHARED=OFF \
+ -DSDLIMAGE_STRICT=ON \
+ -DSDLIMAGE_SAMPLES=OFF \
+ -DSDLIMAGE_TESTS=OFF \
+ -DSDLIMAGE_INSTALL_MAN=OFF
+
+ifeq ($(BR2_PACKAGE_LIBAVIF),y)
+SDL3_IMAGE_DEPENDENCIES += libavif
+SDL3_IMAGE_CONF_OPTS += \
+ -DSDLIMAGE_AVIF=ON \
+ -DSDLIMAGE_AVIF_SAVE=OFF
+else
+SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_AVIF=OFF
+endif
+
+# Without jpeg, JPEG support falls back to the bundled stb_image decoder
+# rather than being dropped.
+ifeq ($(BR2_PACKAGE_JPEG),y)
+SDL3_IMAGE_DEPENDENCIES += jpeg
+SDL3_IMAGE_CONF_OPTS += \
+ -DSDLIMAGE_BACKEND_STB=OFF \
+ -DSDLIMAGE_JPG=ON
+else
+SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_BACKEND_STB=ON
+endif
ifeq ($(BR2_PACKAGE_LIBPNG),y)
SDL3_IMAGE_DEPENDENCIES += libpng
-SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_PNG=ON
+SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_PNG_LIBPNG=ON
+else
+SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_PNG_LIBPNG=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_TIFF),y)
+SDL3_IMAGE_DEPENDENCIES += tiff
+SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_TIF=ON
+else
+SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_TIF=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_WEBP_DEMUX)$(BR2_PACKAGE_WEBP_MUX),yy)
+SDL3_IMAGE_DEPENDENCIES += webp
+SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_WEBP=ON
+else
+SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_WEBP=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_LIBJXL),y)
+SDL3_IMAGE_DEPENDENCIES += libjxl
+SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_JXL=ON
else
-SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_PNG=OFF
+SDL3_IMAGE_CONF_OPTS += -DSDLIMAGE_JXL=OFF
endif
$(eval $(cmake-package))
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread* [Buildroot] [PATCH 5/8] package/sdl3_ttf: do not build the samples or install man pages
2026-08-16 19:18 [Buildroot] [PATCH 0/8] package/sdl3*: complete the SDL3 family Alsey Coleman Miller
` (3 preceding siblings ...)
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 ` Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 6/8] package/sdl3_ttf: build plutosvg support when available Alsey Coleman Miller
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Alsey Coleman Miller @ 2026-08-16 19:18 UTC (permalink / raw)
To: buildroot; +Cc: Michael Fischer, Alsey Coleman Miller
SDLTTF_SAMPLES builds example programs that are not installed, and
SDLTTF_INSTALL_MAN puts man pages on the target that Buildroot removes
again. STRICT makes the build fail on a missing dependency rather than
quietly dropping the feature it belongs to.
Also state SDLTTF_HARFBUZZ=OFF in the branch where harfbuzz is absent
instead of relying on the default set above it, so both halves of the
condition read the same way.
Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
---
package/sdl3_ttf/sdl3_ttf.mk | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/package/sdl3_ttf/sdl3_ttf.mk b/package/sdl3_ttf/sdl3_ttf.mk
index 12441e243e..130e07746e 100644
--- a/package/sdl3_ttf/sdl3_ttf.mk
+++ b/package/sdl3_ttf/sdl3_ttf.mk
@@ -15,11 +15,15 @@ SDL3_TTF_DEPENDENCIES = sdl3 freetype host-pkgconf
SDL3_TTF_CONF_OPTS = \
-DSDLTTF_VENDORED=OFF \
- -DSDLTTF_HARFBUZZ=OFF
+ -DSDLTTF_STRICT=ON \
+ -DSDLTTF_SAMPLES=OFF \
+ -DSDLTTF_INSTALL_MAN=OFF
ifeq ($(BR2_PACKAGE_HARFBUZZ),y)
SDL3_TTF_DEPENDENCIES += harfbuzz
SDL3_TTF_CONF_OPTS += -DSDLTTF_HARFBUZZ=ON
+else
+SDL3_TTF_CONF_OPTS += -DSDLTTF_HARFBUZZ=OFF
endif
$(eval $(cmake-package))
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread* [Buildroot] [PATCH 6/8] package/sdl3_ttf: build plutosvg support when available
2026-08-16 19:18 [Buildroot] [PATCH 0/8] package/sdl3*: complete the SDL3 family Alsey Coleman Miller
` (4 preceding siblings ...)
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 ` Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 7/8] package/sdl3_mixer: new package Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 8/8] package/sdl3_net: " Alsey Coleman Miller
7 siblings, 0 replies; 9+ messages in thread
From: Alsey Coleman Miller @ 2026-08-16 19:18 UTC (permalink / raw)
To: buildroot; +Cc: Michael Fischer, Alsey Coleman Miller
Colour emoji fonts store their glyphs as SVG, which SDL3_ttf renders
through plutosvg. Without it those glyphs are skipped and the rest of
the font still renders.
plutosvg is packaged in the swift-linux ports tree rather than in
Buildroot, so BR2_PACKAGE_PLUTOSVG is undefined on a plain Buildroot and
the branch selects SDLTTF_PLUTOSVG=OFF - the behaviour before this
commit. Not for upstream until plutosvg and plutovg are packaged there.
Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
---
package/sdl3_ttf/sdl3_ttf.mk | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/package/sdl3_ttf/sdl3_ttf.mk b/package/sdl3_ttf/sdl3_ttf.mk
index 130e07746e..660661a5b7 100644
--- a/package/sdl3_ttf/sdl3_ttf.mk
+++ b/package/sdl3_ttf/sdl3_ttf.mk
@@ -26,4 +26,14 @@ else
SDL3_TTF_CONF_OPTS += -DSDLTTF_HARFBUZZ=OFF
endif
+# plutosvg renders the SVG glyphs in a colour emoji font, through the
+# FreeType OpenType-SVG hooks. Without it those glyphs are skipped and the
+# rest of the font still renders.
+ifeq ($(BR2_PACKAGE_PLUTOSVG),y)
+SDL3_TTF_DEPENDENCIES += plutosvg
+SDL3_TTF_CONF_OPTS += -DSDLTTF_PLUTOSVG=ON
+else
+SDL3_TTF_CONF_OPTS += -DSDLTTF_PLUTOSVG=OFF
+endif
+
$(eval $(cmake-package))
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread* [Buildroot] [PATCH 7/8] package/sdl3_mixer: new package
2026-08-16 19:18 [Buildroot] [PATCH 0/8] package/sdl3*: complete the SDL3 family Alsey Coleman Miller
` (5 preceding siblings ...)
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 ` Alsey Coleman Miller
2026-08-16 19:18 ` [Buildroot] [PATCH 8/8] package/sdl3_net: " Alsey Coleman Miller
7 siblings, 0 replies; 9+ messages in thread
From: Alsey Coleman Miller @ 2026-08-16 19:18 UTC (permalink / raw)
To: buildroot; +Cc: Michael Fischer, Alsey Coleman Miller
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)
+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)
+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
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread* [Buildroot] [PATCH 8/8] package/sdl3_net: new package
2026-08-16 19:18 [Buildroot] [PATCH 0/8] package/sdl3*: complete the SDL3 family Alsey Coleman Miller
` (6 preceding siblings ...)
2026-08-16 19:18 ` [Buildroot] [PATCH 7/8] package/sdl3_mixer: new package Alsey Coleman Miller
@ 2026-08-16 19:18 ` Alsey Coleman Miller
7 siblings, 0 replies; 9+ messages in thread
From: Alsey Coleman Miller @ 2026-08-16 19:18 UTC (permalink / raw)
To: buildroot; +Cc: Michael Fischer, Alsey Coleman Miller
SDL3_net is the small cross-platform networking library for SDL3,
providing TCP and UDP sockets and hostname resolution.
Samples are not built and the man pages are not installed: the samples
are demo programs that are never installed, and Buildroot removes
/usr/share/man from the target anyway.
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_net/Config.in | 9 +++++++++
package/sdl3_net/sdl3_net.hash | 3 +++
package/sdl3_net/sdl3_net.mk | 21 +++++++++++++++++++++
5 files changed, 35 insertions(+)
create mode 100644 package/sdl3_net/Config.in
create mode 100644 package/sdl3_net/sdl3_net.hash
create mode 100644 package/sdl3_net/sdl3_net.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 964fe9a597..3c8f7c5198 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -173,6 +173,7 @@ F: package/liblc3/
F: package/plutosvg/
F: package/plutovg/
F: package/sdl3_mixer/
+F: package/sdl3_net/
N: Alvaro G. M <alvaro.gamez@hazent.com>
F: package/dcron/
diff --git a/package/Config.in b/package/Config.in
index 853d3bd07d..eeb10fd569 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -370,6 +370,7 @@ comment "Graphic libraries"
source "package/sdl3_gfx/Config.in"
source "package/sdl3_image/Config.in"
source "package/sdl3_mixer/Config.in"
+ source "package/sdl3_net/Config.in"
source "package/sdl3_ttf/Config.in"
source "package/spirv-headers/Config.in"
source "package/tk/Config.in"
diff --git a/package/sdl3_net/Config.in b/package/sdl3_net/Config.in
new file mode 100644
index 0000000000..8375e5e0b6
--- /dev/null
+++ b/package/sdl3_net/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_SDL3_NET
+ bool "sdl3_net"
+ depends on BR2_PACKAGE_SDL3
+ help
+ SDL3_net is a small cross-platform networking library for
+ SDL3, providing TCP and UDP sockets and hostname
+ resolution.
+
+ https://github.com/libsdl-org/SDL_net
diff --git a/package/sdl3_net/sdl3_net.hash b/package/sdl3_net/sdl3_net.hash
new file mode 100644
index 0000000000..af871c8e99
--- /dev/null
+++ b/package/sdl3_net/sdl3_net.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 098522fc26d4e302ef9348aee6e76e67fe504dfefd7f596236568f8330570c41 SDL3_net-3.2.0.tar.gz
+sha256 1c040b8271b37e5076359f8fd54240e371114112924d2df81ef87c7d6a1dfdfd LICENSE.txt
diff --git a/package/sdl3_net/sdl3_net.mk b/package/sdl3_net/sdl3_net.mk
new file mode 100644
index 0000000000..da7deee6f6
--- /dev/null
+++ b/package/sdl3_net/sdl3_net.mk
@@ -0,0 +1,21 @@
+################################################################################
+#
+# sdl3_net
+#
+################################################################################
+
+SDL3_NET_VERSION = 3.2.0
+SDL3_NET_SOURCE = SDL3_net-$(SDL3_NET_VERSION).tar.gz
+SDL3_NET_SITE = https://www.libsdl.org/projects/SDL_net/release
+SDL3_NET_LICENSE = Zlib
+SDL3_NET_LICENSE_FILES = LICENSE.txt
+SDL3_NET_CPE_ID_VENDOR = libsdl
+SDL3_NET_CPE_ID_PRODUCT = sdl_net
+SDL3_NET_INSTALL_STAGING = YES
+SDL3_NET_DEPENDENCIES = sdl3 host-pkgconf
+
+SDL3_NET_CONF_OPTS = \
+ -DSDLNET_SAMPLES=OFF \
+ -DSDLNET_INSTALL_MAN=OFF
+
+$(eval $(cmake-package))
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread