diff --git a/community/sdl2_mixer/APKBUILD b/community/sdl2_mixer/APKBUILD
index 3377e39251ba3842867617ae8debe1607adf5df8..44feab700fec80188bde42a3ceb80f583ebec828 100644
--- a/community/sdl2_mixer/APKBUILD
+++ b/community/sdl2_mixer/APKBUILD
@@ -2,34 +2,43 @@
 # Maintainer: Francesco Colista <fcolista@alpinelinux.org>
 pkgname=sdl2_mixer
 pkgver=2.6.2
-pkgrel=0
+pkgrel=1
 pkgdesc="A simple multi-channel audio mixer"
 url="https://github.com/libsdl-org/SDL_mixer"
 arch="all"
 license="Zlib"
-makedepends="sdl2-dev libvorbis-dev libmikmod-dev mpg123-dev
-	libmodplug-dev flac-dev linux-headers"
-subpackages="$pkgname-dev"
+makedepends="
+	cmake
+	flac-dev
+	fluidsynth-dev
+	libmikmod-dev
+	libmodplug-dev
+	libvorbis-dev
+	linux-headers
+	mpg123-dev
+	opusfile-dev
+	samurai
+	sdl2-dev
+	"
+subpackages="$pkgname-dev $pkgname-doc"
 options="!check" # no test suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/libsdl-org/SDL_mixer/archive/refs/tags/release-$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/libsdl-org/SDL_mixer/archive/refs/tags/release-$pkgver.tar.gz
+	vfork-check.patch
+	"
 builddir="$srcdir/SDL_mixer-release-$pkgver"
 
 build() {
-	./configure \
-		--build=$CBUILD \
-		--host=$CHOST \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-		--mandir=/usr/share/man \
-		--infodir=/usr/share/info \
-		--enable-music-mod
-	make
+	cmake -B build -G Ninja \
+		-DCMAKE_BUILD_TYPE=MinSizeRel \
+		-DCMAKE_INSTALL_PREFIX=/usr
+	cmake --build build
 }
 
 package() {
-	make DESTDIR="$pkgdir" install
+	DESTDIR="$pkgdir" cmake --install build
 }
 
 sha512sums="
 a9d771dd7abab523d8c66c5f355432158df17a857adcc0a77ed7e1e12f5357df391e5fc354bd8f5dc1841297f78ae9d4414ac2235bbfeaabef4c3ca7fda288ee  sdl2_mixer-2.6.2.tar.gz
+f2a23937d4508e7aa91cc96abd8126180537723e5fd017a88f0299649676a193e1f3eb9123a5b9fb6e5d1569bd0854b84834e4db0f5b54c0734baafa2e84c04c  vfork-check.patch
 "
diff --git a/community/sdl2_mixer/vfork-check.patch b/community/sdl2_mixer/vfork-check.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1c79c64b52ad5cf34ecb21a40ba31463c4075dca
--- /dev/null
+++ b/community/sdl2_mixer/vfork-check.patch
@@ -0,0 +1,39 @@
+Patch-Source: https://github.com/libsdl-org/SDL_mixer/commit/2385a504cee8aaffba5799380e512895d30fd578
+From 2385a504cee8aaffba5799380e512895d30fd578 Mon Sep 17 00:00:00 2001
+From: Ozkan Sezer <sezeroz@gmail.com>
+Date: Wed, 20 Jul 2022 02:03:32 +0300
+Subject: [PATCH] cmake: fix check for vfork()
+
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 55352cc..d030215 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -294,21 +294,21 @@ if(SDL2MIXER_CMD)
+     target_compile_definitions(SDL2_mixer PRIVATE MUSIC_CMD)
+     set(fork_found OFF)
+     if(NOT fork_found)
+-        check_symbol_exists(fork sys/unistd.h HAVE_FORK)
++        check_symbol_exists(fork unistd.h HAVE_FORK)
+         if(HAVE_FORK)
+             set(fork_found ON)
+             target_compile_definitions(SDL2_mixer PRIVATE HAVE_FORK)
+         endif()
+     endif()
+     if(NOT fork_found)
+-        check_symbol_exists(fork sys/unistd.h HAVE_VFORK)
++        check_symbol_exists(vfork unistd.h HAVE_VFORK)
+         if(HAVE_VFORK)
+             set(fork_found ON)
+             target_compile_definitions(SDL2_mixer PRIVATE HAVE_VFORK)
+         endif()
+     endif()
+     if(NOT fork_found)
+-        message(FATAL_ERROR "Neither fork() or vfork() or available on this platform. Reconfigure with -DSDL2MIXER_CMD=OFF.")
++        message(FATAL_ERROR "Neither fork() nor vfork() or available on this platform. Reconfigure with -DSDL2MIXER_CMD=OFF.")
+     endif()
+ endif()
+