diff --git a/main/cmake/APKBUILD b/main/cmake/APKBUILD
index 835edfd93ec7555fa9f159e5c954c4d52eed99f1..f64a5d42c63bfd66b186358abd9047c99739725d 100644
--- a/main/cmake/APKBUILD
+++ b/main/cmake/APKBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=cmake
 pkgver=3.24.1
-pkgrel=1
+pkgrel=2
 pkgdesc="Cross-platform, open-source make system"
 url="https://www.cmake.org/"
 arch="all"
@@ -11,12 +11,12 @@ makedepends="
 	bzip2-dev
 	curl-dev
 	expat-dev
-	libarchive-dev
 	libuv-dev
 	linux-headers
 	ncurses-dev
 	py3-sphinx
 	rhash-dev
+	samurai
 	xz-dev
 	zlib-dev
 	"
@@ -37,6 +37,11 @@ build() {
 	# dependency, we use the bundled version of jsoncpp.
 	# Do NOT remove --no-system-jsoncpp unless you consulted
 	# maintainer
+	# no-system-libarchive is to work around a circle with zstd,
+	# cmake -> libarchive -> zstd -> cmake
+	# zstd needs cmake to generate .cmake files that everything seems to need
+	# these days
+
 	./bootstrap \
 		--prefix=/usr \
 		--mandir=/share/man \
@@ -44,9 +49,11 @@ build() {
 		--docdir=/share/doc/$pkgname \
 		--sphinx-man \
 		--system-libs \
+		--no-system-libarchive \
 		--no-system-jsoncpp \
+		--generator=Ninja \
 		--parallel="${JOBS:-2}"
-	make
+	ninja
 }
 
 check() {
@@ -54,7 +61,7 @@ check() {
 }
 
 package() {
-	make DESTDIR="$pkgdir" install
+	DESTDIR="$pkgdir" ninja install
 }
 
 sha512sums="