commit:     2cd1b08c10a85e94e0448e16ad2faf8f203ff0c8
Author:     Alexander Tsoy <alexander <AT> tsoy <DOT> me>
AuthorDate: Mon Feb  9 16:29:43 2026 +0000
Commit:     Alexander Tsoy <alexander <AT> tsoy <DOT> me>
CommitDate: Mon Feb  9 16:52:44 2026 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=2cd1b08c

games-strategy/hedgewars: new package, add 1.1.0_pre20260124

Bug: https://bugs.gentoo.org/949881
Link: https://github.com/gentoo/gentoo/pull/45675
Signed-off-by: Alexander Tsoy <alexander <AT> tsoy.me>

 games-strategy/hedgewars/Manifest                  |   2 +
 .../files/hedgewars-1.0.0-cmake_lua_version.patch  |  11 ++
 .../hedgewars/files/hedgewars-1.0.2-no-pas2c.patch |  36 ++++++
 .../files/hedgewars-1.1.0-no-qt-deploy.patch       |  23 ++++
 .../hedgewars/hedgewars-1.1.0_pre20260124.ebuild   | 125 +++++++++++++++++++++
 games-strategy/hedgewars/metadata.xml              |  14 +++
 6 files changed, 211 insertions(+)

diff --git a/games-strategy/hedgewars/Manifest 
b/games-strategy/hedgewars/Manifest
new file mode 100644
index 0000000000..8d5e9c1f13
--- /dev/null
+++ b/games-strategy/hedgewars/Manifest
@@ -0,0 +1,2 @@
+DIST hedgewars-1.1.0_pre20260124-crates.tar.xz 2079072 BLAKE2B 
ddb93dbfe6521043daf34a1ff1cda9a9657712f94cacf398cebbbec64741d04419e42995848c49b25c96da0e703c1cd004ca1d81754d103b3d88ddd45fc1276f
 SHA512 
5ca06f51573880a01f174c8e3008cc9011515c34ea559bd4e12f1ee0a5b0895b606548d203115a45a0d7f2401e4f1cd490319058915bbddd00d8add66ee95057
+DIST hedgewars-1.1.0_pre20260124.tar.gz 225206170 BLAKE2B 
993cfd2e95a710d60945292e72be4e39bf603abdad34e34991e2e975db0c0ccf8265dd10d1ec8def204127df48f58416547f0444329f53aac0a12c9554825029
 SHA512 
eac4c8fc08e188befb4aaa68b5144602c320fe4f7db4ea191e3c34e8cfba8d7ea10c90de115a261890a5cee3f86b43d0a46b2419299b9cc6df9dfb96fdc69d85

diff --git 
a/games-strategy/hedgewars/files/hedgewars-1.0.0-cmake_lua_version.patch 
b/games-strategy/hedgewars/files/hedgewars-1.0.0-cmake_lua_version.patch
new file mode 100644
index 0000000000..b1daa25511
--- /dev/null
+++ b/games-strategy/hedgewars/files/hedgewars-1.0.0-cmake_lua_version.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -202,7 +202,7 @@
+ #lua discovery
+ if(LUA_SYSTEM)
+     if(NOT LUA_LIBRARY OR NOT LUA_INCLUDE_DIR)
+-        find_package(Lua)
++        find_package(Lua ${LUA_VERSION} EXACT REQUIRED)
+     endif()
+ 
+     if(LUA_LIBRARY AND LUA_INCLUDE_DIR)

