diff options
4 files changed, 99 insertions, 0 deletions
diff --git a/games-engines/devilutionx/Manifest b/games-engines/devilutionx/Manifest index 6f525083a265..c0aa8501e30f 100644 --- a/games-engines/devilutionx/Manifest +++ b/games-engines/devilutionx/Manifest @@ -1 +1,2 @@ DIST devilutionx-1.2.1.tar.gz 3573200 BLAKE2B c3055bfa8ae0a670e21561673e23277fb76e2b24d269fdd86d13510f68a0e841ec96ab06cf98739913870884d82037b5297ce168e6cba1f8795de6ea72620649 SHA512 9327b127d0ad22d640b1a13fad9bfa00ba0fc512dd7ed362a9e84a80278d84634cd039cba7c98f15425715b11a35dc6ac07d75c816c3cbc818e6ab8c4437cf18 +DIST devilutionx-1.4.0.tar.xz 19752052 BLAKE2B 3a79e9d88cc2f5623dfd7d4ad2a0a547361cde8d95197be36dc7076e0b56fa1a915c57bf5537f5e4508201c3b5a283ab90d13db93b3836b0f12c6108abf1578a SHA512 9519c0bd52798f35fc986fab867b0005010f089b35200b5d54b7ed94145c2df54270a570cd3b0ff1c260f645d624a145e3581d744b48ae513919eb2258331bcf diff --git a/games-engines/devilutionx/devilutionx-1.4.0.ebuild b/games-engines/devilutionx/devilutionx-1.4.0.ebuild new file mode 100644 index 000000000000..c4ee3ebfae38 --- /dev/null +++ b/games-engines/devilutionx/devilutionx-1.4.0.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake xdg + +DESCRIPTION="Diablo engine for modern operating systems" +HOMEPAGE="https://github.com/diasurgical/devilutionX/" +SRC_URI="https://github.com/diasurgical/devilutionX/releases/download/${PV}/devilutionx-src.tar.xz -> ${P}.tar.xz" +S="${WORKDIR}/${PN}-src-${PV}" + +LICENSE="Unlicense CC-BY-4.0 GPL-2+ LGPL-2.1+ MIT OFL-1.1 zerotier? ( BSL-1.1 )" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug +sodium test zerotier" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-arch/bzip2:= + dev-libs/libfmt:= + media-libs/libsdl2[haptic,joystick,opengl,video] + media-libs/sdl2-image[png] + sys-libs/zlib:= + media-libs/sdl_audiolib + sodium? ( dev-libs/libsodium:= )" +DEPEND=" + ${RDEPEND} + dev-cpp/asio + test? ( dev-cpp/gtest )" +BDEPEND="sys-devel/gettext" + +PATCHES=( + "${FILESDIR}"/${P}-system-sdl_audiolib.patch +) + +src_prepare() { + cmake_src_prepare + + # use system asio + echo 'add_library(asio INTERFACE)' > 3rdParty/asio/CMakeLists.txt || die +} + +src_configure() { + local mycmakeargs=( + -DBUILD_TESTING=$(usex test) + -DCCACHE_PROGRAM=OFF #813768 + -DDEBUG=$(usex debug) + -DDISABLE_LTO=ON # let CFLAGS control this + -DDISABLE_ZERO_TIER=$(usex !zerotier) + -DPACKET_ENCRYPTION=$(usex sodium) + -DPIE=ON + ) + [[ ${PV} == 9999 ]] || mycmakeargs+=( -DVERSION_NUM=${PV} ) + + cmake_src_configure +} + +src_install() { + local DOCS=( Packaging/nix/README.txt docs/*.md ) + cmake_src_install + + rm "${ED}"/usr/share/diasurgical/devilutionx/README.txt || die +} + +pkg_postinst() { + xdg_pkg_postinst + + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "In order to play the game, you will need to copy the following data file" + elog "from the original game, and optionally the hellfire expansion files:" + elog " - DIABDAT.MPQ" + elog " - hellfire.mpq hfmonk.mpq hfmusic.mpq hfvoice.mpq" + elog "to ~/.local/share/diasurgical/devilution/" + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.txt* for details." + fi +} diff --git a/games-engines/devilutionx/files/devilutionx-1.4.0-system-sdl_audiolib.patch b/games-engines/devilutionx/files/devilutionx-1.4.0-system-sdl_audiolib.patch new file mode 100644 index 000000000000..26d0b0045022 --- /dev/null +++ b/games-engines/devilutionx/files/devilutionx-1.4.0-system-sdl_audiolib.patch @@ -0,0 +1,18 @@ +Short version of upstreamed: +https://github.com/diasurgical/devilutionX/pull/4464 +--- a/CMake/Dependencies.cmake ++++ b/CMake/Dependencies.cmake +@@ -118,9 +118,11 @@ + endif()
+
+ if(NOT NOSOUND)
+- dependency_options("SDL_audiolib" DEVILUTIONX_SYSTEM_SDL_AUDIOLIB OFF DEVILUTIONX_STATIC_SDL_AUDIOLIB)
++ dependency_options("SDL_audiolib" DEVILUTIONX_SYSTEM_SDL_AUDIOLIB ON DEVILUTIONX_STATIC_SDL_AUDIOLIB)
+ if(DEVILUTIONX_SYSTEM_SDL_AUDIOLIB)
+- find_package(SDL_audiolib REQUIRED)
++ find_package(PkgConfig REQUIRED)
++ pkg_check_modules(SDL_audiolib REQUIRED IMPORTED_TARGET SDL_audiolib)
++ add_library(SDL_audiolib ALIAS PkgConfig::SDL_audiolib)
+ else()
+ add_subdirectory(3rdParty/SDL_audiolib)
+ endif()
diff --git a/games-engines/devilutionx/metadata.xml b/games-engines/devilutionx/metadata.xml index 6831710f8df5..ae8bad0665fb 100644 --- a/games-engines/devilutionx/metadata.xml +++ b/games-engines/devilutionx/metadata.xml @@ -7,6 +7,8 @@ </maintainer> <use> <flag name="lto">Build with link time optimization enabled</flag> + <flag name="sodium">Enable network packet encryption using <pkg>dev-libs/libsodium</pkg></flag> + <flag name="zerotier">Enable ZeroTier for online public games</flag> </use> <upstream> <remote-id type="github">diasurgical/devilutionX</remote-id> |