From 4226b69b0cfe65b483ca61c0227d473c02c89c44 Mon Sep 17 00:00:00 2001 From: Nicole O'Connor Date: Thu, 4 Apr 2024 10:56:59 -0700 Subject: [PATCH] games-fps/gzdoom: new package, add 4.11.3 --- games-fps/gzdoom/Manifest | 6 + .../gzdoom/files/gzdoom-4.10.0-gcc-13.patch | 14 +++ .../gzdoom/files/gzdoom-4.10.0-headers.patch | 106 ++++++++++++++++++ ...1-Introduce-the-BUILD_NONFREE-option.patch | 36 ++++++ games-fps/gzdoom/gzdoom-4.11.3.ebuild | 91 +++++++++++++++ games-fps/gzdoom/metadata.xml | 8 ++ metadata/md5-cache/games-fps/gzdoom-4.11.3 | 16 +++ 7 files changed, 277 insertions(+) create mode 100644 games-fps/gzdoom/Manifest create mode 100644 games-fps/gzdoom/files/gzdoom-4.10.0-gcc-13.patch create mode 100644 games-fps/gzdoom/files/gzdoom-4.10.0-headers.patch create mode 100644 games-fps/gzdoom/files/gzdoom-4.7.1-Introduce-the-BUILD_NONFREE-option.patch create mode 100644 games-fps/gzdoom/gzdoom-4.11.3.ebuild create mode 100644 games-fps/gzdoom/metadata.xml create mode 100644 metadata/md5-cache/games-fps/gzdoom-4.11.3 diff --git a/games-fps/gzdoom/Manifest b/games-fps/gzdoom/Manifest new file mode 100644 index 0000000..72bd8ff --- /dev/null +++ b/games-fps/gzdoom/Manifest @@ -0,0 +1,6 @@ +AUX gzdoom-4.10.0-gcc-13.patch 497 BLAKE2B 400f439c3ae4e956e205357051edeb23732db9a8d43e72e8dd6f38900869f3f10d720bec6b0077f8e7a9567d7f8bd6c5204d405302802cde6bb41ecf3e36804c SHA512 22e11299121fd0f74e5b5e09c1530e3e158f50fb49402715a92397b3fdcb7d9944ce41f30efbbe8b98c57939c067f4689b7e96ddacf17d0da72059829d5f5e29 +AUX gzdoom-4.10.0-headers.patch 3999 BLAKE2B 88a024fee77f89d4a58c29b51617f2f28ba8abc914b319bf0dfbbcc6e44dbc34a3af1d79f9196b9b3dad1a72ddbad4dfde879761728aef404b9138da712a4f60 SHA512 175d6ca534e2e8e934c385b399067a55055bb5de7162a3e1e01f396c7a97c229aabddc9bde133df6db9f2ccf53eb59afc823abfb0f749cd9705429fd13cca50b +AUX gzdoom-4.7.1-Introduce-the-BUILD_NONFREE-option.patch 1209 BLAKE2B b3cf80ab4d6328dbcb14ceb9514883ed58b8086dab02182f4cf8964140095dd8d6ac0503c68a4c7442c0f9cc92b4bb6b3e084eee026be52842413e15118a13be SHA512 a08c29fe6b867dbbe60035c99c31d1bce73c1ff37ca2c15f659e060b77366f6fcdc11d2319dee3331d9874115e92566b9c0a6364604869f3815fbb0ee7179ef6 +DIST gzdoom-4.11.3.tar.gz 24354699 BLAKE2B 3ff436ad477a379f4ebeb68c211a85f77b446130687f754f5835a3e82044dd641d0301fda4d5e2fcf35d8eeb4cf511147ea8842ec377576b5ed840a6c59ec4aa SHA512 0abe69f85e2f0946e92d6ae2bbc4710c1e184a6748d4ef8a5f0c0daf31b67779b9085154877467144da650314e6c8dcde429cd47db06b17ec1ea66c63759568d +EBUILD gzdoom-4.11.3.ebuild 2355 BLAKE2B 4d237936d3d12190d88ae9fbd7702c64f31f5de2d102948e7e1dfe347fd946c901d3b055029ac4f0259d61b64888c05c701ecde7f10cffbb936d49162f87a077 SHA512 3091b6292884ca3c6ad4695caf4d371dc40c87b5b9c07525f897ba6776800156629a116086807c0e461a83c8de22b6edbb7de558eb02a70a2ca0c68c49375a3e +MISC metadata.xml 244 BLAKE2B c868d151b81a299adb629476d8a1cf4aef25f0bfe22a0d3d1d0522dda5b9f18b7b6628655a1cea8a0ecf22c1284230b7fda98ee78eec53338d73e93d4df232d3 SHA512 e8dd6eabe095c2a205abbec715ce1d5ac0bd4209a78189b0141d2472165ca7dbee91cd49555f6861efa7a437ba621ae421308522b4dea9b5c6299721819fdafa diff --git a/games-fps/gzdoom/files/gzdoom-4.10.0-gcc-13.patch b/games-fps/gzdoom/files/gzdoom-4.10.0-gcc-13.patch new file mode 100644 index 0000000..d34cb74 --- /dev/null +++ b/games-fps/gzdoom/files/gzdoom-4.10.0-gcc-13.patch @@ -0,0 +1,14 @@ +https://bugs.gentoo.org/907087 + +diff --git a/src/common/rendering/vulkan/thirdparty/vk_mem_alloc/vk_mem_alloc.h b/src/common/rendering/vulkan/thirdparty/vk_mem_alloc/vk_mem_alloc.h +index fd44722..7189d0e 100644 +--- a/src/common/rendering/vulkan/thirdparty/vk_mem_alloc/vk_mem_alloc.h ++++ b/src/common/rendering/vulkan/thirdparty/vk_mem_alloc/vk_mem_alloc.h +@@ -20,6 +20,8 @@ + // THE SOFTWARE. + // + ++#include ++ + #ifndef AMD_VULKAN_MEMORY_ALLOCATOR_H + #define AMD_VULKAN_MEMORY_ALLOCATOR_H diff --git a/games-fps/gzdoom/files/gzdoom-4.10.0-headers.patch b/games-fps/gzdoom/files/gzdoom-4.10.0-headers.patch new file mode 100644 index 0000000..3a3a153 --- /dev/null +++ b/games-fps/gzdoom/files/gzdoom-4.10.0-headers.patch @@ -0,0 +1,106 @@ +From b95dbaf914618cccaeaa95c650e02be669e477f8 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot +Date: Sat, 1 Jul 2023 13:36:48 +0100 +Subject: [PATCH] Ensure local headers are used over system headers to avoid + breakage + +types.h was being picked up from webp rather than locally due to the +`include_directories` call for GTK (and therefore its -I arguments) +coming before the same call for the local sources. webp can be pulled in +via GTK -> gdk-pixbuf -> tiff -> webp. + +This can be avoided by specifying `SYSTEM` or `BEFORE` as appropriate +when calling `include_directories`. I have done both for good measure. +--- + src/CMakeLists.txt | 18 ++++++++++-------- + tools/zipdir/CMakeLists.txt | 2 +- + 2 files changed, 11 insertions(+), 9 deletions(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index cf254ad6a..b4d06f9ce 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -97,7 +97,7 @@ else() + if( NOT DYN_GTK ) + set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} ${GTK3_LIBRARIES} ) + endif() +- include_directories( ${GTK3_INCLUDE_DIRS} ) ++ include_directories( SYSTEM ${GTK3_INCLUDE_DIRS} ) + link_directories( ${GTK3_LIBRARY_DIRS} ) + else() + pkg_check_modules( GTK2 gtk+-2.0 ) +@@ -105,7 +105,7 @@ else() + if( NOT DYN_GTK ) + set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} ${GTK2_LIBRARIES} ) + endif() +- include_directories( ${GTK2_INCLUDE_DIRS} ) ++ include_directories( SYSTEM ${GTK2_INCLUDE_DIRS} ) + link_directories( ${GTK2_LIBRARY_DIRS} ) + else() + set( NO_GTK ON ) +@@ -132,7 +132,7 @@ else() + # Non-Windows version also needs SDL except native OS X backend + if( NOT APPLE OR NOT OSX_COCOA_BACKEND ) + find_package( SDL2 REQUIRED ) +- include_directories( "${SDL2_INCLUDE_DIR}" ) ++ include_directories( SYSTEM "${SDL2_INCLUDE_DIR}" ) + set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} "${SDL2_LIBRARY}" ) + endif() + +@@ -143,7 +143,7 @@ if( NOT NO_OPENAL ) + find_package( OpenAL ) + mark_as_advanced(CLEAR OPENAL_INCLUDE_DIR) + if( OPENAL_INCLUDE_DIR ) +- include_directories( ${OPENAL_INCLUDE_DIR} ) ++ include_directories( SYSTEM ${OPENAL_INCLUDE_DIR} ) + mark_as_advanced(CLEAR OPENAL_LIBRARY) + if( OPENAL_LIBRARY ) + set( PROJECT_LIBRARIES ${OPENAL_LIBRARY} ${PROJECT_LIBRARIES} ) +@@ -373,17 +373,17 @@ endif() + + if( VPX_FOUND ) + add_definitions( "-DUSE_LIBVPX=1" ) +- include_directories( "${VPX_INCLUDE_DIR}" ) ++ include_directories( SYSTEM "${VPX_INCLUDE_DIR}" ) + set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} ${VPX_LIBRARIES} ) + else() + message( SEND_ERROR "Could not find libvpx" ) + endif() + +-include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}") ++include_directories( SYSTEM "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}") + + if( ${HAVE_VM_JIT} ) + add_definitions( -DHAVE_VM_JIT ) +- include_directories( "${ASMJIT_INCLUDE_DIR}" ) ++ include_directories( SYSTEM "${ASMJIT_INCLUDE_DIR}" ) + set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} "${ASMJIT_LIBRARIES}") + endif() + +@@ -1243,7 +1243,9 @@ endif() + + target_link_libraries( zdoom ${PROJECT_LIBRARIES} gdtoa lzma ${ZMUSIC_LIBRARIES} ) + +-include_directories( . ++include_directories( ++ BEFORE ++ . + common/audio/sound + common/audio/music + common/2d +diff --git a/tools/zipdir/CMakeLists.txt b/tools/zipdir/CMakeLists.txt +index 65eb2fb72..762d9027f 100644 +--- a/tools/zipdir/CMakeLists.txt ++++ b/tools/zipdir/CMakeLists.txt +@@ -1,7 +1,7 @@ + cmake_minimum_required( VERSION 3.1.0 ) + + if( NOT CMAKE_CROSSCOMPILING ) +- include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" ) ++ include_directories( SYSTEM "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" ) + add_executable( zipdir + zipdir.c ) + target_link_libraries( zipdir ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} lzma ) +-- +2.41.0 + diff --git a/games-fps/gzdoom/files/gzdoom-4.7.1-Introduce-the-BUILD_NONFREE-option.patch b/games-fps/gzdoom/files/gzdoom-4.7.1-Introduce-the-BUILD_NONFREE-option.patch new file mode 100644 index 0000000..9e012a2 --- /dev/null +++ b/games-fps/gzdoom/files/gzdoom-4.7.1-Introduce-the-BUILD_NONFREE-option.patch @@ -0,0 +1,36 @@ +From d164cfcde29980c23ece15f0be1b09dac5853843 Mon Sep 17 00:00:00 2001 +From: William Breathitt Gray +Date: Sat, 31 Aug 2019 21:23:23 +0900 +Subject: [PATCH] Introduce the BUILD_NONFREE option + +This allow users to disable building nonfree components (brightmaps.pk3, +game_support.pk3, and game_widescreen_gfx.pk3) if they so desire. +--- + CMakeLists.txt | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9013d8921..77bd703b1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -411,11 +411,14 @@ add_subdirectory( libraries/lzma ) + add_subdirectory( tools ) + add_subdirectory( libraries/gdtoa ) + add_subdirectory( wadsrc ) +-add_subdirectory( wadsrc_bm ) + add_subdirectory( wadsrc_lights ) +-add_subdirectory( wadsrc_extra ) +-add_subdirectory( wadsrc_widepix ) + add_subdirectory( src ) ++option (BUILD_NONFREE "Build nonfree components" ON) ++if( BUILD_NONFREE ) ++ add_subdirectory( wadsrc_bm ) ++ add_subdirectory( wadsrc_extra ) ++ add_subdirectory( wadsrc_widepix ) ++endif() + + if( NOT CMAKE_CROSSCOMPILING ) + export(TARGETS ${CROSS_EXPORTS} FILE "${CMAKE_BINARY_DIR}/ImportExecutables.cmake" ) +-- +2.33.1 + diff --git a/games-fps/gzdoom/gzdoom-4.11.3.ebuild b/games-fps/gzdoom/gzdoom-4.11.3.ebuild new file mode 100644 index 0000000..0d69df1 --- /dev/null +++ b/games-fps/gzdoom/gzdoom-4.11.3.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake desktop xdg flag-o-matic + +DESCRIPTION="A modder-friendly OpenGL source port based on the DOOM engine" +HOMEPAGE="https://zdoom.org" +SRC_URI="https://github.com/coelckers/${PN}/archive/g${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 BSD BZIP2 GPL-3 LGPL-2.1+ LGPL-3 MIT + non-free? ( Activision ChexQuest3 DOOM-COLLECTORS-EDITION freedist WidePix )" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64" +IUSE="debug gles2 gtk +non-free openmp +swr telemetry vulkan" + +DEPEND=" + app-arch/bzip2 + media-libs/libjpeg-turbo:0= + media-libs/libsdl2[gles2?,opengl,vulkan?] + media-libs/libvpx:= + media-libs/openal + media-libs/zmusic + sys-libs/zlib + gtk? ( x11-libs/gtk+:3 )" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${PN}-g${PV}" + +PATCHES=( + "${FILESDIR}"/${PN}-4.7.1-Introduce-the-BUILD_NONFREE-option.patch + "${FILESDIR}"/${P}-gcc-13.patch + "${FILESDIR}"/${P}-headers.patch +) + +src_prepare() { + rm -rf docs/licenses || die + rm -rf libraries/{bzip2,jpeg,zlib} || die + if ! use non-free ; then + rm -rf wadsrc_bm wadsrc_extra wadsrc_widepix || die + fi + + cmake_src_prepare +} + +src_configure() { + # https://bugs.gentoo.org/858749 + filter-lto + append-flags -fno-strict-aliasing + + local mycmakeargs=( + -DBUILD_SHARED_LIBS=OFF + -DINSTALL_DOCS_PATH="${EPREFIX}/usr/share/doc/${PF}" + -DINSTALL_PK3_PATH="${EPREFIX}/usr/share/doom" + -DINSTALL_SOUNDFONT_PATH="${EPREFIX}/usr/share/doom" + -DDYN_OPENAL=OFF + -DNO_GTK="$(usex !gtk)" + -DNO_OPENAL=OFF + -DHAVE_VULKAN="$(usex vulkan)" + -DHAVE_GLES2="$(usex gles2)" + -DNO_OPENMP="$(usex !openmp)" + -DZDOOM_ENABLE_SWR="$(usex swr)" + -DBUILD_NONFREE="$(usex non-free)" + ) + + use debug || append-cppflags -DNDEBUG + use telemetry || append-cppflags -DNO_SEND_STATS + + cmake_src_configure +} + +src_install() { + newicon src/posix/zdoom.xpm "${PN}.xpm" + make_desktop_entry "${PN}" "GZDoom" "${PN}" "Game;ActionGame" + cmake_src_install +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use non-free ; then + ewarn + ewarn "GZDoom installed without non-free components." + ewarn "Note: The non-free game_support.pk3 file is needed to play" + ewarn " games natively supported by GZDoom." + ewarn "A list of games natively supported by GZDoom is available" + ewarn "on the ZDoom wiki: https://zdoom.org/wiki/IWAD" + ewarn + fi +} diff --git a/games-fps/gzdoom/metadata.xml b/games-fps/gzdoom/metadata.xml new file mode 100644 index 0000000..4935538 --- /dev/null +++ b/games-fps/gzdoom/metadata.xml @@ -0,0 +1,8 @@ + + + + +nicole@otl-hga.net +Nicole O'Connor + + diff --git a/metadata/md5-cache/games-fps/gzdoom-4.11.3 b/metadata/md5-cache/games-fps/gzdoom-4.11.3 new file mode 100644 index 0000000..da1d205 --- /dev/null +++ b/metadata/md5-cache/games-fps/gzdoom-4.11.3 @@ -0,0 +1,16 @@ +BDEPEND=app-alternatives/ninja >=dev-build/cmake-3.20.5 +DEFINED_PHASES=compile configure install postinst postrm preinst prepare test +DEPEND=app-arch/bzip2 media-libs/libjpeg-turbo:0= media-libs/libsdl2[gles2?,opengl,vulkan?] media-libs/libvpx:= media-libs/openal media-libs/zmusic sys-libs/zlib gtk? ( x11-libs/gtk+:3 ) +DESCRIPTION=A modder-friendly OpenGL source port based on the DOOM engine +EAPI=8 +HOMEPAGE=https://zdoom.org +IDEPEND=dev-util/desktop-file-utils x11-misc/shared-mime-info +INHERIT=cmake desktop xdg flag-o-matic +IUSE=debug gles2 gtk +non-free openmp +swr telemetry vulkan +KEYWORDS=~amd64 ~arm64 ~ppc64 +LICENSE=Apache-2.0 BSD BZIP2 GPL-3 LGPL-2.1+ LGPL-3 MIT non-free? ( Activision ChexQuest3 DOOM-COLLECTORS-EDITION freedist WidePix ) +RDEPEND=app-arch/bzip2 media-libs/libjpeg-turbo:0= media-libs/libsdl2[gles2?,opengl,vulkan?] media-libs/libvpx:= media-libs/openal media-libs/zmusic sys-libs/zlib gtk? ( x11-libs/gtk+:3 ) +SLOT=0 +SRC_URI=https://github.com/coelckers/gzdoom/archive/g4.11.3.tar.gz -> gzdoom-4.11.3.tar.gz +_eclasses_=toolchain-funcs e56c7649b804f051623c8bc1a1c44084 multilib c19072c3cd7ac5cb21de013f7e9832e0 flag-o-matic 288c54efeb5e2aa70775e39032695ad4 multiprocessing 30ead54fa2e2b5f9cd4e612ffc34d0fe ninja-utils 2df4e452cea39a9ec8fb543ce059f8d6 xdg-utils baea6080dd821f5562d715887954c9d3 cmake c7c9a62d6232cac66d4ea32d575c3e7c desktop 021728fdc1b03b36357dbc89489e0f0d xdg 4a14c5c24f121e7da66e5aab4a168c6e +_md5_=b334a7d05d194338b8ef77def2abdfbd