diff --git a/games-strategy/hedgewars/files/hedgewars-1.0.2-no-pas2c.patch 
b/games-strategy/hedgewars/files/hedgewars-1.0.2-no-pas2c.patch
new file mode 100644
index 0000000000..e05ecaa802
--- /dev/null
+++ b/games-strategy/hedgewars/files/hedgewars-1.0.2-no-pas2c.patch
@@ -0,0 +1,36 @@
+Do not fallback to pas2c. FPC alignment bug has been fixed:
+https://gitlab.com/freepascal.org/fpc/source/-/commit/fb918994574fec69e44b9868e0147510473b5aae
+
+--- a/CMakeLists.txt   2022-09-13 01:33:59.000000000 +0300
++++ b/CMakeLists.txt   2025-04-28 23:43:49.771904474 +0300
+@@ -79,10 +79,6 @@ if(BUILD_ENGINE_JS)
+     set(target_library_install_dir "lib" CACHE PATH "install dest for libs")
+ endif()
+ 
+-if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4" AND UNIX AND NOT APPLE)
+-    set(BUILD_ENGINE_C ON CACHE STRING "PAS2C force-enabled due to a 
freepascal 32 bit alignment bug" FORCE)
+-endif()
+-
+ #system paths for finding required fonts (see share/hedgewars/Data/fonts)
+ #subdirectories will NOT be searched.
+ #all fonts that can't be found will be bundled with hedgewars
+@@ -180,19 +176,6 @@ else()
+ endif()
+ 
+ 
+-#build engine without freepascal
+-if(BUILD_ENGINE_C AND NOT BUILD_ENGINE_JS)
+-    find_package(Clang REQUIRED)
+-
+-    if(${CLANG_VERSION} VERSION_LESS "3.0")
+-        message(FATAL_ERROR "LLVM/Clang compiler required version is 3.0 but 
version ${CLANG_VERSION} was found!")
+-    endif()
+-
+-    set(CMAKE_C_COMPILER ${CLANG_EXECUTABLE})
+-    set(CMAKE_CXX_COMPILER ${CLANG_EXECUTABLE})
+-endif()
+-
+-
+ #server
+ if(NOT NOSERVER)
+     add_subdirectory(gameServer)

diff --git a/games-strategy/hedgewars/files/hedgewars-1.1.0-no-qt-deploy.patch 
b/games-strategy/hedgewars/files/hedgewars-1.1.0-no-qt-deploy.patch
new file mode 100644
index 0000000000..a58e15f33f
--- /dev/null
+++ b/games-strategy/hedgewars/files/hedgewars-1.1.0-no-qt-deploy.patch
@@ -0,0 +1,23 @@
+Qt deploy script installs all dependant dynamic libraries from the system
+and strips all binaries. Disable it.
+
+--- a/frontend-qt6/CMakeLists.txt
++++ b/frontend-qt6/CMakeLists.txt
+@@ -348,10 +348,10 @@ install(TARGETS hedgewars
+     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+ 
+-qt_generate_deploy_app_script(
+-    TARGET hedgewars
+-    OUTPUT_SCRIPT deploy_script
+-    NO_UNSUPPORTED_PLATFORM_ERROR
+-    NO_TRANSLATIONS
+-)
+-install(SCRIPT ${deploy_script})
++#qt_generate_deploy_app_script(
++#    TARGET hedgewars
++#    OUTPUT_SCRIPT deploy_script
++#    NO_UNSUPPORTED_PLATFORM_ERROR
++#    NO_TRANSLATIONS
++#)
++#install(SCRIPT ${deploy_script})

diff --git a/games-strategy/hedgewars/hedgewars-1.1.0_pre20260124.ebuild 
b/games-strategy/hedgewars/hedgewars-1.1.0_pre20260124.ebuild
new file mode 100644
index 0000000000..0e9ebb6805
--- /dev/null
+++ b/games-strategy/hedgewars/hedgewars-1.1.0_pre20260124.ebuild
@@ -0,0 +1,125 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_MAKEFILE_GENERATOR=emake
+LUA_COMPAT=( lua5-1 )
+RUST_MIN_VER="1.87.0"
+
+inherit cargo cmake lua-single xdg-utils
+
+DESCRIPTION="A turn-based strategy, artillery, action and comedy game"
+HOMEPAGE="https://www.hedgewars.org/";
+if [[ ${PV} == *_p* ]]; then
+       MY_COMMIT="1bbc396d3123702ee9445c5c6bdafdfa6d43d327"
+       SRC_URI="https://github.com/${PN}/hw/archive/${MY_COMMIT}.tar.gz -> 
${P}.tar.gz"
+       S="${WORKDIR}"/hw-${MY_COMMIT}
+else
+       MY_P=${PN}-src-${PV}
+       SRC_URI="https://www.hedgewars.org/download/releases/${MY_P}.tar.bz2";
+       S="${WORKDIR}"/${MY_P}
+fi
+SRC_URI+=" 
https://github.com/puleglot/hw/releases/download/${PV}/${P}-crates.tar.xz";
+
+LICENSE="GPL-2 Apache-2.0 FDL-1.3"
+# Dependent crate licenses
+LICENSE+="
+       MIT Unicode-3.0
+       || ( Apache-2.0 Boost-1.0 )
+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="ffmpeg"
+
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+QA_FLAGS_IGNORED="/usr/bin/hwengine" # pascal sucks
+QA_PRESTRIPPED="/usr/bin/hwengine" # pascal sucks
+
+DEPEND="${LUA_DEPS}
+       >=dev-games/physfs-3.0.1
+       dev-qt/qtbase:6[network,widgets]
+       media-libs/libpng:0=
+       media-libs/libsdl2:=[opengl]
+       media-libs/sdl2-image:=[png]
+       media-libs/sdl2-mixer:=[vorbis]
+       media-libs/sdl2-net:=
+       media-libs/sdl2-ttf:=
+       virtual/zlib:=
+       ffmpeg? ( media-video/ffmpeg:= )
+"
+RDEPEND="${DEPEND}
+       app-arch/xz-utils
+       >=media-fonts/dejavu-2.28
+       media-fonts/wqy-zenhei
+"
+BDEPEND="
+       dev-qt/qttools:6
+       dev-lang/fpc
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-1.0.0-cmake_lua_version.patch"
+       "${FILESDIR}/${PN}-1.0.2-no-pas2c.patch"
+       "${FILESDIR}/${PN}-1.1.0-no-qt-deploy.patch"
+)
+
+src_prepare() {
+       if [[ ${PV} == *_p* ]]; then
+               cat <<-EOF > share/version_info.txt || die
+                       Hedgewars versioning information, do not modify
+                       rev GIT
+                       hash ${MY_COMMIT}
+               EOF
+       fi
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_ENGINE_C=OFF
+               -DBUILD_OFFLINE=ON
+               -DMINIMAL_FLAGS=ON
+               -DNOSERVER=ON
+               -DDATA_INSTALL_DIR="${EPREFIX}/usr/share/${PN}"
+               -Dtarget_binary_install_dir="${EPREFIX}/usr/bin"
+               -Dtarget_library_install_dir="${EPREFIX}/usr/$(get_libdir)"
+               -DCMAKE_VERBOSE_MAKEFILE=TRUE
+               # Need to tell the build system where the fonts are located
+               # as it uses PhysFS' symbolic link protection mode which
+               # prevents us from symlinking the fonts into the right directory
+               #   https://hg.hedgewars.org/hedgewars/rev/76ad55807c24
+               #   
https://icculus.org/physfs/docs/html/physfs_8h.html#aad451d9b3f46f627a1be8caee2eef9b7
+               
-DFONTS_DIRS="${EPREFIX}/usr/share/fonts/wqy-zenhei;${EPREFIX}/usr/share/fonts/dejavu"
+               # upstream sets RPATH that leads to weird breakage
+               # https://bugzilla.redhat.com/show_bug.cgi?id=1200193
+               -DCMAKE_SKIP_RPATH=ON
+               -DLUA_VERSION=$(lua_get_version)
+               -DNOVIDEOREC=$(usex ffmpeg OFF ON)
+       )
+
+       CMAKE_BUILD_TYPE=$(usex debug Debug)
+
+       cmake_src_configure
+}
+
+src_compile() {
+       cmake_src_compile
+}
+
+src_install() {
+       cmake_src_install
+       doman man/${PN}.6
+
+       rm -f "${ED}"/usr/bin/hwengine_future_install_target.cmake || die
+}
+
+pkg_postinst() {
+       xdg_desktop_database_update
+}
+
+pkg_postrm() {
+       xdg_desktop_database_update
+}

diff --git a/games-strategy/hedgewars/metadata.xml 
b/games-strategy/hedgewars/metadata.xml
new file mode 100644
index 0000000000..387c439a33
--- /dev/null
+++ b/games-strategy/hedgewars/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+               <name>Alexander Tsoy</name>
+       </maintainer>
+       <use>
+               <flag name="ffmpeg">Enable video recording feature</flag>
+       </use>
+       <upstream>
+               <remote-id type="github">hedgewars/hw</remote-id>
+       </upstream>
+</pkgmetadata>

Reply via email to