--- /dev/null
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gzdoom
+PKG_VERSION:=4.13.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=g$(PKG_VERSION).zip
+PKG_SOURCE_URL:=https://github.com/ZDoom/gzdoom/archive/refs/tags/
+PKG_HASH:=e584c6436f7ea2c9186324dc75a3f1eebf4302fbdd2f98db13550cff2dd393a3
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-g$(PKG_VERSION)
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-g$(PKG_VERSION)
+
+PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
+PKG_LICENSE:=BSD-3c
+PKG_LICENSE_FILES:=COPYING LICENSE
+
+CMAKE_INSTALL:=1
+PKG_BUILD_DEPENDS:=gzdoom/host vulkan-loader
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+CMAKE_OPTIONS += \
+ -DHAVE_VULKAN=ON \
+ -DHAVE_GLES2=ON \
+ -DNO_OPENAL=ON \
+ -DFORCE_INTERNAL_BZIP2=ON \
+ -DSDL2_INCLUDE_DIR="$(STAGING_DIR)/usr/include/SDL2" \
+ -DIMPORT_EXECUTABLES="$(STAGING_DIR_HOSTPKG)/share/gzdoom/ImportExecutables.cmake" \
+ -DVULKAN_USE_XLIB=OFF \
+ -DVULKAN_USE_WAYLAND=ON
+
+define Package/gzdoom
+ SECTION:=games
+ CATEGORY:=Games
+ TITLE:=GZDoom
+ URL:=https://zdoom.org/
+ DEPENDS:=+alsa-lib +glib2 +libbz2 +libstdcpp +libzmusic +libvpx +libsdl2 +USE_MUSL:musl-fts
+endef
+
+define Package/gzdoom/description
+ ZDoom is a family of enhanced ports of the Doom engine for running on modern
+ operating systems. Use this port of DOOM on systems with some sort of hardware
+ 3D acceleration support.
+endef
+
+define Host/Install
+ $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/share/gzdoom
+ $(INSTALL_DATA) $(HOST_BUILD_DIR)/ImportExecutables.cmake $(STAGING_DIR_HOSTPKG)/share/gzdoom
+endef
+
+define Host/Uninstall
+ $(RM) $(STAGING_DIR_HOSTPKG)/share/gzdoom/ImportExecutables.cmake
+endef
+
+define Package/gzdoom/install
+ $(INSTALL_DIR) $(1)/usr/share/games
+ $(CP) $(PKG_INSTALL_DIR)/usr/share/games/* $(1)/usr/share/games
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gzdoom $(1)/usr/bin
+endef
+
+$(eval $(call BuildPackage,gzdoom))
+$(eval $(call HostBuild))
--- /dev/null
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -291,6 +291,7 @@ else()
+ if ( NOT HAVE_FTS )
+ include ( FindPkgConfig )
+ pkg_check_modules( MUSL_FTS musl-fts )
++ string(REPLACE ";" " " MUSL_FTS_LDFLAGS "${MUSL_FTS_LDFLAGS}")
+ if ( MUSL_FTS_FOUND )
+ set ( ALL_C_FLAGS "${ALL_C_FLAGS} ${MUSL_FTS_LDFLAGS}" )
+ else ( MUSL_FTS_FOUND )
--- /dev/null
+From https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/35711#note_243863
+_GNU_SOURCE is needed for cpu_set_t, and affinity disable is needed to work around lack of pthread_attr_setaffinity_np
+--- a/libraries/lzma/CMakeLists.txt
++++ b/libraries/lzma/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ make_release_only()
+
+-set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DZ7_PPMD_SUPPORT" )
++set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE -DZ7_PPMD_SUPPORT -DZ7_AFFINITY_DISABLE" )
+
+ find_package(Threads)
+
--- /dev/null
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -337,6 +337,7 @@ option(FORCE_INTERNAL_BZIP2 "Use interna
+ option(FORCE_INTERNAL_ASMJIT "Use internal asmjit" ON)
+ mark_as_advanced( FORCE_INTERNAL_ASMJIT )
+
++if( CMAKE_CROSSCOMPILING )
+ if (HAVE_VULKAN)
+ add_subdirectory( libraries/ZVulkan )
+ endif()
+@@ -375,6 +376,7 @@ if( ${HAVE_VM_JIT} )
+ set( ASMJIT_LIBRARY asmjit )
+ endif()
+ endif()
++endif()
+
+ if( BZIP2_FOUND AND NOT FORCE_INTERNAL_BZIP2 )
+ message( STATUS "Using system bzip2 library, includes found at ${BZIP2_INCLUDE_DIR}" )
+@@ -409,12 +411,14 @@ option( DYN_OPENAL "Dynamically load Ope
+ add_subdirectory( libraries/lzma )
+ add_subdirectory( libraries/miniz )
+ add_subdirectory( tools )
++if( CMAKE_CROSSCOMPILING )
+ add_subdirectory( wadsrc )
+ add_subdirectory( wadsrc_bm )
+ add_subdirectory( wadsrc_lights )
+ add_subdirectory( wadsrc_extra )
+ add_subdirectory( wadsrc_widepix )
+ add_subdirectory( src )
++endif()
+
+ if( NOT CMAKE_CROSSCOMPILING )
+ export(TARGETS ${CROSS_EXPORTS} FILE "${CMAKE_BINARY_DIR}/ImportExecutables.cmake" )
--- /dev/null
+--- a/libraries/lzma/CMakeLists.txt
++++ b/libraries/lzma/CMakeLists.txt
+@@ -2,8 +2,6 @@ make_release_only()
+
+ set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE -DZ7_PPMD_SUPPORT -D_7ZIP_AFFINITY_DISABLE" )
+
+-find_package(Threads)
+-
+ add_library( lzma STATIC
+ C/7zAlloc.c
+ C/7zArcIn.c
+@@ -48,4 +46,5 @@ add_library( lzma STATIC
+ C/XzEnc.c
+ C/XzIn.c
+ )
+-target_link_libraries( lzma Threads::Threads )
++
++target_link_libraries( lzma PUBLIC pthread )
--- /dev/null
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -358,7 +358,7 @@ if( HAVE_VM_JIT AND UNIX )
+ if( HAVE_LIBEXECINFO )
+ set( ALL_C_FLAGS "${ALL_C_FLAGS} -lexecinfo" )
+ else( HAVE_LIBEXECINFO )
+- set( HAVE_VM_JIT NO )
++ # set( HAVE_VM_JIT NO )
+ endif( HAVE_LIBEXECINFO )
+ set( CMAKE_REQUIRED_FLAGS )
+ endif( NOT HAVE_BACKTRACE )
+--- a/src/common/scripting/jit/jit_runtime.cpp
++++ b/src/common/scripting/jit/jit_runtime.cpp
+@@ -7,7 +7,6 @@
+ #include <DbgHelp.h>
+ #include <psapi.h>
+ #else
+-#include <execinfo.h>
+ #include <cxxabi.h>
+ #include <cstring>
+ #include <cstdlib>
+@@ -806,7 +805,7 @@ static int CaptureStackTrace(int max_fra
+ // JIT isn't supported here, so just do nothing.
+ return 0;//return RtlCaptureStackBackTrace(0, min(max_frames, 32), out_frames, nullptr);
+ #else
+- return backtrace(out_frames, max_frames);
++ return 0;
+ #endif
+ }
+
+@@ -868,7 +867,9 @@ class NativeSymbolResolver
+ public:
+ FString GetName(void *frame)
+ {
+- FString s;
++ FString s = "no backtrace";
++ return s;
++ #if 0
+ char **strings;
+ void *frames[1] = { frame };
+ strings = backtrace_symbols(frames, 1);
+@@ -925,6 +926,7 @@ public:
+
+ free(strings);
+ return s;
++ #endif
+ }
+ };
+ #endif
--- /dev/null
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=zmusic
+PKG_VERSION:=1.1.14
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/ZDoom/ZMusic
+PKG_SOURCE_VERSION:=89f3d65734470fb7ec0c1e69f73a0cfcc88ed557
+PKG_MIRROR_HASH:=104af83c55909a3cc2151bf9a32b153355fab76ee503bf199f49fb401f595a2b
+
+PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
+PKG_LICENSE:=GPL-3.0
+PKG_LICENSE_FILES:=licenses/bsd.txt licenses/dumb.txt licenses/gplv3.txt \
+ licenses/legal.txt licenses/lgplv21.txt licenses/lgplv3.txt \
+ licenses/zmusic.txt
+
+CMAKE_INSTALL:=1
+PKG_BUILD_FLAGS:=gc-sections lto
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/libzmusic
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=ZMusic
+ URL:=https://zdoom.org/
+ DEPENDS:=+libstdcpp +libsndfile +alsa-lib +glib2
+endef
+
+define Package/libzmusic/description
+ GZDoom's music system as a standalone library
+endef
+
+define Package/libzmusic/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libzmusic.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libzmusic))