summaryrefslogtreecommitdiff
path: root/media-libs/libsdl2
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/libsdl2')
-rw-r--r--media-libs/libsdl2/Manifest12
-rw-r--r--media-libs/libsdl2/libsdl2-2.32.2.ebuild2
-rw-r--r--media-libs/libsdl2/libsdl2-2.32.4.ebuild214
-rw-r--r--media-libs/libsdl2/libsdl2-2.32.54.ebuild55
-rw-r--r--media-libs/libsdl2/libsdl2-2.32.56.ebuild55
-rw-r--r--media-libs/libsdl2/libsdl2-2.32.6.ebuild216
-rw-r--r--media-libs/libsdl2/metadata.xml1
7 files changed, 552 insertions, 3 deletions
diff --git a/media-libs/libsdl2/Manifest b/media-libs/libsdl2/Manifest
index 0d4b8c80366e..b722def29a4a 100644
--- a/media-libs/libsdl2/Manifest
+++ b/media-libs/libsdl2/Manifest
@@ -4,8 +4,16 @@ DIST SDL2-2.30.11.tar.gz 7585207 BLAKE2B e6038cbf79bec299fae9cfdc4b84ff3e28343ab
DIST SDL2-2.30.7.tar.gz 7525092 BLAKE2B a494ca856f43009957f62ef4e5d401777c2d1f8518e4cc1a1b9fc9a2efedc5031b9cb5e2965aeb7347821310153cf3abc4c898dd493962fb268c5c55081ed7c3 SHA512 1a16c10f500dea97bd4e4ca5f560fe4ab8e746c975d30751b7cf567868743d105ce84055d480e4c18b290adac485e67d1bb14ae1719644d6e42223d96f299a16
DIST SDL2-2.32.0.tar.gz 7625288 BLAKE2B 491796e2b222a49eaead76e60bb6e58bed881667cc61d0ba81ed0e083134b6b13089ca2c4658f6576b2924ddeaffcc9ff5c7532841e7b0797c6bd1769ad74a53 SHA512 a91b8105125f06118e8bfce2a5553fe053f7158dd02f06a36cfc535f09c401eb7da11072e576c6bf6e41fa2e02b08483b9cc4e11c658578b762e1b6c326a45bb
DIST SDL2-2.32.2.tar.gz 7627192 BLAKE2B 5ea13fe60f2388e2ff61f60413ec71be84a429b6b2dbcb98bee8bf59e931396e164347288c68453e2932d9201fc8e53907cfe2fa0e456ae0383edaefa901df9b SHA512 9a608974a69b97fd5589bf8feed4742498f8f07731bcd5b99dd518089acda8b9b4216197b6adf7ca79ef1a9fe47c542033eefe94763e66229b1d9ba5207da5c5
+DIST SDL2-2.32.4.tar.gz 7627336 BLAKE2B 55a24c75c90d77358b647d44c05525ee00bc69f6ed662894bfc32a26dee816254e5ce4a6ab0fdd20e6854b46ff222a13ed83a08d94595e2c26b8bf65e8e012fb SHA512 36e2f9cc743703f03a4fa161b5a8134ded58be8952cd4a1e019ea013c744ece2ef83eac7a79257ee4ce9190dc79d33108cb6f2613d7f935aebe50af8be100a7b
+DIST SDL2-2.32.6.tar.gz 7627447 BLAKE2B d08c733d87af036e8a015a4ef313bbdf4049d7ddc3968693a820ea69e473f2df486eda02303d8fd6b33c2d166dcb7dee7ac0cba19e0b8198c80db7d996fe4702 SHA512 2dae8ae9f10e160a50f625daddad891d25e782130e5a5e3f02079d94ab8858aca92ab8871ab19fdf5be6aca83ffeb9c1ea03949841c2506066f12d2bf2332d47
+DIST sdl2-compat-2.32.54.tar.gz 2816984 BLAKE2B 71b28567f0039c1833f3b80f0bc9d025d08d3dc0bc9fe688e18e38064c2ee84149f6e7b66c04004c1d63fd18d141ca2d0a20280a72b12d48fa0f5976a9100cd5 SHA512 857aee92ab78692b9d9fb1734ee8d0bd59cff6d427a4aef8406e98858182299420d1f129676ad9a939e2b263fe7c78991a0a9ff955bae920f5530919a1f9a0ea
+DIST sdl2-compat-2.32.56.tar.gz 2818364 BLAKE2B ffe635f2f2f220715752185587a4c4cc343acbfe1c17cd96afe176a65354926902b9d26d09c1688130a74561036da808aadc2f93467d4634bf692ffe69b26e57 SHA512 6117480fb29df01779b38e54596994a0e21f7c2247791ac3e2c8e416ea4c1048a3c00c04d74610b208076f9a79a5afee47cd4a072bdd69ddcecdf506fb6517b2
EBUILD libsdl2-2.30.11.ebuild 5854 BLAKE2B 1f848aa68c23cf8baddf3475e6a6ecdb2ee808641e264f156d04f71d5b2929c9e888b83d256d18f39049888989e9d040be6a408e3e8ec94a1b1effe88a816767 SHA512 15091253a1955645fbf0722a09aa941e5e7f71f5e7210928c20ae9f533b6dd7efc2977e99018bfb021f7db603313515b6284d0c2064b07bb69fda8fabc1b5f51
EBUILD libsdl2-2.30.7-r1.ebuild 5811 BLAKE2B 509a377438a52b19c86b9a5cba987346aad542f3acd13d14b8f95d36d267634161ce3410c4a4baadd55765bac43b2934f6cc7dd104cc0b09494d282ad23c7233 SHA512 9cecce56d7e7bfc0d052cc49c3e932b95334455d83a0b049dff2511cdcfb93885c428a4c59cdb3a7bec34e7bc66867bc911d99e55cb6ce45b3f90e9441473896
EBUILD libsdl2-2.32.0.ebuild 5946 BLAKE2B 0bb589317bccec40a47fc435472008b182c2da572dd5e8376818a8ea61f61f0c61bccf9257eb5baba7be60c2b262873da041599f2de88138d0d1e7c31bb633e0 SHA512 f99e6332006c8390df88baf56c4d2bd6916c9698e12975655d2a9e369439040b4d86d1a87b9f9e0ffa7e2007bdf553c91964c27d08c4b31c4041f30ebd99f5f2
-EBUILD libsdl2-2.32.2.ebuild 6002 BLAKE2B befbffbb25f1ced33730d6b026a6ce26a2d74b077c23cd499a19f62ca13ec8702c12662eef2e449327b81e98a7681f53fde8222618295efdd01d66a20ebcc0a9 SHA512 1262b146379a41dbdca7236225c519884ac0852f8b580bcf10cb0888db7904ce69437b2d7aad637c35fe9837dbfa6a87f1c46b42492e8a872cde8942cb6c9029
-MISC metadata.xml 1942 BLAKE2B 89c75b0790ba1e8c489c4d4d9fca4451a863068a4f75e5b97b408d7aba35fd9ba6ec5a855465588f5c143f09380835b89b637b8fb1e09c6b2391a79ed69144b9 SHA512 9e37d24a408b748fef53884442fe5ac5db548657675e23571705680b157cadcb584a059d7f066765fb68e80bf2ba247b2a01cfa095a465aa9dbf03db0e1c4334
+EBUILD libsdl2-2.32.2.ebuild 5995 BLAKE2B 3ac5a7024cf3045066912f19dd432fbcc3ded4d78ab97f594dddec22707d6e18169cbcbb04d81e84c53170d7493f41cce9680081f0ea3657b7d0ddd6963359c4 SHA512 04cfd0af712babec3ff81ee24c12fd98363f8b75c7bc75d826231fe285e3819f79f7d1f5cbb118f34d7aaac6bc281eef9b7fab9f6b253619d7289c3cb19d1be7
+EBUILD libsdl2-2.32.4.ebuild 5953 BLAKE2B 2f5caa6104e45ddcbddb25ce1dd66ca6687897c5feb88cdcf15f37adcd11ee90f3e9a4d7a86fc9e73dbb3eb51238fc23f9dc102581f1a908dc722fb91a80b85d SHA512 aaea144f50b4c067626b2c043550b9fb7ec947f2e51ce40ffa37488c930b0348741dbeb1a817d386eb4e6c3e747ab37c07229fe8a1e1fb18383101e305481b20
+EBUILD libsdl2-2.32.54.ebuild 1823 BLAKE2B 08c88dfe016f798ad7f3204c5b908ab934dfbab23af28ac72f03cdfc823cd465de39a0ce20fb7f30cfba8fbb9b6fd89b7438f4de4e50e6595578f5599ab80565 SHA512 92d64dc5741e2c248db268fd16f75c81cb2b1ae1d2f9ae271e16bc02a977fe2bc46e3bf4dd0821c0e6714ac1f8a0a968547ab3a7a2a43fa989f6e836424e535d
+EBUILD libsdl2-2.32.56.ebuild 1832 BLAKE2B ca3d320ab854c0e4d71fe1afeeb0fee3dfa11ab19314740497689ee2e098dfd710a103ff2455d594102eb7bc3604a12b30073f90e0b4e152cd3f961cc0f54a14 SHA512 6e174622973371d9faf523f13d43c1540c66a66ba963444dda07c7b3141e0a8626ee4244366cf217e9e829424805db70f0dc9c1ffdeb3ae5bd5f0ab5818d4363
+EBUILD libsdl2-2.32.6.ebuild 5998 BLAKE2B bd2c88ae3265ccc29c2bfcbd29576883e1454b3b5af5ffb170edae51c591236ad51b54ef651bbd40dc9296f5ba421aceaf352a5e5bc589e385689a9ca8191c07 SHA512 db21d4e748ae273fc35f3c9a4925f4eabae72d874309668526697ab7a74b54caf436d816fe600b46b0c6875dbd4d658ac817e6bacd6a53bb65c96a8f120d810d
+MISC metadata.xml 2004 BLAKE2B 6606917fa4ba566a3d87bddecb1d7e4cdd8b4f885dbeed616661bb0a3e385540df0a82d7fe51c5858212a070ac3d74b196d794f3ed1d03ed71e941eeed1c233c SHA512 7c9f5bdeb524ae66684e89ea866ae81c47047971eecc811f476b582d129c72d9087b884e7032fb21875999d84879316a49d36be7151b1737ef2179b5b35d7037
diff --git a/media-libs/libsdl2/libsdl2-2.32.2.ebuild b/media-libs/libsdl2/libsdl2-2.32.2.ebuild
index f605a2861ff6..dd003e7b9918 100644
--- a/media-libs/libsdl2/libsdl2-2.32.2.ebuild
+++ b/media-libs/libsdl2/libsdl2-2.32.2.ebuild
@@ -13,7 +13,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="ZLIB"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv sparc x86"
IUSE="alsa aqua cpu_flags_ppc_altivec cpu_flags_x86_3dnow cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 custom-cflags dbus doc fcitx gles1 gles2 +haptic ibus jack +joystick kms libsamplerate nas opengl oss pipewire pulseaudio sndio +sound static-libs test udev +video vulkan wayland X xscreensaver"
RESTRICT="!test? ( test )"
diff --git a/media-libs/libsdl2/libsdl2-2.32.4.ebuild b/media-libs/libsdl2/libsdl2-2.32.4.ebuild
new file mode 100644
index 000000000000..00268da65efc
--- /dev/null
+++ b/media-libs/libsdl2/libsdl2-2.32.4.ebuild
@@ -0,0 +1,214 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib flag-o-matic
+
+MY_P="SDL2-${PV}"
+DESCRIPTION="Simple Direct Media Layer"
+HOMEPAGE="https://www.libsdl.org/"
+SRC_URI="https://www.libsdl.org/release/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+IUSE="alsa aqua cpu_flags_ppc_altivec cpu_flags_x86_3dnow cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 custom-cflags dbus doc fcitx gles1 gles2 +haptic ibus jack +joystick kms libsamplerate nas opengl oss pipewire pulseaudio sndio +sound static-libs test udev +video vulkan wayland X xscreensaver"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="
+ alsa? ( sound )
+ fcitx? ( dbus )
+ gles1? ( video )
+ gles2? ( video )
+ haptic? ( joystick )
+ ibus? ( dbus )
+ jack? ( sound )
+ kms? ( || ( gles1 gles2 opengl ) )
+ nas? ( sound )
+ opengl? ( video )
+ pulseaudio? ( sound )
+ sndio? ( sound )
+ test? ( static-libs )
+ vulkan? ( video )
+ wayland? ( gles2 )
+ xscreensaver? ( X )
+"
+
+COMMON_DEPEND="
+ virtual/libiconv[${MULTILIB_USEDEP}]
+ alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
+ dbus? ( >=sys-apps/dbus-1.6.18-r1[${MULTILIB_USEDEP}] )
+ ibus? ( app-i18n/ibus )
+ jack? ( virtual/jack[${MULTILIB_USEDEP}] )
+ kms? (
+ >=x11-libs/libdrm-2.4.82[${MULTILIB_USEDEP}]
+ >=media-libs/mesa-9.0.0[${MULTILIB_USEDEP},gbm(+)]
+ )
+ libsamplerate? ( media-libs/libsamplerate[${MULTILIB_USEDEP}] )
+ nas? (
+ >=media-libs/nas-1.9.4[${MULTILIB_USEDEP}]
+ >=x11-libs/libXt-1.1.4[${MULTILIB_USEDEP}]
+ )
+ opengl? (
+ >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}]
+ >=virtual/glu-9.0-r1[${MULTILIB_USEDEP}]
+ )
+ pipewire? ( media-video/pipewire:=[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] )
+ udev? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP}] )
+ wayland? (
+ >=dev-libs/wayland-1.20[${MULTILIB_USEDEP}]
+ gui-libs/libdecor[${MULTILIB_USEDEP}]
+ >=media-libs/mesa-9.1.6[${MULTILIB_USEDEP},egl(+),gles2(+),wayland]
+ >=x11-libs/libxkbcommon-0.2.0[${MULTILIB_USEDEP}]
+ )
+ X? (
+ >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXcursor-1.1.14[${MULTILIB_USEDEP}]
+ >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXfixes-6.0.0[${MULTILIB_USEDEP}]
+ >=x11-libs/libXi-1.7.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXrandr-1.4.2[${MULTILIB_USEDEP}]
+ xscreensaver? ( >=x11-libs/libXScrnSaver-1.2.2-r1[${MULTILIB_USEDEP}] )
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ fcitx? ( app-i18n/fcitx:* )
+ gles1? ( media-libs/mesa[${MULTILIB_USEDEP},gles1(+)] )
+ gles2? ( media-libs/mesa[${MULTILIB_USEDEP},gles2(+)] )
+ vulkan? ( media-libs/vulkan-loader )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ gles1? ( media-libs/libglvnd )
+ gles2? ( media-libs/libglvnd )
+ ibus? ( dev-libs/glib:2[${MULTILIB_USEDEP}] )
+ test? ( x11-libs/libX11[${MULTILIB_USEDEP}] )
+ vulkan? ( dev-util/vulkan-headers )
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen
+ media-gfx/graphviz
+ )
+ wayland? ( >=dev-util/wayland-scanner-1.20 )
+"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/SDL2/SDL_config.h
+ /usr/include/SDL2/SDL_platform.h
+ /usr/include/SDL2/begin_code.h
+ /usr/include/SDL2/close_code.h
+)
+
+PATCHES=(
+ "${FILESDIR}"/libsdl2-2.32.0-fix-tests-for-disabled-vulkan-and-gles.patch
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # Unbundle some headers.
+ rm -r src/video/khronos || die
+ ln -s "${ESYSROOT}/usr/include" src/video/khronos || die
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+
+ local mycmakeargs=(
+ -DSDL_STATIC=$(usex static-libs)
+ -DSDL_SYSTEM_ICONV=ON
+ -DSDL_GCC_ATOMICS=ON
+ -DSDL_AUDIO=$(usex sound)
+ -DSDL_VIDEO=$(usex video)
+ -DSDL_JOYSTICK=$(usex joystick)
+ -DSDL_HAPTIC=$(usex haptic)
+ -DSDL_POWER=ON
+ -DSDL_FILESYSTEM=ON
+ -DSDL_TIMERS=ON
+ -DSDL_FILE=ON
+ -DSDL_LOADSO=ON
+ -DSDL_ASSEMBLY=ON
+ -DSDL_ALTIVEC=$(usex cpu_flags_ppc_altivec)
+ -DSDL_SSEMATH=$(usex cpu_flags_x86_sse)
+ -DSDL_MMX=$(usex cpu_flags_x86_mmx)
+ -DSDL_3DNOW=$(usex cpu_flags_x86_3dnow)
+ -DSDL_SSE=$(usex cpu_flags_x86_sse)
+ -DSDL_SSE2=$(usex cpu_flags_x86_sse2)
+ -DSDL_SSE3=$(usex cpu_flags_x86_sse3)
+ -DSDL_OSS=$(usex oss)
+ -DSDL_ALSA=$(usex alsa)
+ -DSDL_ALSA_SHARED=OFF
+ -DSDL_JACK=$(usex jack)
+ -DSDL_JACK_SHARED=OFF
+ -DSDL_ESD=OFF
+ -DSDL_PIPEWIRE=$(usex pipewire)
+ -DSDL_PIPEWIRE_SHARED=OFF
+ -DSDL_PULSEAUDIO=$(usex pulseaudio)
+ -DSDL_PULSEAUDIO_SHARED=OFF
+ -DSDL_ARTS=OFF
+ -DSDL_LIBSAMPLERATE=$(usex libsamplerate)
+ -DSDL_LIBSAMPLERATE_SHARED=OFF
+ -DSDL_WERROR=OFF
+ -DSDL_NAS=$(usex nas)
+ -DSDL_NAS_SHARED=OFF
+ -DSDL_SNDIO=$(usex sndio)
+ -DSDL_SNDIO_SHARED=OFF
+ -DSDL_DISKAUDIO=$(usex sound)
+ -DSDL_DUMMYAUDIO=$(usex sound)
+ -DSDL_WAYLAND=$(usex wayland)
+ -DSDL_WAYLAND_SHARED=OFF
+ -DSDL_WAYLAND_LIBDECOR=$(usex wayland)
+ -DSDL_WAYLAND_LIBDECOR_SHARED=OFF
+ -DSDL_RPI=OFF
+ -DSDL_X11=$(usex X)
+ -DSDL_X11_SHARED=OFF
+ -DSDL_X11_XSCRNSAVER=$(usex xscreensaver)
+ -DSDL_COCOA=$(usex aqua)
+ -DSDL_DIRECTFB=OFF
+ -DSDL_FUSIONSOUND=OFF
+ -DSDL_KMSDRM=$(usex kms)
+ -DSDL_KMSDRM_SHARED=OFF
+ -DSDL_DUMMYVIDEO=$(usex video)
+ -DSDL_OPENGL=$(usex opengl)
+ -DSDL_OPENGLES=$(use gles1 || use gles2 && echo ON || echo OFF)
+ -DSDL_VULKAN=$(usex vulkan)
+ -DSDL_LIBUDEV=$(usex udev)
+ -DSDL_DBUS=$(usex dbus)
+ -DSDL_IBUS=$(usex ibus)
+ -DSDL_CCACHE=OFF
+ -DSDL_DIRECTX=OFF
+ -DSDL_RPATH=OFF
+ -DSDL_VIDEO_RENDER_D3D=OFF
+ -DSDL_TESTS=$(usex test)
+ )
+ cmake-multilib_src_configure
+}
+
+src_compile() {
+ multilib-minimal_src_compile
+
+ if use doc; then
+ cd docs || die
+ doxygen || die
+ fi
+}
+
+src_test() {
+ # Unset all SDL_* variables as they cause issues for tests.
+ unset "${!SDL_@}"
+ cmake-multilib_src_test
+}
+
+multilib_src_install_all() {
+ rm -r "${ED}"/usr/share/licenses/ || die
+ dodoc {BUGS,CREDITS,README-SDL,TODO,WhatsNew}.txt README.md docs/README*.md
+ use doc && dodoc -r docs/output/html/
+}
diff --git a/media-libs/libsdl2/libsdl2-2.32.54.ebuild b/media-libs/libsdl2/libsdl2-2.32.54.ebuild
new file mode 100644
index 000000000000..e08083c44cb1
--- /dev/null
+++ b/media-libs/libsdl2/libsdl2-2.32.54.ebuild
@@ -0,0 +1,55 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib
+
+# TODO: switch to new description when non-compat is gone, this is so it is
+# not displayed on packages.gentoo.org which may be confusing for users
+DESCRIPTION="Simple Direct Media Layer"
+#DESCRIPTION="Simple Direct Media Layer 2 compatibility wrapper around SDL3"
+HOMEPAGE="https://www.libsdl.org/"
+SRC_URI="https://www.libsdl.org/release/sdl2-compat-${PV}.tar.gz"
+S=${WORKDIR}/sdl2-compat-${PV}
+
+LICENSE="ZLIB"
+SLOT="0"
+# unkeyworded for testing
+#KEYWORDS="~amd64"
+# this skips most non-compat libsdl2 former IUSE that are not used by revdeps,
+# albeit it is questionable that some depend on audio alsa/pipewire (note that
+# static-libs is left out because it is useless for static-only builds given
+# it will dlopen the shared libsdl3 anyway)
+#
+# TODO: either update revdeps to have (+) on no-op IUSE (haptic, joystick,
+# sound, and video) then cleanup, or don't for less overlay issues and instead
+# force in profiles to avoid unnecessary rebuilds -- not forced right now given
+# >=2.32.50 would force for a potential future non-compat 2.34.0 fwiw
+IUSE="
+ X alsa gles2 +haptic +joystick kms opengl pipewire pulseaudio
+ +sound test +video vulkan wayland
+"
+REQUIRED_USE="gles2? ( opengl )"
+RESTRICT="!test? ( test )"
+
+# libsdl3 is dlopen'ed and USE at build time should not matter, it enables
+# everything but will not work without libsdl3 support at runtime
+RDEPEND="
+ media-libs/libsdl3[X?,alsa?,opengl?,pipewire?,pulseaudio?,vulkan?,wayland?,${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ local mycmakeargs=(
+ -DSDL2COMPAT_TESTS=$(usex test)
+ )
+
+ cmake-multilib_src_configure
+}
+
+src_install() {
+ cmake-multilib_src_install
+
+ rm -r -- "${ED}"/usr/share/licenses || die
+}
diff --git a/media-libs/libsdl2/libsdl2-2.32.56.ebuild b/media-libs/libsdl2/libsdl2-2.32.56.ebuild
new file mode 100644
index 000000000000..84831c0d5868
--- /dev/null
+++ b/media-libs/libsdl2/libsdl2-2.32.56.ebuild
@@ -0,0 +1,55 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib
+
+# TODO: switch to new description when non-compat is gone, this is so it is
+# not displayed on packages.gentoo.org which may be confusing for users
+DESCRIPTION="Simple Direct Media Layer"
+#DESCRIPTION="Simple Direct Media Layer 2 compatibility wrapper around SDL3"
+HOMEPAGE="https://www.libsdl.org/"
+SRC_URI="https://www.libsdl.org/release/sdl2-compat-${PV}.tar.gz"
+S=${WORKDIR}/sdl2-compat-${PV}
+
+LICENSE="ZLIB"
+SLOT="0"
+# unkeyworded for testing
+#KEYWORDS="~amd64"
+# this skips most non-compat libsdl2 former IUSE that are not used by revdeps,
+# albeit it is questionable that some depend on audio alsa/pipewire (note that
+# static-libs is left out because it is useless for static-only builds given
+# it will dlopen the shared libsdl3 anyway)
+#
+# TODO: either update revdeps to have (+) on no-op IUSE (haptic, joystick,
+# sound, and video) then cleanup, or don't for less overlay issues and instead
+# force in profiles to avoid unnecessary rebuilds -- not forced right now given
+# >=2.32.50 would force for a potential future non-compat 2.34.0 fwiw
+IUSE="
+ X alsa gles2 +haptic +joystick kms opengl pipewire pulseaudio
+ +sound test +video vulkan wayland
+"
+REQUIRED_USE="gles2? ( opengl )"
+RESTRICT="!test? ( test )"
+
+# libsdl3 is dlopen'ed and USE at build time should not matter, it enables
+# everything but will not work without libsdl3 support at runtime
+RDEPEND="
+ >=media-libs/libsdl3-3.2.12[X?,alsa?,opengl?,pipewire?,pulseaudio?,vulkan?,wayland?,${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ local mycmakeargs=(
+ -DSDL2COMPAT_TESTS=$(usex test)
+ )
+
+ cmake-multilib_src_configure
+}
+
+src_install() {
+ cmake-multilib_src_install
+
+ rm -r -- "${ED}"/usr/share/licenses || die
+}
diff --git a/media-libs/libsdl2/libsdl2-2.32.6.ebuild b/media-libs/libsdl2/libsdl2-2.32.6.ebuild
new file mode 100644
index 000000000000..8fffb0bd9cac
--- /dev/null
+++ b/media-libs/libsdl2/libsdl2-2.32.6.ebuild
@@ -0,0 +1,216 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib dot-a flag-o-matic
+
+MY_P="SDL2-${PV}"
+DESCRIPTION="Simple Direct Media Layer"
+HOMEPAGE="https://www.libsdl.org/"
+SRC_URI="https://www.libsdl.org/release/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+IUSE="alsa aqua cpu_flags_ppc_altivec cpu_flags_x86_3dnow cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 custom-cflags dbus doc fcitx gles1 gles2 +haptic ibus jack +joystick kms libsamplerate nas opengl oss pipewire pulseaudio sndio +sound static-libs test udev +video vulkan wayland X xscreensaver"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="
+ alsa? ( sound )
+ fcitx? ( dbus )
+ gles1? ( video )
+ gles2? ( video )
+ haptic? ( joystick )
+ ibus? ( dbus )
+ jack? ( sound )
+ kms? ( || ( gles1 gles2 opengl ) )
+ nas? ( sound )
+ opengl? ( video )
+ pulseaudio? ( sound )
+ sndio? ( sound )
+ test? ( static-libs )
+ vulkan? ( video )
+ wayland? ( gles2 )
+ xscreensaver? ( X )
+"
+
+COMMON_DEPEND="
+ virtual/libiconv[${MULTILIB_USEDEP}]
+ alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
+ dbus? ( >=sys-apps/dbus-1.6.18-r1[${MULTILIB_USEDEP}] )
+ ibus? ( app-i18n/ibus )
+ jack? ( virtual/jack[${MULTILIB_USEDEP}] )
+ kms? (
+ >=x11-libs/libdrm-2.4.82[${MULTILIB_USEDEP}]
+ >=media-libs/mesa-9.0.0[${MULTILIB_USEDEP},gbm(+)]
+ )
+ libsamplerate? ( media-libs/libsamplerate[${MULTILIB_USEDEP}] )
+ nas? (
+ >=media-libs/nas-1.9.4[${MULTILIB_USEDEP}]
+ >=x11-libs/libXt-1.1.4[${MULTILIB_USEDEP}]
+ )
+ opengl? (
+ >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}]
+ >=virtual/glu-9.0-r1[${MULTILIB_USEDEP}]
+ )
+ pipewire? ( media-video/pipewire:=[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] )
+ udev? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP}] )
+ wayland? (
+ >=dev-libs/wayland-1.20[${MULTILIB_USEDEP}]
+ gui-libs/libdecor[${MULTILIB_USEDEP}]
+ >=media-libs/mesa-9.1.6[${MULTILIB_USEDEP},egl(+),gles2(+),wayland]
+ >=x11-libs/libxkbcommon-0.2.0[${MULTILIB_USEDEP}]
+ )
+ X? (
+ >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXcursor-1.1.14[${MULTILIB_USEDEP}]
+ >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXfixes-6.0.0[${MULTILIB_USEDEP}]
+ >=x11-libs/libXi-1.7.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXrandr-1.4.2[${MULTILIB_USEDEP}]
+ xscreensaver? ( >=x11-libs/libXScrnSaver-1.2.2-r1[${MULTILIB_USEDEP}] )
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ fcitx? ( app-i18n/fcitx:* )
+ gles1? ( media-libs/mesa[${MULTILIB_USEDEP},gles1(+)] )
+ gles2? ( media-libs/mesa[${MULTILIB_USEDEP},gles2(+)] )
+ vulkan? ( media-libs/vulkan-loader )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ gles1? ( media-libs/libglvnd )
+ gles2? ( media-libs/libglvnd )
+ ibus? ( dev-libs/glib:2[${MULTILIB_USEDEP}] )
+ test? ( x11-libs/libX11[${MULTILIB_USEDEP}] )
+ vulkan? ( dev-util/vulkan-headers )
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen
+ media-gfx/graphviz
+ )
+ wayland? ( >=dev-util/wayland-scanner-1.20 )
+"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/SDL2/SDL_config.h
+ /usr/include/SDL2/SDL_platform.h
+ /usr/include/SDL2/begin_code.h
+ /usr/include/SDL2/close_code.h
+)
+
+PATCHES=(
+ "${FILESDIR}"/libsdl2-2.32.0-fix-tests-for-disabled-vulkan-and-gles.patch
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # Unbundle some headers.
+ rm -r src/video/khronos || die
+ ln -s "${ESYSROOT}/usr/include" src/video/khronos || die
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ lto-guarantee-fat
+
+ local mycmakeargs=(
+ -DSDL_STATIC=$(usex static-libs)
+ -DSDL_SYSTEM_ICONV=ON
+ -DSDL_GCC_ATOMICS=ON
+ -DSDL_AUDIO=$(usex sound)
+ -DSDL_VIDEO=$(usex video)
+ -DSDL_JOYSTICK=$(usex joystick)
+ -DSDL_HAPTIC=$(usex haptic)
+ -DSDL_POWER=ON
+ -DSDL_FILESYSTEM=ON
+ -DSDL_TIMERS=ON
+ -DSDL_FILE=ON
+ -DSDL_LOADSO=ON
+ -DSDL_ASSEMBLY=ON
+ -DSDL_ALTIVEC=$(usex cpu_flags_ppc_altivec)
+ -DSDL_SSEMATH=$(usex cpu_flags_x86_sse)
+ -DSDL_MMX=$(usex cpu_flags_x86_mmx)
+ -DSDL_3DNOW=$(usex cpu_flags_x86_3dnow)
+ -DSDL_SSE=$(usex cpu_flags_x86_sse)
+ -DSDL_SSE2=$(usex cpu_flags_x86_sse2)
+ -DSDL_SSE3=$(usex cpu_flags_x86_sse3)
+ -DSDL_OSS=$(usex oss)
+ -DSDL_ALSA=$(usex alsa)
+ -DSDL_ALSA_SHARED=OFF
+ -DSDL_JACK=$(usex jack)
+ -DSDL_JACK_SHARED=OFF
+ -DSDL_ESD=OFF
+ -DSDL_PIPEWIRE=$(usex pipewire)
+ -DSDL_PIPEWIRE_SHARED=OFF
+ -DSDL_PULSEAUDIO=$(usex pulseaudio)
+ -DSDL_PULSEAUDIO_SHARED=OFF
+ -DSDL_ARTS=OFF
+ -DSDL_LIBSAMPLERATE=$(usex libsamplerate)
+ -DSDL_LIBSAMPLERATE_SHARED=OFF
+ -DSDL_WERROR=OFF
+ -DSDL_NAS=$(usex nas)
+ -DSDL_NAS_SHARED=OFF
+ -DSDL_SNDIO=$(usex sndio)
+ -DSDL_SNDIO_SHARED=OFF
+ -DSDL_DISKAUDIO=$(usex sound)
+ -DSDL_DUMMYAUDIO=$(usex sound)
+ -DSDL_WAYLAND=$(usex wayland)
+ -DSDL_WAYLAND_SHARED=OFF
+ -DSDL_WAYLAND_LIBDECOR=$(usex wayland)
+ -DSDL_WAYLAND_LIBDECOR_SHARED=OFF
+ -DSDL_RPI=OFF
+ -DSDL_X11=$(usex X)
+ -DSDL_X11_SHARED=OFF
+ -DSDL_X11_XSCRNSAVER=$(usex xscreensaver)
+ -DSDL_COCOA=$(usex aqua)
+ -DSDL_DIRECTFB=OFF
+ -DSDL_FUSIONSOUND=OFF
+ -DSDL_KMSDRM=$(usex kms)
+ -DSDL_KMSDRM_SHARED=OFF
+ -DSDL_DUMMYVIDEO=$(usex video)
+ -DSDL_OPENGL=$(usex opengl)
+ -DSDL_OPENGLES=$(use gles1 || use gles2 && echo ON || echo OFF)
+ -DSDL_VULKAN=$(usex vulkan)
+ -DSDL_LIBUDEV=$(usex udev)
+ -DSDL_DBUS=$(usex dbus)
+ -DSDL_IBUS=$(usex ibus)
+ -DSDL_CCACHE=OFF
+ -DSDL_DIRECTX=OFF
+ -DSDL_RPATH=OFF
+ -DSDL_VIDEO_RENDER_D3D=OFF
+ -DSDL_TESTS=$(usex test)
+ )
+ cmake-multilib_src_configure
+}
+
+src_compile() {
+ multilib-minimal_src_compile
+
+ if use doc; then
+ cd docs || die
+ doxygen || die
+ fi
+}
+
+src_test() {
+ # Unset all SDL_* variables as they cause issues for tests.
+ unset "${!SDL_@}"
+ cmake-multilib_src_test
+}
+
+multilib_src_install_all() {
+ rm -r "${ED}"/usr/share/licenses/ || die
+ dodoc {BUGS,CREDITS,README-SDL,TODO,WhatsNew}.txt README.md docs/README*.md
+ use doc && dodoc -r docs/output/html/
+ strip-lto-bytecode
+}
diff --git a/media-libs/libsdl2/metadata.xml b/media-libs/libsdl2/metadata.xml
index 5388257b6225..b86b4085abc4 100644
--- a/media-libs/libsdl2/metadata.xml
+++ b/media-libs/libsdl2/metadata.xml
@@ -37,5 +37,6 @@
</use>
<upstream>
<remote-id type="github">libsdl-org/SDL</remote-id>
+ <remote-id type="github">libsdl-org/sdl2-compat</remote-id>
</upstream>
</pkgmetadata>