summaryrefslogtreecommitdiff
path: root/games-strategy
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-02-23 19:24:10 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-02-23 19:24:10 +0000
commit575bcb9220287a6f0d2577db1fd9fe55d9d8b745 (patch)
tree52f12cfa140d4839d32305dd42eebe34e9686234 /games-strategy
parent4c5bd80830992553e02f099442277e10ee97372d (diff)
gentoo auto-resync : 23:02:2025 - 19:24:09
Diffstat (limited to 'games-strategy')
-rw-r--r--games-strategy/Manifest.gzbin7583 -> 7587 bytes
-rw-r--r--games-strategy/endless-sky/Manifest6
-rw-r--r--games-strategy/endless-sky/endless-sky-0.10.12.ebuild (renamed from games-strategy/endless-sky/endless-sky-0.10.6.ebuild)27
-rw-r--r--games-strategy/endless-sky/endless-sky-0.10.8.ebuild4
-rw-r--r--games-strategy/freeorion/Manifest2
-rw-r--r--games-strategy/freeorion/freeorion-0.5.1.ebuild126
-rw-r--r--games-strategy/lgeneral/Manifest6
-rw-r--r--games-strategy/lgeneral/files/lgeneral-1.4.4-configure.patch24
-rw-r--r--games-strategy/lgeneral/files/lgeneral-1.4.4-remove-defs-from-header.patch29
-rw-r--r--games-strategy/lgeneral/files/lgeneral-1.4.4-uninline.patch471
-rw-r--r--games-strategy/lgeneral/files/update_autotools.patch278
-rw-r--r--games-strategy/lgeneral/lgeneral-1.4.4-r1.ebuild (renamed from games-strategy/lgeneral/lgeneral-1.4.4.ebuild)16
-rw-r--r--games-strategy/naev/Manifest2
-rw-r--r--games-strategy/naev/naev-0.12.3.ebuild102
14 files changed, 1077 insertions, 16 deletions
diff --git a/games-strategy/Manifest.gz b/games-strategy/Manifest.gz
index 15a2c1a0fcc7..05cd450ab263 100644
--- a/games-strategy/Manifest.gz
+++ b/games-strategy/Manifest.gz
Binary files differ
diff --git a/games-strategy/endless-sky/Manifest b/games-strategy/endless-sky/Manifest
index 13b8b316f931..e01fa6b8ae1b 100644
--- a/games-strategy/endless-sky/Manifest
+++ b/games-strategy/endless-sky/Manifest
@@ -1,5 +1,5 @@
-DIST endless-sky-0.10.6.tar.gz 256438340 BLAKE2B 39699f458b691dd8aa0586ebbb5b537b8b999ea0084abc561803e21e97986dd6ef28582545fc79cc5cd3ef5d4c587b96860fd7b94294acf2fee31224543ac4ff SHA512 815f64db07997cc8732b12887f55d363f0ef7e44a158dc83fc0b6c4c12c69dab3bf7e1b14c7e93fe920974d8c28b8043f39808227219f09adfe618a00389a530
+DIST endless-sky-0.10.12.tar.gz 360083301 BLAKE2B e62911494e4824adeaee6aee8722afa0e7339d3f51186b6d60b05704131911cd262ffd750bff4eeeee15b61edbf63cfde2a03cd1728166121f04ac8afc2451f6 SHA512 908751e4d0f6df5bfdfc0be99326a3a9e6ef4585e7968b4576c338c9b7904b462628ebec329b1246c7c2edec5a281f28ff389ae754ec92f11743cac5e20d260a
DIST endless-sky-0.10.8.tar.gz 257381131 BLAKE2B ea6fe5e4240b9744a9e1d64137a731c8a67f88acbd688fad13f3beab2bb6d16e46b3c85fd1288350917eff18264b5a477ed964729edaa098eff07fef10ca81ee SHA512 d6cfb3efba6214a42b112d315dda945085f6a9f915a22bd3fe0ff78cb628a242aa8c0613165a2e1c67d81f5c32f937c2b73a7851efe3984ebe94af4e456df547
-EBUILD endless-sky-0.10.6.ebuild 2077 BLAKE2B fda16b09d2f8bb729b2bf6ee4cbe332cf9ad5478e35b2c8c3925dc9614ccf13ad179df42d0dda1281996e139cd8ef66fadcc8ebd0a511c3c67a301948c2df97b SHA512 429c3d421ce9432e73dc9d6015a1bde8ef28d2053ec5e466ba439aa05f113437e0adbc57359ef31e000cd60eb2459f8facc60a8547fe3dc85a672752c64c446a
-EBUILD endless-sky-0.10.8.ebuild 2077 BLAKE2B fda16b09d2f8bb729b2bf6ee4cbe332cf9ad5478e35b2c8c3925dc9614ccf13ad179df42d0dda1281996e139cd8ef66fadcc8ebd0a511c3c67a301948c2df97b SHA512 429c3d421ce9432e73dc9d6015a1bde8ef28d2053ec5e466ba439aa05f113437e0adbc57359ef31e000cd60eb2459f8facc60a8547fe3dc85a672752c64c446a
+EBUILD endless-sky-0.10.12.ebuild 2422 BLAKE2B c0cf9268bb647fd880c3e69f2a445fc36242ec7cbf2c7c1269ae180dcd323789ede75ba44d9e1ff5cc6be9b8b36107d2cf48dc1fcb4df12a22329372a4002295 SHA512 e7fe361e60853c24e6e01fdeb40a3a11c2c7a2f6a4c7c15b37e7edb313a2953c65abfbe780417e28e36ddfad0394af7088d5580236842288b1738c8ccfc9f991
+EBUILD endless-sky-0.10.8.ebuild 2086 BLAKE2B 1cc033299258d0100151be6a5fe0b5752c29be777f9b2a606cb0a571db6a1d9686ce08127f0e1a01785e90ec955ff82ccba2a2bcb59ed07d9fbfe586b5369686 SHA512 9b63b71504191e8a26af8ae502c216b161097a574fd2d7317afc73c71529ab82ced8c5d668dd8cd0c48e9806924540d420054d6417a6c0dd9e1961a920f55a28
MISC metadata.xml 732 BLAKE2B 05e221e5b8bc45baf62a5361a1fa11affd5bfce04bb1ed4127251c151771df72c873e9c2deab4aa9b4800fa3314fa768c635e61bf941e3eb74241ee5f2a8aabf SHA512 2aefeccd986719aab4be77af1bf4458b36a873918c04905f9b432a591a44dfdd001faf29ab16ced565c069e846bfe5a96e2c12ffa1e4d62a7b202cf7fc356949
diff --git a/games-strategy/endless-sky/endless-sky-0.10.6.ebuild b/games-strategy/endless-sky/endless-sky-0.10.12.ebuild
index d1f1437b24c2..484af536d278 100644
--- a/games-strategy/endless-sky/endless-sky-0.10.6.ebuild
+++ b/games-strategy/endless-sky/endless-sky-0.10.12.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit cmake prefix xdg
+inherit cmake flag-o-matic xdg
DESCRIPTION="Space exploration, trading & combat in the tradition of Terminal Velocity"
HOMEPAGE="https://endless-sky.github.io/"
@@ -16,7 +16,7 @@ LICENSE="
GPL-3+
CC-BY-2.0 CC-BY-3.0 CC-BY-4.0
CC-BY-SA-3.0 CC-BY-SA-4.0
- CC0-1.0 public-domain
+ CC0-1.0 Unsplash public-domain
"
SLOT="0"
KEYWORDS="~amd64 ~x86"
@@ -37,25 +37,36 @@ RDEPEND="
media-libs/libsdl2[opengl]
)
"
-DEPEND="${RDEPEND}"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-cpp/catch:0 )
+"
src_prepare() {
cmake_src_prepare
# no /usr/*games/ on Gentoo, adjust docdir, install even if != Release,
# and GLEW is unused if USE=gles2-only (using sed for less rebasing)
- sed -e '/install(/s: games: bin:' \
+ sed -e '/install(/s: games: libexec:' \
-e '/install(/s: share/games: share:' \
-e "/install(/s: share/doc/endless-sky: share/doc/${PF}:" \
-e '/install(/s: CONFIGURATIONS Release::' \
-e 's:GLEW REQUIRED:GLEW:' \
-i CMakeLists.txt || die
- sed -i '/PATH/s:share/games:share:' source/Files.cpp || die
- hprefixify -w /PATH/ source/Files.cpp
+ # do not use sanitizers for tests
+ sed -i '/SANITIZER_OPTS/d' tests/CMakeLists.txt || die
+
+ # source/Files.cpp has odd logic to find resources, make a wrapper
+ # rather than try to modify it
+ printf '#!/usr/bin/env sh\nexec %q --resources %q "$@"\n' \
+ "${EPREFIX}"/usr/libexec/${PN} \
+ "${EPREFIX}"/usr/share/${PN} > "${T}"/${PN} || die
}
src_configure() {
+ filter-lto # -Werror=odr issues
+
local mycmakeargs=(
-DBUILD_TESTING=$(usex test)
-DES_GLES=$(usex gles2-only)
@@ -69,6 +80,8 @@ src_configure() {
src_install() {
cmake_src_install
+ dobin "${T}"/${PN}
+
gzip -d -- "${ED}"/usr/share/man/man6/${PN}.6.gz || die
rm -- "${ED}"/usr/share/doc/${PF}/{copyright,license.txt} || die
}
diff --git a/games-strategy/endless-sky/endless-sky-0.10.8.ebuild b/games-strategy/endless-sky/endless-sky-0.10.8.ebuild
index d1f1437b24c2..c0a4e125f072 100644
--- a/games-strategy/endless-sky/endless-sky-0.10.8.ebuild
+++ b/games-strategy/endless-sky/endless-sky-0.10.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -16,7 +16,7 @@ LICENSE="
GPL-3+
CC-BY-2.0 CC-BY-3.0 CC-BY-4.0
CC-BY-SA-3.0 CC-BY-SA-4.0
- CC0-1.0 public-domain
+ CC0-1.0 Unsplash public-domain
"
SLOT="0"
KEYWORDS="~amd64 ~x86"
diff --git a/games-strategy/freeorion/Manifest b/games-strategy/freeorion/Manifest
index cf4936a669cf..5463de9ae6a8 100644
--- a/games-strategy/freeorion/Manifest
+++ b/games-strategy/freeorion/Manifest
@@ -1,4 +1,6 @@
AUX freeorion-0.5.0.1-boost1.85.patch 2287 BLAKE2B 30ba9d71ca0f69c42dd0b795e46702d324dddba727cfc14a80d2ba011809c78b3ebb51a600945e0a50d27f8fe0fc054814a4403cca63ce81d02508425c4cfbc9 SHA512 83ebc9a50121df011436bf6dcfb641601e15e224055e44b076a64a73e3623b7a6407c146477bf63cc1f150a5629aece870010d25fbb1c537fcdcb64c2b192b74
DIST FreeOrion_v0.5.0.1_Source.tar.gz 152861158 BLAKE2B 6924d4916fcd3ac93e7498b5247957a6fb62b8523aa49114e9e11ef5e3b89374966551bc14192fa7928951728ce814fb86d89365beb97aa7c2bc84408bfcadd2 SHA512 dc267231329f0615f12887f22139d57a2611f378e17e8b0f26c00efdb77e73ef737ff875350f805d34a07ca4ce0595758e4f61168878477ebbd92d0149bcdc22
+DIST FreeOrion_v0.5.1_Source.tar.gz 154915100 BLAKE2B 5097fed26443cd076d03af05816148bf2923b86d4719b86e4593b1bca383af222db6f105e3b4a4b531188558305140e9999a80c7550959adaa65cf08f5bb6b5e SHA512 253deba1a90bd4fa7e33423e0148b22ee5234e47007fef9cee66d617caaa5794e2a600e057574c79caa7058557d51d290c5161e9dfa3d8dabe4ebc5da85b8233
EBUILD freeorion-0.5.0.1-r1.ebuild 2988 BLAKE2B 359e2ef8b2149d80e1d53420740fba567b223b319236fe2b34c3bd50b808057f6453e4162b4fc83d7eb5aab02937c9b7ee587ead12ad08212fd1ef7f1f488f37 SHA512 6dc09a70c5bf02531fcf271aa06c16681eb80f646a96992056423756f516f9a848acaf2764654340ab16f915e8c250aba08801a031d56d9a8fe4f5bed077dfc4
+EBUILD freeorion-0.5.1.ebuild 2950 BLAKE2B b4c024cfa8303c67128336aa98b16bb8bb686a1731b931c02ad90c72df0bae4708df4511aea900ff7e8c38473ea69cb0febc3fc3db8886962af89c3e9f935c35 SHA512 c47a85a5c3ac2cc22beb9b716803aec986fa420ab21478a24b25c560ac2e801757a6249a0db29e251cec39ea51bddd418ffcb1e8c49a1ba1fcf118ce88604b5d
MISC metadata.xml 757 BLAKE2B 64e1e5a856369650c9d41b75f7af091c5fde43ab2992911cc81d5e4ba12d13fea5e4e82ae960e75208979aea38eeeb07d4bfebdb1eb45c035796ed854090cbe6 SHA512 5e631e52b5dbabbb6ce1cde6e416c4ed228dbf4a1ddda7899e5565c9abd5b7080894866aef375ff66cef3facd06faadcaea2ccefd8fb34d6bb461bfd32879d6e
diff --git a/games-strategy/freeorion/freeorion-0.5.1.ebuild b/games-strategy/freeorion/freeorion-0.5.1.ebuild
new file mode 100644
index 000000000000..cd67ef9f2c36
--- /dev/null
+++ b/games-strategy/freeorion/freeorion-0.5.1.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic multiprocessing python-single-r1 xdg
+
+DESCRIPTION="Free turn-based space empire and galactic conquest game"
+HOMEPAGE="https://www.freeorion.org/"
+SRC_URI="https://github.com/freeorion/freeorion/releases/download/v${PV}/FreeOrion_v${PV}_Source.tar.gz"
+S=${WORKDIR}/src-tarball
+
+LICENSE="GPL-2+ CC-BY-SA-3.0 LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+client doc test"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep 'dev-libs/boost:=[${PYTHON_USEDEP},nls,python,zlib]')
+ client? (
+ media-libs/freetype
+ media-libs/glew:0=
+ media-libs/libglvnd
+ media-libs/libpng:=
+ media-libs/libsdl2[opengl,video]
+ media-libs/libvorbis
+ media-libs/openal
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ client? (
+ media-fonts/dejavu
+ media-fonts/roboto
+ )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ doc? (
+ app-text/doxygen
+ media-gfx/graphviz
+ )
+ test? ( $(python_gen_cond_dep 'dev-python/pytest[${PYTHON_USEDEP}]') )
+"
+
+freeorion_check-reqs() {
+ # cc1plus processes may suddenly use ~1.5GB all at once early on (2+GB
+ # if debug symbols) then far less for the rest, check minimal jobs*1.5
+ local CHECKREQS_MEMORY=$(($(makeopts_jobs)*1500))M
+ check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+ freeorion_check-reqs
+}
+
+pkg_setup() {
+ freeorion_check-reqs
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ sed -i 's/-O3//' CMakeLists.txt || die
+
+ cmake_comment_add_subdirectory check #904124
+}
+
+src_configure() {
+ filter-lto # -Werror=odr issues
+
+ local mycmakeargs=(
+ -DCCACHE_PROGRAM=no
+ -DBUILD_CLIENT_GG=$(usex client)
+ -DBUILD_CLIENT_GODOT=no # TODO?
+ -DBUILD_TESTING=$(usex test)
+
+ # temporary for doc/CMakeLists.txt which is using the old variable
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile all $(usev doc)
+}
+
+src_test() {
+ local CMAKE_SKIP_TESTS=(
+ # needs looking into but failure does not seem(?) to affect runtime,
+ # try to remove on bump
+ TestChecksum
+ )
+
+ cmake_src_test -j1 # avoid running 2 conflicting servers
+
+ local EPYTEST_DESELECT=(
+ # broken with >=3.11 but is not known to cause issues, skip for now
+ tests/AI/save_game_codec/test_savegame_manager.py::test_setstate_call
+ )
+
+ epytest -o cache_dir="${T}"/pytest_cache default/python/tests
+}
+
+src_install() {
+ local DOCS=( ChangeLog.md README.md )
+ cmake_src_install
+
+ use doc && dodoc -r "${BUILD_DIR}"/doc/cpp-apidoc/html
+
+ if use client; then
+ local font
+ for font in roboto/Roboto-{Bold,Regular}.ttf dejavu/DejaVuSans{-Bold,}.ttf; do
+ dosym -r /usr/share/{fonts/${font%/*},${PN}/default/data/fonts}/${font##*/}
+ done
+ rm -- "${ED}"/usr/share/${PN}/default/data/fonts/LICENSE.{Roboto,DejaVu} || die
+ else
+ rm -r -- "${ED}"/usr/share/freeorion/default/data/fonts || die
+ fi
+}
diff --git a/games-strategy/lgeneral/Manifest b/games-strategy/lgeneral/Manifest
index 1f9316340ece..b8e5da356d58 100644
--- a/games-strategy/lgeneral/Manifest
+++ b/games-strategy/lgeneral/Manifest
@@ -1,5 +1,9 @@
AUX lgeneral-1.4.3-fix-utf8.patch 466 BLAKE2B ccfdc447ddf0eaf24ac56989007277c4e94f48fe69dfb4dc1030a8c80c5764b8dbc84876f539c4fb99703f578c69ac8ba2b49ecf61e69f31d0621d06379feef0 SHA512 abccea722ea34de06832525b5c936c829119327b44421655884fe7f648bab0b9dcea104543dcf1d2a363ceda55bb74edf360b60a30608e50aca865b1c975a02a
+AUX lgeneral-1.4.4-configure.patch 905 BLAKE2B ebf603e4b8a3f7b97aca47fbc32ecb7ae078a54005b28f18e1f95f365e385c20d60fdbc39052e3ddfa85f4bc74cd57f3a022a339b2000eb925f895f2620fcd66 SHA512 45c5db5492ccc7d378623c9c70e6c3d3102015ca92f410c4af285ac9e6888d694efd634651c11e804b4a8027a57c61906696421af7b8655cd95c777b3fd0124c
+AUX lgeneral-1.4.4-remove-defs-from-header.patch 929 BLAKE2B d41d1d34c6d5d3ec10fdb08aca2f14dbcaa6c2d86d99827d84f398bd15ab89ef60776b162e46c438523f1081030193328ea7f6c492a34257f66827e4537705a4 SHA512 f453a1d7126c8e21bd05ff8222b26cc0dbc026af5f22a7c012f22a6782c4bd34e5335f625f83af922cedf3b2c1831e8ceb9b528b98e9a7a71056468be9db5d74
+AUX lgeneral-1.4.4-uninline.patch 13731 BLAKE2B 81b76c43a443112662e861bc685d6ad3b70cc5ab345cf67212dae888bc497d54eccf17d6474c4a50daf58c866f4d8123417dd7f04c512cd4aa2b086e8f09f0e7 SHA512 705b32dd73206237c506eafd512c10d87aea08588223a25997b3b179e29b8e54dce711440e26d8fcd39b0a374670c2d978625c873ff59be535a501c26f95cc87
+AUX update_autotools.patch 11749 BLAKE2B e61e3745003bb7f0f1550def29b24b08a8ebd8dd5dd93eddce9b21cffecde03ad00f77639e400e75b75351ed02e14942acf5f3cd566a717b2735bf2751d2bec8 SHA512 5fae1b45437adf8783287bfc9bb5982675a207230a88867678f8ec9b9ed30ece2f7c9af9fa33b6cf2ffa72eb8cea7d8bc5f6678b43b29df2f3d900429fa7a7e8
DIST kukgen-data-1.1.tar.gz 1883592 BLAKE2B 66e901696210173bccc4cd463aa30cf0bff1e1115597f1a266b1364df229f8749fb324fe12814efef01d73c8360ba6feb96c05b9b2f7ba59d3512445fd268944 SHA512 239c59924943627ab7ef3dac3283884cf34c8a299bc8974aae0ddcf180c95dcecd6e1b3eb1c69b5db39dbfa86e027649343df5fdfe655709a3b817f08575a546
DIST lgeneral-1.4.4.tar.gz 1891302 BLAKE2B 354ef85f1769881dbddd85dee0772c036c86308dd669c2e4d44d53d6acdafb77f5491e4f1298cd1af8a4eb82d4c87d1fa154c2c355e226ff82ed7248114c449f SHA512 d1028e999c5420477ed02521ea8bd32dd7481067f3b6f25545b367c082cd740e6c950f1383bc0aa33c345a380ed2abb9f2b5285b60d429bdb48972ce5fca34b2
-EBUILD lgeneral-1.4.4.ebuild 1590 BLAKE2B 65589aa93b3cc68436579a0b46fccd334e9411677dc13a8437910c382ab5898163ff9945e9cdad8f47981b275546bbb763d502d8987f32c11a672626e9dd9553 SHA512 cf3c6046c3e933f4944e88462890a4f9ce5751d2906169aa2aa66b74658a0901e95fde619bfc6ac5f1199ba77fa8c365d6191fafaecabc88d299147768dbfa2a
+EBUILD lgeneral-1.4.4-r1.ebuild 1822 BLAKE2B 4e5d97360d751035d06b306aaa211909aa10a6a0413cb14fa56592469cfc87c3e96fc2b19cc0410f8e9fb346e2e403bb2de5dcf585f1e87865c9f29befac0b4e SHA512 383e3a36dbe2fce7426a11fcf9580bdd8c608219980f7d114ea849df252e20e2073cf3e896d0f6aaebc7bc31be51df3fb1fb34621bdbf128a6b1f00fccdbcfa3
MISC metadata.xml 332 BLAKE2B 3a4cabe3dae85df267b8d67829993a894fb1d55f7b19b696370bd5095e4d73c1add5763a37c12e93769d2555644e515f4a82caa06bfdc136b930e98a1ff2dc75 SHA512 9637cc722ccd66881b3e67a053dd408dc9297ed8741ffd100e8bdfb8337e61fe2bb0d2921b1462a0407bab9c4400570dc6b1513eb92b0262bd85d8c77aca894d
diff --git a/games-strategy/lgeneral/files/lgeneral-1.4.4-configure.patch b/games-strategy/lgeneral/files/lgeneral-1.4.4-configure.patch
new file mode 100644
index 000000000000..2e5d329b6124
--- /dev/null
+++ b/games-strategy/lgeneral/files/lgeneral-1.4.4-configure.patch
@@ -0,0 +1,24 @@
+Fix for hardcoding CFLAGS and broken test for mkdir
+https://bugs.gentoo.org/898992
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,10 +20,6 @@
+ AC_PROG_RANLIB
+ AM_PROG_CC_C_O
+
+-dnl various CFLAGS
+-CFLAGS="$CFLAGS -Wall -std=gnu89"
+-CFLAGS="$CFLAGS -O0 -g"
+-
+ dnl Checks for libraries.
+ AC_CHECK_LIB(m, main,, AC_MSG_ERROR(maths library is needed))
+ dnl AC_CHECK_LIB(dl, main,, AC_CHECK_LIB(c, dlopen,, AC_MSG_ERROR(dl library is needed)))
+@@ -35,7 +31,7 @@
+ dnl check for mkdir accepting permissions
+ AC_MSG_CHECKING(if mkdir rejects permissions)
+ ac_mkdir_perm_broken=yes
+-AC_TRY_COMPILE([#include <unistd.h>], [mkdir("test", 0777)], [ac_mkdir_perm_broken=no])
++AC_TRY_COMPILE([#include <sys/stat.h>], [mkdir("test", 0777)], [ac_mkdir_perm_broken=no])
+ if test x$ac_mkdir_perm_broken = xyes ; then
+ AC_DEFINE_UNQUOTED(HAVE_BROKEN_MKDIR, 1, [Defined if mkdir rejects a second permissions parameter.])
+ fi
diff --git a/games-strategy/lgeneral/files/lgeneral-1.4.4-remove-defs-from-header.patch b/games-strategy/lgeneral/files/lgeneral-1.4.4-remove-defs-from-header.patch
new file mode 100644
index 000000000000..ebd32a480c83
--- /dev/null
+++ b/games-strategy/lgeneral/files/lgeneral-1.4.4-remove-defs-from-header.patch
@@ -0,0 +1,29 @@
+Those functions are defined in hashtable_itr.c
+I think this was made for "speed", but it break compilation with GCC-15
+and is plainly unnecessary
+--- a/util/hashtable_itr.h
++++ b/util/hashtable_itr.h
+@@ -29,19 +29,13 @@
+ * - return the value of the (key,value) pair at the current position */
+
+-extern inline void *
+-hashtable_iterator_key(struct hashtable_itr *i)
+-{
+- return i->e->k;
+-}
++extern void *
++hashtable_iterator_key(struct hashtable_itr *i);
+
+ /*****************************************************************************/
+ /* value - return the value of the (key,value) pair at the current position */
+
+-extern inline void *
++extern void *
+-hashtable_iterator_value(struct hashtable_itr *i)
+-{
+- return i->e->v;
+-}
++hashtable_iterator_value(struct hashtable_itr *i);
+
+ /*****************************************************************************/
+ /* advance - advance the iterator to the next element
diff --git a/games-strategy/lgeneral/files/lgeneral-1.4.4-uninline.patch b/games-strategy/lgeneral/files/lgeneral-1.4.4-uninline.patch
new file mode 100644
index 000000000000..e81e52185708
--- /dev/null
+++ b/games-strategy/lgeneral/files/lgeneral-1.4.4-uninline.patch
@@ -0,0 +1,471 @@
+There was pathological amount of inlines, some of them caused warnings
+and linking failures. All of them are now removed. Modern compilers are
+smarter than that.
+https://bugs.gentoo.org/876337
+--- a/intl/gettextP.h
++++ b/intl/gettextP.h
+@@ -46,7 +46,7 @@
+ #else
+ static nls_uint32 SWAP PARAMS ((nls_uint32 i));
+
+-static inline nls_uint32
++static nls_uint32
+ SWAP (i)
+ nls_uint32 i;
+ {
+--- a/intl/hash-string.h
++++ b/intl/hash-string.h
+@@ -35,7 +35,7 @@
+ 1986, 1987 Bell Telephone Laboratories, Inc.] */
+ static unsigned long hash_string PARAMS ((const char *__str_param));
+
+-static inline unsigned long
++static unsigned long
+ hash_string (str_param)
+ const char *str_param;
+ {
+--- a/intl/l10nflist.c
++++ b/intl/l10nflist.c
+@@ -154,7 +154,7 @@
+ /* Return number of bits set in X. */
+ static int pop PARAMS ((int x));
+
+-static inline int
++static int
+ pop (x)
+ int x;
+ {
+--- a/lgc-pg/misc.c
++++ b/lgc-pg/misc.c
+@@ -27,27 +27,27 @@
+ extern char *dest_path;
+
+ /* compares to strings and returns true if their first strlen(str1) chars are equal */
+-inline int equal_str( char *str1, char *str2 )
++int equal_str( char *str1, char *str2 )
+ {
+ if ( strlen( str1 ) != strlen( str2 ) ) return 0;
+ return ( !strncmp( str1, str2, strlen( str1 ) ) );
+ }
+
+ /* set delay to ms milliseconds */
+-inline void set_delay( Delay *delay, int ms )
++void set_delay( Delay *delay, int ms )
+ {
+ delay->limit = ms;
+ delay->cur = 0;
+ }
+
+ /* reset delay ( cur = 0 )*/
+-inline void reset_delay( Delay *delay )
++void reset_delay( Delay *delay )
+ {
+ delay->cur = 0;
+ }
+
+ /* check if times out and reset */
+-inline int timed_out( Delay *delay, int ms )
++int timed_out( Delay *delay, int ms )
+ {
+ delay->cur += ms;
+ if ( delay->cur >= delay->limit ) {
+@@ -60,7 +60,7 @@
+ }
+
+
+-inline void goto_tile( int *x, int *y, int d )
++void goto_tile( int *x, int *y, int d )
+ {
+ /* 0 -up, clockwise, 5 - left up */
+ switch ( d ) {
+--- a/lgc-pg/misc.h
++++ b/lgc-pg/misc.h
+@@ -52,13 +52,13 @@
+ } Delay;
+
+ /* set delay to ms milliseconds */
+-inline void set_delay( Delay *delay, int ms );
++void set_delay( Delay *delay, int ms );
+
+ /* reset delay ( cur = 0 )*/
+-inline void reset_delay( Delay *delay );
++void reset_delay( Delay *delay );
+
+ /* check if time's out ( add ms milliseconds )and reset */
+-inline int timed_out( Delay *delay, int ms );
++int timed_out( Delay *delay, int ms );
+
+ /* return distance betwteen to map positions */
+ int get_dist( int x1, int y1, int x2, int y2 );
+--- a/lged/lged.c
++++ b/lged/lged.c
+@@ -356,7 +356,7 @@
+ free((void *)path);
+
+ if (within_source_tree)
+- verbosef(2, "Source tree detected. Using inline paths.\n");
++ verbosef(2, "Source tree detected. Using paths.\n");
+ }
+
+ /* get path for unitdb */
+@@ -387,7 +387,7 @@
+ }
+
+ /** returns 1 if criterion is to be omitted */
+-inline static int is_omitted(const char *criterion) {
++static int is_omitted(const char *criterion) {
+ return !criterion || strcmp(criterion, "-") == 0 || strcmp(criterion, "*") == 0;
+ }
+
+@@ -407,7 +407,7 @@
+ * of ary. If found, the index of the first element is returned,
+ * -1 otherwise. 'i' is the starting index, 'sz' the size of the array.
+ */
+-inline static int find_in_array(const char *needle, int i, const char **ary, int sz) {
++static int find_in_array(const char *needle, int i, const char **ary, int sz) {
+ for (; i < sz; i++)
+ if (strcasestr(ary[i], needle)) return i;
+ return -1;
+@@ -430,7 +430,7 @@
+ * returns 1 if 'bitmap' is true at position 'idx'. 'sz' is the size of
+ * the bitmap.
+ */
+-inline static int in_bitmap(int idx, const char *bitmap, int sz) {
++static int in_bitmap(int idx, const char *bitmap, int sz) {
+ return idx >= 0 && idx < sz && bitmap[idx];
+ }
+
+--- a/src/campaign.c
++++ b/src/campaign.c
+@@ -135,7 +135,7 @@
+ }
+
+ /** resolve key within entries and translate the result wrt domain */
+-inline static char *camp_resolve_ref_localized(PData *entries, const char *key, const char *scen_stat, const char *domain)
++static char *camp_resolve_ref_localized(PData *entries, const char *key, const char *scen_stat, const char *domain)
+ {
+ const char *res = camp_resolve_ref(entries, key, scen_stat);
+ return res ? strdup(trd(domain, res)) : 0;
+--- a/src/engine.c
++++ b/src/engine.c
+@@ -375,7 +375,7 @@
+ Returns true when the status screen dismission events took place.
+ ====================================================================
+ */
+-inline static int engine_status_screen_dismissed()
++static int engine_status_screen_dismissed()
+ {
+ int dummy;
+ return event_get_buttonup( &dummy, &dummy, &dummy )
+--- a/src/gui.c
++++ b/src/gui.c
+@@ -1691,7 +1691,7 @@
+ }
+
+ /** unite with existing repaint rectangle */
+-inline static void message_pane_unite_repaint_rect(MessagePane *pane, int x1, int y1, int x2, int y2)
++static void message_pane_unite_repaint_rect(MessagePane *pane, int x1, int y1, int x2, int y2)
+ {
+ if ((pane->refresh_x2 - pane->refresh_x1) <= 0
+ || (pane->refresh_y2 - pane->refresh_y1) <= 0) {
+--- a/src/lg-sdl.c
++++ b/src/lg-sdl.c
+@@ -35,7 +35,7 @@
+ /* sdl surface */
+
+ /* return full path of bitmap */
+-inline void get_full_bmp_path( char *full_path, const char *file_name )
++void get_full_bmp_path( char *full_path, const char *file_name )
+ {
+ sprintf(full_path, "%s/gfx/%s", get_gamedir(), file_name );
+ }
+@@ -119,7 +119,7 @@
+ /*
+ lock surface
+ */
+-inline void lock_surf(SDL_Surface *sur)
++void lock_surf(SDL_Surface *sur)
+ {
+ if (SDL_MUSTLOCK(sur))
+ SDL_LockSurface(sur);
+@@ -128,7 +128,7 @@
+ /*
+ unlock surface
+ */
+-inline void unlock_surf(SDL_Surface *sur)
++void unlock_surf(SDL_Surface *sur)
+ {
+ if (SDL_MUSTLOCK(sur))
+ SDL_UnlockSurface(sur);
+@@ -477,7 +477,7 @@
+ /*
+ lock font surface
+ */
+-inline void lock_font(Font *fnt)
++void lock_font(Font *fnt)
+ {
+ if (SDL_MUSTLOCK(fnt->pic))
+ SDL_LockSurface(fnt->pic);
+@@ -486,7 +486,7 @@
+ /*
+ unlock font surface
+ */
+-inline void unlock_font(Font *fnt)
++void unlock_font(Font *fnt)
+ {
+ if (SDL_MUSTLOCK(fnt->pic))
+ SDL_UnlockSurface(fnt->pic);
+@@ -501,7 +501,7 @@
+ return rect;
+ }
+
+-inline int char_width(Font *fnt, char c)
++int char_width(Font *fnt, char c)
+ {
+ unsigned i = (unsigned char)c;
+ return fnt->char_offset[i + 1] - fnt->char_offset[i];
+@@ -844,7 +844,7 @@
+ /*
+ lock surface
+ */
+-inline void lock_screen()
++void lock_screen()
+ {
+ if (SDL_MUSTLOCK(sdl.screen))
+ SDL_LockSurface(sdl.screen);
+@@ -853,7 +853,7 @@
+ /*
+ unlock surface
+ */
+-inline void unlock_screen()
++void unlock_screen()
+ {
+ if (SDL_MUSTLOCK(sdl.screen))
+ SDL_UnlockSurface(sdl.screen);
+@@ -862,7 +862,7 @@
+ /*
+ flip hardware screens (double buffer)
+ */
+-inline void flip_screen()
++void flip_screen()
+ {
+ SDL_Flip(sdl.screen);
+ }
+--- a/src/lg-sdl.h
++++ b/src/lg-sdl.h
+@@ -43,8 +43,8 @@
+ SDL_Surface* create_surf(int w, int h, int f);
+ void free_surf( SDL_Surface **surf );
+ int disp_format(SDL_Surface *sur);
+-inline void lock_surf(SDL_Surface *sur);
+-inline void unlock_surf(SDL_Surface *sur);
++void lock_surf(SDL_Surface *sur);
++void unlock_surf(SDL_Surface *sur);
+ void blit_surf(void);
+ void alpha_blit_surf(int alpha);
+ void fill_surf(int c);
+@@ -93,8 +93,8 @@
+ void free_font(Font **sfnt);
+ int write_text(Font *sfnt, SDL_Surface *dest, int x, int y, const char *str, int alpha);
+ void write_line( SDL_Surface *surf, Font *font, const char *str, int x, int *y );
+-inline void lock_font(Font *sfnt);
+-inline void unlock_font(Font *sfnt);
++void lock_font(Font *sfnt);
++void unlock_font(Font *sfnt);
+ SDL_Rect last_write_rect(Font *fnt);
+ int text_width(Font *fnt, const char *str);
+ int char_width(Font *fnt, char c);
+@@ -132,9 +132,9 @@
+ void undim_screen(int steps, int delay, int trp);
+ int wait_for_key();
+ void wait_for_click();
+-inline void lock_screen();
+-inline void unlock_screen();
+-inline void flip_screen();
++void lock_screen();
++void unlock_screen();
++void flip_screen();
+
+ /* cursor */
+ /* creates cursor */
+--- a/src/misc.c
++++ b/src/misc.c
+@@ -29,27 +29,27 @@
+ extern int map_w, map_h; /* FIX ME! */
+
+ /* compares to strings and returns true if their first strlen(str1) chars are equal */
+-inline int equal_str( const char *str1, const char *str2 )
++int equal_str( const char *str1, const char *str2 )
+ {
+ if ( strlen( str1 ) != strlen( str2 ) ) return 0;
+ return ( !strncmp( str1, str2, strlen( str1 ) ) );
+ }
+
+ /* set delay to ms milliseconds */
+-inline void set_delay( Delay *delay, int ms )
++void set_delay( Delay *delay, int ms )
+ {
+ delay->limit = ms;
+ delay->cur = 0;
+ }
+
+ /* reset delay ( cur = 0 )*/
+-inline void reset_delay( Delay *delay )
++void reset_delay( Delay *delay )
+ {
+ delay->cur = 0;
+ }
+
+ /* check if times out and reset */
+-inline int timed_out( Delay *delay, int ms )
++int timed_out( Delay *delay, int ms )
+ {
+ delay->cur += ms;
+ if ( delay->cur >= delay->limit ) {
+@@ -62,7 +62,7 @@
+ }
+
+ /* Convert grid coordinates into isometric (diagonal) coordinates. */
+-inline static void convert_coords_to_diag( int *x, int *y )
++static void convert_coords_to_diag( int *x, int *y )
+ {
+ *y += (*x + 1) / 2;
+ }
+@@ -126,13 +126,13 @@
+ }
+
+ /** return 1 if ch is a line breaking character */
+-inline static int text_is_linebreak(char ch)
++static int text_is_linebreak(char ch)
+ {
+ return ch == '#';
+ }
+
+ /** return 1 if text is breakable just before end */
+-inline static int text_is_breakable(const char *begin, const char *end)
++static int text_is_breakable(const char *begin, const char *end)
+ {
+ return begin != end
+ && (end[-1] == '\t' || end[-1] == '\n' || end[-1] == ' '
+--- a/src/misc.h
++++ b/src/misc.h
+@@ -101,13 +101,13 @@
+ } Delay;
+
+ /* set delay to ms milliseconds */
+-inline void set_delay( Delay *delay, int ms );
++void set_delay( Delay *delay, int ms );
+
+ /* reset delay ( cur = 0 )*/
+-inline void reset_delay( Delay *delay );
++void reset_delay( Delay *delay );
+
+ /* check if time's out ( add ms milliseconds )and reset */
+-inline int timed_out( Delay *delay, int ms );
++int timed_out( Delay *delay, int ms );
+
+ /* return distance betwteen to map positions */
+ int get_dist( int x1, int y1, int x2, int y2 );
+--- a/src/parser.c
++++ b/src/parser.c
+@@ -51,11 +51,11 @@
+ free(ctd->filename);
+ }
+
+-static inline void common_tree_data_ref(struct CommonTreeData *ctd) {
++static void common_tree_data_ref(struct CommonTreeData *ctd) {
+ ctd->ref++;
+ }
+
+-static inline int common_tree_data_deref(struct CommonTreeData *ctd) {
++static int common_tree_data_deref(struct CommonTreeData *ctd) {
+ int del = --ctd->ref == 0;
+ if (del) common_tree_data_delete(ctd);
+ return del;
+@@ -115,7 +115,7 @@
+ Returns whether this is a valid character for a string.
+ ====================================================================
+ */
+-inline static int parser_is_valid_string_char(char ch)
++static int parser_is_valid_string_char(char ch)
+ {
+ switch (ch) {
+ case '$': case '/': case '@': case '_': case '.': case ':': case '~':
+@@ -272,7 +272,7 @@
+ and return the new position.
+ ====================================================================
+ */
+-static inline const char* string_ignore_whitespace( const char *string )
++static const char* string_ignore_whitespace( const char *string )
+ {
+ while ( *string != 0 && (unsigned char)*string <= 32 ) string++;
+ return string;
+@@ -286,7 +286,7 @@
+ hours of precious sleep.
+ ====================================================================
+ */
+-static inline PData *parser_create_pdata( char *name, List *values, int lineno, struct CommonTreeData *ctd )
++static PData *parser_create_pdata( char *name, List *values, int lineno, struct CommonTreeData *ctd )
+ {
+ PData *pd = calloc(1, sizeof(PData));
+ pd->name = name;
+--- a/src/slot.c
++++ b/src/slot.c
+@@ -157,7 +157,7 @@
+ /* we always write the platform-specific endianness */
+ fwrite( &i, sizeof( int ), 1, file );
+ }
+-static inline int load_int( FILE *file )
++static int load_int( FILE *file )
+ {
+ return try_load_int( file, 0 );
+ }
+@@ -186,7 +186,7 @@
+ {
+ fwrite( &p, sizeof( void * ), 1, file );
+ }
+-static inline void *load_pointer( FILE *file )
++static void *load_pointer( FILE *file )
+ {
+ return try_load_pointer( file, 0 );
+ }
+--- a/util/hashtable_private.h
++++ b/util/hashtable_private.h
+@@ -30,13 +30,13 @@
+
+ /*****************************************************************************/
+ /* indexFor */
+-static inline unsigned int
++static unsigned int
+ indexFor(unsigned int tablelength, unsigned int hashvalue) {
+ return (hashvalue % tablelength);
+ };
+
+ /* Only works if tablelength == 2^N */
+-/*static inline unsigned int
++/*static unsigned int
+ indexFor(unsigned int tablelength, unsigned int hashvalue)
+ {
+ return (hashvalue & (tablelength - 1u));
+--- a/util/localize.c
++++ b/util/localize.c
+@@ -71,7 +71,7 @@
+ }
+
+ /** returns the domain-map */
+-static inline struct hashtable *domain_map_instance() {
++static struct hashtable *domain_map_instance() {
+ if (!domain_map) {
+ domain_map = create_hashtable(10, (unsigned int (*) (void*))hash_string,
+ (int (*)(void *, void *))strcmp,
+--- a/util/localize.h
++++ b/util/localize.h
+@@ -37,7 +37,7 @@
+ /** shorthand for fetching translation of default domain */
+ # define tr(s) gettext (s)
+ /** shorthand for fetching translation of specified domain */
+-inline static const char *trd(const char *dom, const char *s) { return *(s) ? dgettext ((dom), (s)) : ""; }
++static const char *trd(const char *dom, const char *s) { return *(s) ? dgettext ((dom), (s)) : ""; }
+ /** shorthand for marking for translation of default domain */
+ # define TR_NOOP(s) (s)
+
diff --git a/games-strategy/lgeneral/files/update_autotools.patch b/games-strategy/lgeneral/files/update_autotools.patch
new file mode 100644
index 000000000000..10db89905c46
--- /dev/null
+++ b/games-strategy/lgeneral/files/update_autotools.patch
@@ -0,0 +1,278 @@
+Debian patch, from
+https://sources.debian.org/patches/lgeneral/1.4.4-4/update_autotools.patch/
+Index: lgeneral/configure.ac
+===================================================================
+--- lgeneral.orig/configure.ac
++++ lgeneral/configure.ac
+@@ -30,7 +30,7 @@ dnl AC_CHECK_LIB(dl, main,, AC_CHECK_LIB
+ dnl AC_CHECK_LIB(dl, main,, AC_MSG_ERROR(dl library is needed))
+
+ dnl Checks for functions.
+-AC_CHECK_FUNCS(strcasestr)
++AC_CHECK_FUNCS(setenv strcasestr)
+
+ dnl check for mkdir accepting permissions
+ AC_MSG_CHECKING(if mkdir rejects permissions)
+@@ -44,8 +44,8 @@ AC_MSG_RESULT($ac_mkdir_perm_broken)
+ dnl L10n support
+ ALL_LINGUAS="en de"
+
+-AC_GNU_SOURCE
+-AM_GNU_GETTEXT
++AM_GNU_GETTEXT([external])
++AM_GNU_GETTEXT_REQUIRE_VERSION([0.21])
+
+ dnl win32 stuff
+ dnl USE_NLS=no
+@@ -90,16 +90,6 @@ if test x$USE_INCLUDED_LIBINTL = xyes ;
+ INTLINCLUDES="-I\$(top_srcdir)/intl -I\$(top_builddir)/intl"
+ fi
+
+-dnl newer versions of gettext don't support CATALOGS -> create it here
+-if test "x$CATALOGS" = x ; then
+- AC_MSG_CHECKING(for catalogs to be installed);
+- for l in $ALL_LINGUAS ; do
+- CATALOGS="$CATALOGS$l$CATOBJEXT "
+- done
+- AC_MSG_RESULT($ALL_LINGUAS)
+- AC_SUBST(CATALOGS)
+-fi
+-
+ dnl newer versions of gettext don't export POFILES and GMOFILES
+ dnl export them here to stay compatible with older versions
+ if test "x$POFILES" = x ; then
+@@ -176,18 +166,5 @@ inst_flag=)
+ AC_SUBST(inst_dir)
+ AC_SUBST(inst_flag)
+
+-# create Makefiles for Makefile.ins in po-subdirectories.
+-# FIXME! autoconf is simply too stupid to grok that for-loop
+-#for ac_domain in lgeneral ; do
+- AC_CONFIG_COMMANDS([po-lgeneral],
+- [case "$CONFIG_FILES" in *po/lgeneral/Makefile.in*)
+- sed -e "/POTFILES =/r po/lgeneral/POTFILES" po/lgeneral/Makefile.in > po/lgeneral/Makefile
+- esac])
+- AC_CONFIG_COMMANDS([po-pg],
+- [case "$CONFIG_FILES" in *po/pg/Makefile.in*)
+- cat po/pg/Makefile.in > po/pg/Makefile
+- esac])
+-#done
+-
+-AC_OUTPUT(Makefile lged/Makefile lgc-pg/Makefile lgc-pg/convdata/Makefile src/Makefile src/nations/Makefile src/scenarios/Makefile src/units/Makefile src/sounds/Makefile src/music/Makefile src/terrain/Makefile src/maps/Makefile src/gfx/Makefile src/gfx/flags/Makefile src/gfx/terrain/Makefile src/gfx/units/Makefile src/ai_modules/Makefile src/campaigns/Makefile src/themes/Makefile src/themes/default/Makefile util/Makefile intl/Makefile po/Makefile po/lgeneral/Makefile.in po/pg/Makefile.in tools/Makefile tools/ltrextract/Makefile)
++AC_OUTPUT(Makefile lged/Makefile lgc-pg/Makefile lgc-pg/convdata/Makefile src/Makefile src/nations/Makefile src/scenarios/Makefile src/units/Makefile src/sounds/Makefile src/music/Makefile src/terrain/Makefile src/maps/Makefile src/gfx/Makefile src/gfx/flags/Makefile src/gfx/terrain/Makefile src/gfx/units/Makefile src/ai_modules/Makefile src/campaigns/Makefile src/themes/Makefile src/themes/default/Makefile util/Makefile po/Makefile po/lgeneral/Makefile.in po/pg/Makefile.in tools/Makefile tools/ltrextract/Makefile)
+
+Index: lgeneral/Makefile.am
+===================================================================
+--- lgeneral.orig/Makefile.am
++++ lgeneral/Makefile.am
+@@ -1,4 +1,4 @@
+-SUBDIRS = intl util lged lgc-pg src tools po
++SUBDIRS = util lged lgc-pg src tools po
+
+ EXTRA_DIST = AUTHORS COPYING ChangeLog README.lgeneral \
+ README.lgc-pg README.redit TODO \
+Index: lgeneral/acconfig.h
+===================================================================
+--- lgeneral.orig/acconfig.h
++++ /dev/null
+@@ -1,20 +0,0 @@
+-#undef ENABLE_NLS
+-#undef HAVE_CATGETS
+-#undef HAVE_GETTEXT
+-#undef HAVE_LC_MESSAGES
+-#undef HAVE_STPCPY
+-#undef HAVE_LIBSM
+-#undef PACKAGE_LOCALE_DIR
+-#undef PACKAGE_DOC_DIR
+-#undef PACKAGE_DATA_DIR
+-#undef PACKAGE_PIXMAPS_DIR
+-#undef PACKAGE_HELP_DIR
+-#undef PACKAGE_MENU_DIR
+-#undef PACKAGE_SOURCE_DIR
+-
+-@BOTTOM@
+-
+-#ifdef HAVE_BROKEN_MKDIR
+-# include <direct.h>
+-# define mkdir(s,p) _mkdir(s)
+-#endif
+Index: lgeneral/po/lgeneral/Makevars
+===================================================================
+--- /dev/null
++++ lgeneral/po/lgeneral/Makevars
+@@ -0,0 +1,82 @@
++# Makefile variables for PO directory in any package using GNU gettext.
++#
++# Copyright (C) 2003-2019 Free Software Foundation, Inc.
++# This file is free software; the Free Software Foundation gives
++# unlimited permission to use, copy, distribute, and modify it.
++
++# Usually the message domain is the same as the package name.
++DOMAIN = lgeneral
++
++# These two variables depend on the location of this directory.
++subdir = $(DOMAIN)
++top_builddir = ../..
++
++# These options get passed to xgettext.
++XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
++
++# This is the copyright holder that gets inserted into the header of the
++# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
++# package. (Note that the msgstr strings, extracted from the package's
++# sources, belong to the copyright holder of the package.) Translators are
++# expected to transfer the copyright for their translations to this person
++# or entity, or to disclaim their copyright. The empty string stands for
++# the public domain; in this case the translators are expected to disclaim
++# their copyright.
++COPYRIGHT_HOLDER = Free Software Foundation, Inc.
++
++# This tells whether or not to prepend "GNU " prefix to the package
++# name that gets inserted into the header of the $(DOMAIN).pot file.
++# Possible values are "yes", "no", or empty. If it is empty, try to
++# detect it automatically by scanning the files in $(top_srcdir) for
++# "GNU packagename" string.
++PACKAGE_GNU =
++
++# This is the email address or URL to which the translators shall report
++# bugs in the untranslated strings:
++# - Strings which are not entire sentences, see the maintainer guidelines
++# in the GNU gettext documentation, section 'Preparing Strings'.
++# - Strings which use unclear terms or require additional context to be
++# understood.
++# - Strings which make invalid assumptions about notation of date, time or
++# money.
++# - Pluralisation problems.
++# - Incorrect English spelling.
++# - Incorrect formatting.
++# It can be your email address, or a mailing list address where translators
++# can write to without being subscribed, or the URL of a web page through
++# which the translators can contact you.
++MSGID_BUGS_ADDRESS =
++
++# This is the list of locale categories, beyond LC_MESSAGES, for which the
++# message catalogs shall be used. It is usually empty.
++EXTRA_LOCALE_CATEGORIES =
++
++# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
++# context. Possible values are "yes" and "no". Set this to yes if the
++# package uses functions taking also a message context, like pgettext(), or
++# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
++USE_MSGCTXT = no
++
++# These options get passed to msgmerge.
++# Useful options are in particular:
++# --previous to keep previous msgids of translated messages,
++# --quiet to reduce the verbosity.
++MSGMERGE_OPTIONS =
++
++# These options get passed to msginit.
++# If you want to disable line wrapping when writing PO files, add
++# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
++# MSGINIT_OPTIONS.
++MSGINIT_OPTIONS =
++
++# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
++# has changed. Possible values are "yes" and "no". Set this to no if
++# the POT file is checked in the repository and the version control
++# program ignores timestamps.
++PO_DEPENDS_ON_POT = yes
++
++# This tells whether or not to forcibly update $(DOMAIN).pot and
++# regenerate PO files on "make dist". Possible values are "yes" and
++# "no". Set this to no if the POT file and PO files are maintained
++# externally.
++DIST_DEPENDS_ON_UPDATE_PO = yes
+Index: lgeneral/po/pg/Makevars
+===================================================================
+--- /dev/null
++++ lgeneral/po/pg/Makevars
+@@ -0,0 +1,82 @@
++# Makefile variables for PO directory in any package using GNU gettext.
++#
++# Copyright (C) 2003-2019 Free Software Foundation, Inc.
++# This file is free software; the Free Software Foundation gives
++# unlimited permission to use, copy, distribute, and modify it.
++
++# Usually the message domain is the same as the package name.
++DOMAIN = pg
++
++# These two variables depend on the location of this directory.
++subdir = $(DOMAIN)
++top_builddir = ../..
++
++# These options get passed to xgettext.
++XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
++
++# This is the copyright holder that gets inserted into the header of the
++# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
++# package. (Note that the msgstr strings, extracted from the package's
++# sources, belong to the copyright holder of the package.) Translators are
++# expected to transfer the copyright for their translations to this person
++# or entity, or to disclaim their copyright. The empty string stands for
++# the public domain; in this case the translators are expected to disclaim
++# their copyright.
++COPYRIGHT_HOLDER = Free Software Foundation, Inc.
++
++# This tells whether or not to prepend "GNU " prefix to the package
++# name that gets inserted into the header of the $(DOMAIN).pot file.
++# Possible values are "yes", "no", or empty. If it is empty, try to
++# detect it automatically by scanning the files in $(top_srcdir) for
++# "GNU packagename" string.
++PACKAGE_GNU =
++
++# This is the email address or URL to which the translators shall report
++# bugs in the untranslated strings:
++# - Strings which are not entire sentences, see the maintainer guidelines
++# in the GNU gettext documentation, section 'Preparing Strings'.
++# - Strings which use unclear terms or require additional context to be
++# understood.
++# - Strings which make invalid assumptions about notation of date, time or
++# money.
++# - Pluralisation problems.
++# - Incorrect English spelling.
++# - Incorrect formatting.
++# It can be your email address, or a mailing list address where translators
++# can write to without being subscribed, or the URL of a web page through
++# which the translators can contact you.
++MSGID_BUGS_ADDRESS =
++
++# This is the list of locale categories, beyond LC_MESSAGES, for which the
++# message catalogs shall be used. It is usually empty.
++EXTRA_LOCALE_CATEGORIES =
++
++# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
++# context. Possible values are "yes" and "no". Set this to yes if the
++# package uses functions taking also a message context, like pgettext(), or
++# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
++USE_MSGCTXT = no
++
++# These options get passed to msgmerge.
++# Useful options are in particular:
++# --previous to keep previous msgids of translated messages,
++# --quiet to reduce the verbosity.
++MSGMERGE_OPTIONS =
++
++# These options get passed to msginit.
++# If you want to disable line wrapping when writing PO files, add
++# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
++# MSGINIT_OPTIONS.
++MSGINIT_OPTIONS =
++
++# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
++# has changed. Possible values are "yes" and "no". Set this to no if
++# the POT file is checked in the repository and the version control
++# program ignores timestamps.
++PO_DEPENDS_ON_POT = yes
++
++# This tells whether or not to forcibly update $(DOMAIN).pot and
++# regenerate PO files on "make dist". Possible values are "yes" and
++# "no". Set this to no if the POT file and PO files are maintained
++# externally.
++DIST_DEPENDS_ON_UPDATE_PO = yes
+Index: lgeneral/po/pg/POTFILES.in
+===================================================================
+--- /dev/null
++++ lgeneral/po/pg/POTFILES.in
+@@ -0,0 +1 @@
++po/pg/pg-translations.c
diff --git a/games-strategy/lgeneral/lgeneral-1.4.4.ebuild b/games-strategy/lgeneral/lgeneral-1.4.4-r1.ebuild
index f35921ed74bd..2b06651fa939 100644
--- a/games-strategy/lgeneral/lgeneral-1.4.4.ebuild
+++ b/games-strategy/lgeneral/lgeneral-1.4.4-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit readme.gentoo-r1 toolchain-funcs xdg
+inherit readme.gentoo-r1 toolchain-funcs xdg autotools
DESCRIPTION="Turn-based strategy game heavily inspired by the classic Panzer General"
HOMEPAGE="https://lgames.sourceforge.io/LGeneral/"
@@ -24,8 +24,18 @@ BDEPEND="sys-devel/gettext"
PATCHES=(
"${FILESDIR}"/${PN}-1.4.3-fix-utf8.patch
+ "${FILESDIR}"/update_autotools.patch
+ "${FILESDIR}"/${PN}-1.4.4-configure.patch
+ "${FILESDIR}"/${PN}-1.4.4-remove-defs-from-header.patch
+ "${FILESDIR}"/${PN}-1.4.4-uninline.patch
)
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
src_compile() {
emake AR="$(tc-getAR)"
}
diff --git a/games-strategy/naev/Manifest b/games-strategy/naev/Manifest
index 771b93406c00..3cb90febdd8a 100644
--- a/games-strategy/naev/Manifest
+++ b/games-strategy/naev/Manifest
@@ -1,3 +1,5 @@
DIST naev-0.12.2-source.tar.xz 465301164 BLAKE2B 1a9af216a66677dbbdcf381eff9b638df47610e7a7e1ffe881234805594b40ebdf76adf413458b936a487a807f7238e1e45f2479fd8ae1fcca352cc584d48493 SHA512 898a1c4e820f1bad5b3abfdbf255d6a54363462e3eaf6bbcffd9f806398094100fa3776fb4bcbc8510b2a159cf73e49d9909213e671f979cbf7b4983e2f43b3e
+DIST naev-0.12.3-source.tar.xz 465309428 BLAKE2B c213dde47352d809d10c226978165bf0b4c5257afcc77866c4b7ca2a6f06bc5580fb685ca2428cb0ba09474b03d13b27cfbd2f6751da14c3503b3f481b57a6c3 SHA512 6ae2701d66a198f128e8f2d87a5f6177ef8dcba64ef5ac1110e0af94bd74a46b3183f1a6771d632e9da79e29fc8ee502cfaa36ab7a8e259e681efe9946a9d239
EBUILD naev-0.12.2.ebuild 2355 BLAKE2B e6300088539fd74a59fab76e08655f277d621b6a7f432d718a756a6b7b9a5ae4b76056b17f62edfb4b4996e41265b00f1fcc6601af24f55aa993376583b3d4ef SHA512 a87edbaaeff3f616834277c5cac79b6415810335224aeb3156d17cb24527f8c7cfbdcf584dfac726d438aaa4b42cf2ffe02bf9ad222d31812de18489b225122f
+EBUILD naev-0.12.3.ebuild 2355 BLAKE2B e6300088539fd74a59fab76e08655f277d621b6a7f432d718a756a6b7b9a5ae4b76056b17f62edfb4b4996e41265b00f1fcc6601af24f55aa993376583b3d4ef SHA512 a87edbaaeff3f616834277c5cac79b6415810335224aeb3156d17cb24527f8c7cfbdcf584dfac726d438aaa4b42cf2ffe02bf9ad222d31812de18489b225122f
MISC metadata.xml 328 BLAKE2B 2c831943c7eee723e5c707906bcec96e97abd71e5d6fc3256010cca9626aebe95ecd7dca316a9567fe41186f0a656a434d774f83f088f414a95b3aba425c23b9 SHA512 426ac4b34b6cb45db05f5a7768a15947f67f5e90cda1bafa817320988aeb96ade18d774b2aa5e92d12c1fd1fd7a4964ac1bbdacbca6655325ccccc6a9405dfa4
diff --git a/games-strategy/naev/naev-0.12.3.ebuild b/games-strategy/naev/naev-0.12.3.ebuild
new file mode 100644
index 000000000000..bd285077a6fe
--- /dev/null
+++ b/games-strategy/naev/naev-0.12.3.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( luajit )
+PYTHON_COMPAT=( python3_{10..13} )
+inherit lua-single meson python-any-r1 xdg
+
+DESCRIPTION="2D space trading and combat game, in a similar vein to Escape Velocity"
+HOMEPAGE="https://naev.org/"
+SRC_URI="https://github.com/naev/naev/releases/download/v${PV}/${P}-source.tar.xz"
+
+LICENSE="
+ GPL-3+
+ Apache-2.0 BSD BSD-2 CC-BY-2.0 CC-BY-3.0 CC-BY-4.0 CC-BY-SA-3.0
+ CC-BY-SA-4.0 CC0-1.0 GPL-2+ MIT OFL-1.1 public-domain
+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+# tests are very basic, equivalent to just starting the game and checking if
+# can see the main menu -- but this breaks easily with software rendering and
+# some Xorg/mesa versions, simpler to do manually than try to keep this working
+RESTRICT="test"
+
+# dlopen: libglvnd
+RDEPEND="
+ ${LUA_DEPS}
+ app-text/cmark:=
+ dev-games/physfs
+ dev-libs/libpcre2:=
+ dev-libs/libunibreak:=
+ dev-libs/libxml2
+ dev-libs/libyaml
+ dev-libs/nativefiledialog-extended
+ media-libs/freetype:2
+ media-libs/libglvnd
+ media-libs/libsdl2[joystick,opengl,video]
+ media-libs/libvorbis
+ media-libs/openal
+ media-libs/sdl2-image[png,webp]
+ net-libs/enet:1.3=
+ sci-libs/cholmod
+ sci-libs/cxsparse
+ sci-libs/openblas
+ sci-libs/suitesparse
+ sci-mathematics/glpk:=
+ virtual/libintl
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ sys-devel/gettext
+ doc? (
+ app-text/doxygen
+ dev-lua/ldoc
+ media-gfx/graphviz
+ )
+"
+
+python_check_deps() {
+ python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ lua-single_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # don't probe OpenGL for tests (avoids sandbox violations, bug #829369)
+ sed -i "/subdir('glcheck')/d" test/meson.build || die
+}
+
+src_configure() {
+ local emesonargs=(
+ # *can* do lua5-1 but upstream uses+test luajit most (bug #946881)
+ -Dluajit=enabled
+ $(meson_feature doc docs_c)
+ $(meson_feature doc docs_lua)
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ local DOCS=( CHANGELOG Readme.md )
+ meson_src_install
+
+ if use doc; then
+ dodir /usr/share/doc/${PF}/html
+ mv -- "${ED}"/usr/{doc/naev/{c,lua},share/doc/${PF}/html} || die
+ rm -r -- "${ED}"/usr/doc || die
+ fi
+
+ rm -r -- "${ED}"/usr/share/doc/naev || die
+}