summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-engines')
-rw-r--r--games-engines/box2d/box2d-2.4.1.ebuild23
-rw-r--r--games-engines/box2d/metadata.xml2
-rw-r--r--games-engines/dMagnetic/Manifest2
-rw-r--r--games-engines/dMagnetic/dMagnetic-0.36.ebuild (renamed from games-engines/dMagnetic/dMagnetic-0.30.ebuild)6
-rw-r--r--games-engines/dMagnetic/metadata.xml2
-rw-r--r--games-engines/devilutionx/Manifest4
-rw-r--r--games-engines/devilutionx/devilutionx-1.1.0-r2.ebuild65
-rw-r--r--games-engines/devilutionx/devilutionx-1.2.0.ebuild67
-rw-r--r--games-engines/devilutionx/devilutionx-1.2.1.ebuild69
-rw-r--r--games-engines/devilutionx/devilutionx-1.5.2.ebuild89
-rw-r--r--games-engines/devilutionx/devilutionx-9999.ebuild69
-rw-r--r--games-engines/devilutionx/files/devilutionx-1.1.0-no_bundled_font.patch62
-rw-r--r--games-engines/devilutionx/files/devilutionx-1.2.0_pre-no_bundled_font.patch40
-rw-r--r--games-engines/devilutionx/metadata.xml11
-rw-r--r--games-engines/exult/Manifest2
-rw-r--r--games-engines/exult/exult-1.6.ebuild51
-rw-r--r--games-engines/exult/exult-1.8.ebuild57
-rw-r--r--games-engines/exult/metadata.xml5
-rw-r--r--games-engines/fheroes2/Manifest1
-rw-r--r--games-engines/fheroes2/fheroes2-1.0.13.ebuild76
-rw-r--r--games-engines/fheroes2/files/fheroes2-1.0.4-scripts.patch19
-rw-r--r--games-engines/fheroes2/metadata.xml31
-rw-r--r--games-engines/frobtads/Manifest2
-rw-r--r--games-engines/frobtads/files/frobtads-1.2.4-tinfo.patch12
-rw-r--r--games-engines/frobtads/frobtads-2.0.ebuild (renamed from games-engines/frobtads/frobtads-1.2.4.ebuild)33
-rw-r--r--games-engines/frobtads/metadata.xml2
-rw-r--r--games-engines/frotz/Manifest1
-rw-r--r--games-engines/frotz/files/frotz-2.53-uint32.patch475
-rw-r--r--games-engines/frotz/frotz-2.53-r1.ebuild (renamed from games-engines/frotz/frotz-2.52.ebuild)10
-rw-r--r--games-engines/frotz/frotz-2.53.ebuild75
-rw-r--r--games-engines/frotz/metadata.xml2
-rw-r--r--games-engines/gargoyle/gargoyle-2019.1.1.ebuild9
-rw-r--r--games-engines/gargoyle/metadata.xml2
-rw-r--r--games-engines/love/Manifest3
-rw-r--r--games-engines/love/love-0.7.2-r100.ebuild9
-rw-r--r--games-engines/love/love-0.8.0-r100.ebuild9
-rw-r--r--games-engines/love/love-11.4.ebuild (renamed from games-engines/love/love-11.3-r100.ebuild)29
-rw-r--r--games-engines/love/love-11.5.ebuild77
-rw-r--r--games-engines/love/love-9999.ebuild24
-rw-r--r--games-engines/love/metadata.xml8
-rw-r--r--games-engines/metadata.xml2
-rw-r--r--games-engines/minetest/Manifest2
-rw-r--r--games-engines/minetest/files/minetest-5.7.0-no_upstream_optflags.patch11
-rw-r--r--games-engines/minetest/files/minetest-5.8.0-include_algorithm.patch20
-rw-r--r--games-engines/minetest/files/minetestserver.confd16
-rw-r--r--games-engines/minetest/files/minetestserver.initd35
-rw-r--r--games-engines/minetest/files/minetestserver.logrotate6
-rw-r--r--games-engines/minetest/files/minetestserver_default.service15
-rw-r--r--games-engines/minetest/files/minetestserver_template.service15
-rw-r--r--games-engines/minetest/metadata.xml54
-rw-r--r--games-engines/minetest/minetest-5.7.0-r2.ebuild151
-rw-r--r--games-engines/minetest/minetest-5.8.0.ebuild151
-rw-r--r--games-engines/nazghul/Manifest1
-rw-r--r--games-engines/nazghul/nazghul-0.7.1-r1.ebuild44
-rw-r--r--games-engines/odamex/Manifest3
-rw-r--r--games-engines/odamex/files/odamex-0.8.1-miniupnpc.patch48
-rw-r--r--games-engines/odamex/files/odamex-0.8.3-Use-C-11-on-odalaunch-target-for-wx-3.0.4-and-up.patch29
-rw-r--r--games-engines/odamex/files/odamex-0.9.0-Set-IMPORTED_LOCATION-for-jsoncpp.patch24
-rw-r--r--games-engines/odamex/files/odamex-0.9.0-Unbundle-miniupnpc.patch80
-rw-r--r--games-engines/odamex/files/odamex-10.3.0-unbundle-fltk.patch87
-rw-r--r--games-engines/odamex/files/odamex-10.4.0-backport-pr928.patch66
-rw-r--r--games-engines/odamex/files/odamex-lto.patch41
-rw-r--r--games-engines/odamex/files/odamex-musl.patch119
-rw-r--r--games-engines/odamex/files/odamex-odalaunch-prefix.patch64
-rw-r--r--games-engines/odamex/metadata.xml14
-rw-r--r--games-engines/odamex/odamex-0.8.3.ebuild76
-rw-r--r--games-engines/odamex/odamex-10.4.0-r3.ebuild (renamed from games-engines/odamex/odamex-0.9.0.ebuild)47
-rw-r--r--games-engines/openmw/Manifest4
-rw-r--r--games-engines/openmw/files/openmw-0.46.0-fix-cast.patch214
-rw-r--r--games-engines/openmw/files/openmw-0.46.0-floattest2.patch139
-rw-r--r--games-engines/openmw/files/openmw-0.46.0-gcc11.patch36
-rw-r--r--games-engines/openmw/files/openmw-0.46.0-missing-include.patch19
-rw-r--r--games-engines/openmw/files/openmw-0.46.0-mygui-license.patch16
-rw-r--r--games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch335
-rw-r--r--games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch24
-rw-r--r--games-engines/openmw/files/openmw-0.47.0-mygui-license.patch16
-rw-r--r--games-engines/openmw/files/openmw-0.48.0-gcc14.patch13
-rw-r--r--games-engines/openmw/metadata.xml2
-rw-r--r--games-engines/openmw/openmw-0.48.0.ebuild (renamed from games-engines/openmw/openmw-0.46.0.ebuild)110
-rw-r--r--games-engines/openmw/openmw-9999.ebuild93
-rw-r--r--games-engines/openxcom/files/openxcom-9999-mandir.patch9
-rw-r--r--games-engines/openxcom/metadata.xml2
-rw-r--r--games-engines/openxcom/openxcom-1.0.0_p20180317-r1.ebuild4
-rw-r--r--games-engines/openxcom/openxcom-9999.ebuild6
-rw-r--r--games-engines/qtads/Manifest2
-rw-r--r--games-engines/qtads/metadata.xml2
-rw-r--r--games-engines/qtads/qtads-3.3.0-r1.ebuild (renamed from games-engines/qtads/qtads-3.0.0.ebuild)16
-rw-r--r--games-engines/residualvm/Manifest2
-rw-r--r--games-engines/residualvm/files/residualvm-0.3.1-freetype_pkgconfig.patch145
-rw-r--r--games-engines/residualvm/metadata.xml14
-rw-r--r--games-engines/residualvm/residualvm-0.2.1-r1.ebuild81
-rw-r--r--games-engines/residualvm/residualvm-0.3.1-r2.ebuild98
-rw-r--r--games-engines/residualvm/residualvm-9999.ebuild82
-rw-r--r--games-engines/scrap-engine/Manifest1
-rw-r--r--games-engines/scrap-engine/files/scrap-engine-tests.patch12
-rw-r--r--games-engines/scrap-engine/metadata.xml (renamed from games-engines/nazghul/metadata.xml)5
-rw-r--r--games-engines/scrap-engine/scrap-engine-1.2.0.ebuild47
-rw-r--r--games-engines/scummvm-tools/Manifest4
-rw-r--r--games-engines/scummvm-tools/files/scummvm-tools-2.2.0-strings.patch17
-rw-r--r--games-engines/scummvm-tools/files/scummvm-tools-2.7.0-endianess.patch27
-rw-r--r--games-engines/scummvm-tools/metadata.xml5
-rw-r--r--games-engines/scummvm-tools/scummvm-tools-2.1.0.ebuild66
-rw-r--r--games-engines/scummvm-tools/scummvm-tools-2.2.0-r1.ebuild (renamed from games-engines/scummvm-tools/scummvm-tools-2.2.0.ebuild)25
-rw-r--r--games-engines/scummvm-tools/scummvm-tools-2.7.0_p1.ebuild87
-rw-r--r--games-engines/scummvm/Manifest3
-rw-r--r--games-engines/scummvm/files/scummvm-2.2.0-fluidsynth-2.2.patch150
-rw-r--r--games-engines/scummvm/files/scummvm-2.2.0-ultima_engine_lua_dep.patch18
-rw-r--r--games-engines/scummvm/metadata.xml5
-rw-r--r--games-engines/scummvm/scummvm-2.8.0.ebuild (renamed from games-engines/scummvm/scummvm-2.2.0-r1.ebuild)70
-rw-r--r--games-engines/scummvm/scummvm-2.8.1.ebuild142
-rw-r--r--games-engines/scummvm/scummvm-9999.ebuild57
-rw-r--r--games-engines/solarus/Manifest2
-rw-r--r--games-engines/solarus/metadata.xml4
-rw-r--r--games-engines/solarus/solarus-1.3.1-r100.ebuild56
-rw-r--r--games-engines/solarus/solarus-1.6.5.ebuild79
-rw-r--r--games-engines/solarus/solarus-9999.ebuild79
-rw-r--r--games-engines/stratagus/Manifest3
-rw-r--r--games-engines/stratagus/metadata.xml5
-rw-r--r--games-engines/stratagus/stratagus-2.4.3-r100.ebuild71
-rw-r--r--games-engines/stratagus/stratagus-3.3.2-r1.ebuild (renamed from games-engines/stratagus/stratagus-3.0.0-r100.ebuild)42
-rw-r--r--games-engines/xzip/files/xzip-1.8.2-clang16.patch9
-rw-r--r--games-engines/xzip/metadata.xml2
-rw-r--r--games-engines/xzip/xzip-1.8.2-r4.ebuild (renamed from games-engines/xzip/xzip-1.8.2-r3.ebuild)16
-rw-r--r--games-engines/zoom/metadata.xml2
-rw-r--r--games-engines/zoom/zoom-1.1.5-r1.ebuild13
125 files changed, 2638 insertions, 2726 deletions
diff --git a/games-engines/box2d/box2d-2.4.1.ebuild b/games-engines/box2d/box2d-2.4.1.ebuild
index 5e4e5ca8df3c..c1d08c8c243f 100644
--- a/games-engines/box2d/box2d-2.4.1.ebuild
+++ b/games-engines/box2d/box2d-2.4.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,15 +11,30 @@ SRC_URI="https://github.com/erincatto/Box2D/archive/v${PV}.tar.gz -> ${P}.tar.gz
LICENSE="ZLIB"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
-IUSE="doc"
+KEYWORDS="amd64 ~arm arm64 ~loong ppc64 ~riscv x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
-BDEPEND="doc? ( app-doc/doxygen )"
+DEPEND="test? ( dev-cpp/doctest )"
+BDEPEND="doc? ( app-text/doxygen )"
+
+src_prepare() {
+ cmake_src_prepare
+
+ # unbundle doctest
+ rm unit-test/doctest.h || die
+ ln -s "${ESYSROOT}"/usr/include/doctest/doctest.h unit-test/ || die
+}
src_configure() {
local mycmakeargs=(
-DBOX2D_BUILD_TESTBED=OFF # bundled libs, broken anyway right now
+ -DBOX2D_BUILD_UNIT_TESTS=$(usex test)
-DBOX2D_BUILD_DOCS=$(usex doc)
)
cmake_src_configure
}
+
+src_test() {
+ "${BUILD_DIR}"/bin/unit_test || die
+}
diff --git a/games-engines/box2d/metadata.xml b/games-engines/box2d/metadata.xml
index f73e6cf85872..7be1d51db43c 100644
--- a/games-engines/box2d/metadata.xml
+++ b/games-engines/box2d/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
diff --git a/games-engines/dMagnetic/Manifest b/games-engines/dMagnetic/Manifest
index deb73c5cd3ff..c2066daa346e 100644
--- a/games-engines/dMagnetic/Manifest
+++ b/games-engines/dMagnetic/Manifest
@@ -1 +1 @@
-DIST dMagnetic_0.30.tar.bz2 82369 BLAKE2B bc881a85f5da0f5f3531f2ce77369d5f5c43f424deeb626978e1589b0cf7a1105fdcfbdc3316c123c89c8384fd614260c58803bc9d3126eec60d11d7f00c995e SHA512 f903f352285476a3de67703220ea0c9cdb2ce3ef1fd73f7f9808eba13e39ae531426acf76424d2f9503ba387b7ac24e0b0959969ed99ba8c553c4f1c43a0a4da
+DIST dMagnetic_0.36.tar.bz2 93540 BLAKE2B 3e6e4ddb4d20f28175737d8e99f51d95d98a5420c5125080879fee9bbd68ca376c2fb1baafd547555835faa209ab0d7c07ef59afb0e903b2b2a0c1a19fd7d41a SHA512 2de79a6de8ac3112f76b9b409def6eaa9265e9acd80143cdccf984dfead4d9134f1fc4ea3835f77f97b64a57a924eafadf57a4015e6710b6e4b603fc589128fd
diff --git a/games-engines/dMagnetic/dMagnetic-0.30.ebuild b/games-engines/dMagnetic/dMagnetic-0.36.ebuild
index 1e15cd42de8b..826c6e72aba2 100644
--- a/games-engines/dMagnetic/dMagnetic-0.30.ebuild
+++ b/games-engines/dMagnetic/dMagnetic-0.36.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit prefix toolchain-funcs
@@ -33,7 +33,7 @@ src_test() {
src_install() {
dobin ${PN}
- doman ${PN}.1 ${PN}ini.5
+ doman ${PN}.6 ${PN}ini.5
dodoc README.txt
insinto /etc
diff --git a/games-engines/dMagnetic/metadata.xml b/games-engines/dMagnetic/metadata.xml
index 26079e608bed..7c730d47817a 100644
--- a/games-engines/dMagnetic/metadata.xml
+++ b/games-engines/dMagnetic/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
diff --git a/games-engines/devilutionx/Manifest b/games-engines/devilutionx/Manifest
index e21f9b5eae14..511b29de8cd0 100644
--- a/games-engines/devilutionx/Manifest
+++ b/games-engines/devilutionx/Manifest
@@ -1,3 +1 @@
-DIST devilutionx-1.1.0.tar.gz 2271614 BLAKE2B 8afdffafd86477bdeb62c2c3abb96d35dcccde7f7c44cb5ca5bbd8b46ae5f3998262eae4fa23f5c84a3ffdbcbdfc27cf91dc758cb69bfe24b301959085fbe31e SHA512 341e7f2e74e7af4a7b42054b58b6518c2f286f2fdcb21c5553a15912c044ea08f6c7b07a2079e7e795a5146e7a301789fe32b6fda5ff9fbec0654d886d423b38
-DIST devilutionx-1.2.0.tar.gz 3571940 BLAKE2B 26001a8dc594777dbf6822c41ce89ad08e6cdff5621c04083ede1398cd12d4c4496da91e4cfed674e73c5411b2c569539a37102c4a418d552bb383a71527a4f2 SHA512 30ae94feacb9125345f877981c0e23ccbc3a0db96be6c5b1a402c7c5685b5f60f825c9dcde91dbf344b845c03b0b77358e5c656aac7869b5c450b72457da02c9
-DIST devilutionx-1.2.1.tar.gz 3573200 BLAKE2B c3055bfa8ae0a670e21561673e23277fb76e2b24d269fdd86d13510f68a0e841ec96ab06cf98739913870884d82037b5297ce168e6cba1f8795de6ea72620649 SHA512 9327b127d0ad22d640b1a13fad9bfa00ba0fc512dd7ed362a9e84a80278d84634cd039cba7c98f15425715b11a35dc6ac07d75c816c3cbc818e6ab8c4437cf18
+DIST devilutionx-1.5.2.tar.xz 21968848 BLAKE2B 5a8c280f262e2d0f47ee5978cfc858ea62481eac838ad691996f359f1c4889499e4c78b5e6a1f2dc998cf0fc89ebbdf79296a25adb411e30e9248cce1b07d3a8 SHA512 b7fd5814c8671e439d4349297cfda0d89eb1f7a0945ec11bdf7a83637371664c9c39c036249e1650911397111e1b5d9e931f221ffd2d4a1f9e80d5ca58357dcf
diff --git a/games-engines/devilutionx/devilutionx-1.1.0-r2.ebuild b/games-engines/devilutionx/devilutionx-1.1.0-r2.ebuild
deleted file mode 100644
index ed7391e75b02..000000000000
--- a/games-engines/devilutionx/devilutionx-1.1.0-r2.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Sometimes build with ninja fails.
-# Please check occasionally if we can revert back to ninja.
-# Latest known issue:
-#
-#CMAKE_MAKEFILE_GENERATOR="emake"
-
-inherit cmake
-
-DESCRIPTION="Diablo engine for modern operating systems"
-HOMEPAGE="https://github.com/diasurgical/devilutionX"
-if [[ "${PV}" == 9999 ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/diasurgical/devilutionX.git"
-else
- SRC_URI="https://github.com/diasurgical/devilutionX/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/devilutionX-${PV}"
-fi
-
-LICENSE="public-domain"
-SLOT="0"
-
-IUSE="debug lto"
-
-RDEPEND="
- dev-libs/libsodium
- media-fonts/sil-charis
- media-libs/libsdl2[haptic]
- media-libs/sdl2-mixer
- media-libs/sdl2-ttf
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.1.0-no_bundled_font.patch" #704508
-)
-
-src_configure() {
- local mycmakeargs=(
- -DASAN="OFF"
- -DDEBUG="$(usex debug)"
- -DDISABLE_LTO="$(usex !lto)"
- -DDIST="ON"
- -DUBSAN="OFF"
- )
- cmake_src_configure
-
- # Build system still doesn't reliably set release version in the build
- sed "/PROJECT_VERSION/s@-@${PV}@" -i "${BUILD_DIR}/config.h" || die
-}
-
-pkg_postinst() {
- einfo "In order to play the game you need to install the file"
- einfo " diabdat.mpq"
- einfo "from the original game CD into the following directory:"
- einfo " \${HOME}/.local/share/diasurgical/devilution/"
-}
diff --git a/games-engines/devilutionx/devilutionx-1.2.0.ebuild b/games-engines/devilutionx/devilutionx-1.2.0.ebuild
deleted file mode 100644
index 6f93a6c2ac09..000000000000
--- a/games-engines/devilutionx/devilutionx-1.2.0.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Sometimes build with ninja fails.
-# Please check occasionally if we can revert back to ninja.
-# Latest known issue:
-#
-#CMAKE_MAKEFILE_GENERATOR="emake"
-
-inherit cmake
-
-DESCRIPTION="Diablo engine for modern operating systems"
-HOMEPAGE="https://github.com/diasurgical/devilutionX"
-if [[ "${PV}" == 9999 ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/diasurgical/devilutionX.git"
-else
- SRC_URI="https://github.com/diasurgical/devilutionX/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/devilutionX-${PV}"
-fi
-
-LICENSE="public-domain"
-SLOT="0"
-
-IUSE="debug lto"
-
-RDEPEND="
- dev-libs/libsodium
- media-fonts/sil-charis
- media-libs/libsdl2[haptic]
- media-libs/sdl2-mixer
- media-libs/sdl2-ttf
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.2.0_pre-no_bundled_font.patch" #704508
-)
-
-src_configure() {
- local mycmakeargs=(
- -DASAN="OFF"
- -DDEBUG="$(usex debug)"
- -DDISABLE_LTO="$(usex !lto)"
- -DDIST="ON"
- -DUBSAN="OFF"
- )
-
- if [[ "${PV}" != 9999 ]] ; then
- mycmakeargs+=( -DVERSION_NUM="${PV}" )
- fi
-
- cmake_src_configure
-}
-
-pkg_postinst() {
- einfo "In order to play the game you need to install the file"
- einfo " diabdat.mpq"
- einfo "from the original game CD into the following directory:"
- einfo " \${HOME}/.local/share/diasurgical/devilution/"
-}
diff --git a/games-engines/devilutionx/devilutionx-1.2.1.ebuild b/games-engines/devilutionx/devilutionx-1.2.1.ebuild
deleted file mode 100644
index 01125c9e7e42..000000000000
--- a/games-engines/devilutionx/devilutionx-1.2.1.ebuild
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Sometimes build with ninja fails.
-# Please check occasionally if we can revert back to ninja.
-# Latest known issue:
-#
-#CMAKE_MAKEFILE_GENERATOR="emake"
-
-inherit cmake
-
-DESCRIPTION="Diablo engine for modern operating systems"
-HOMEPAGE="https://github.com/diasurgical/devilutionX"
-if [[ "${PV}" == 9999 ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/diasurgical/devilutionX.git"
-else
- SRC_URI="https://github.com/diasurgical/devilutionX/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/devilutionX-${PV}"
-fi
-
-LICENSE="public-domain"
-SLOT="0"
-
-IUSE="debug lto"
-
-RDEPEND="
- dev-libs/libsodium
- media-fonts/sil-charis
- media-libs/libsdl2[haptic]
- media-libs/sdl2-mixer
- media-libs/sdl2-ttf
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.2.0_pre-no_bundled_font.patch" #704508
-)
-
-DOCS=( docs/CHANGELOG.md )
-
-src_configure() {
- local mycmakeargs=(
- -DASAN="OFF"
- -DDEBUG="$(usex debug)"
- -DDISABLE_LTO="$(usex !lto)"
- -DDIST="ON"
- -DUBSAN="OFF"
- )
-
- if [[ "${PV}" != 9999 ]] ; then
- mycmakeargs+=( -DVERSION_NUM="${PV}" )
- fi
-
- cmake_src_configure
-}
-
-pkg_postinst() {
- einfo "In order to play the game you need to install the file"
- einfo " diabdat.mpq"
- einfo "from the original game CD into the following directory:"
- einfo " \${HOME}/.local/share/diasurgical/devilution/"
-}
diff --git a/games-engines/devilutionx/devilutionx-1.5.2.ebuild b/games-engines/devilutionx/devilutionx-1.5.2.ebuild
new file mode 100644
index 000000000000..29c272d0006a
--- /dev/null
+++ b/games-engines/devilutionx/devilutionx-1.5.2.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2024 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? ( BUSL-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]
+ media-libs/sdl_audiolib
+ sys-libs/zlib:=
+ sodium? ( dev-libs/libsodium:= )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-cpp/asio
+ dev-cpp/simpleini
+ test? ( dev-cpp/gtest )
+"
+BDEPEND="
+ sys-devel/gettext
+"
+
+src_prepare() {
+ cmake_src_prepare
+
+ # use system asio
+ echo 'add_library(asio INTERFACE)' > 3rdParty/asio/CMakeLists.txt || die
+
+ # ensure system copies are used
+ rm -r dist/{asio,simpleini,sdl_audiolib}-src || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_TESTING=$(usex test)
+ -DCCACHE_PROGRAM=no #813768
+ -DDEBUG=$(usex debug)
+ -DDISABLE_LTO=yes # let CFLAGS control this
+ -DDISABLE_ZERO_TIER=$(usex !zerotier)
+ -DPACKET_ENCRYPTION=$(usex sodium)
+ -DPIE=yes
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ # timedemo tests only pass when game assets are available
+ cmake_src_test -E Timedemo.
+}
+
+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/devilutionx-9999.ebuild b/games-engines/devilutionx/devilutionx-9999.ebuild
deleted file mode 100644
index 01125c9e7e42..000000000000
--- a/games-engines/devilutionx/devilutionx-9999.ebuild
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Sometimes build with ninja fails.
-# Please check occasionally if we can revert back to ninja.
-# Latest known issue:
-#
-#CMAKE_MAKEFILE_GENERATOR="emake"
-
-inherit cmake
-
-DESCRIPTION="Diablo engine for modern operating systems"
-HOMEPAGE="https://github.com/diasurgical/devilutionX"
-if [[ "${PV}" == 9999 ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/diasurgical/devilutionX.git"
-else
- SRC_URI="https://github.com/diasurgical/devilutionX/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- S="${WORKDIR}/devilutionX-${PV}"
-fi
-
-LICENSE="public-domain"
-SLOT="0"
-
-IUSE="debug lto"
-
-RDEPEND="
- dev-libs/libsodium
- media-fonts/sil-charis
- media-libs/libsdl2[haptic]
- media-libs/sdl2-mixer
- media-libs/sdl2-ttf
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.2.0_pre-no_bundled_font.patch" #704508
-)
-
-DOCS=( docs/CHANGELOG.md )
-
-src_configure() {
- local mycmakeargs=(
- -DASAN="OFF"
- -DDEBUG="$(usex debug)"
- -DDISABLE_LTO="$(usex !lto)"
- -DDIST="ON"
- -DUBSAN="OFF"
- )
-
- if [[ "${PV}" != 9999 ]] ; then
- mycmakeargs+=( -DVERSION_NUM="${PV}" )
- fi
-
- cmake_src_configure
-}
-
-pkg_postinst() {
- einfo "In order to play the game you need to install the file"
- einfo " diabdat.mpq"
- einfo "from the original game CD into the following directory:"
- einfo " \${HOME}/.local/share/diasurgical/devilution/"
-}
diff --git a/games-engines/devilutionx/files/devilutionx-1.1.0-no_bundled_font.patch b/games-engines/devilutionx/files/devilutionx-1.1.0-no_bundled_font.patch
deleted file mode 100644
index 69131b562c8c..000000000000
--- a/games-engines/devilutionx/files/devilutionx-1.1.0-no_bundled_font.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-https://bugs.gentoo.org/704508
-
---- devilutionX-1.1.0/CMakeLists.txt
-+++ devilutionX-1.1.0/CMakeLists.txt
-@@ -298,7 +298,6 @@
- SourceX/main.cpp
- SourceX/devilutionx.exe.manifest
- Packaging/macOS/AppIcon.icns
-- Packaging/resources/CharisSILB.ttf
- Packaging/windows/devilutionx.rc)
-
- if(NOT NONET)
-@@ -339,9 +338,6 @@
-
- add_executable(${BIN_TARGET} WIN32 MACOSX_BUNDLE ${devilutionx_SRCS})
-
--# Copy the font to the build directory to it works from the build directory
--file(COPY "Packaging/resources/CharisSILB.ttf" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
--
- # Use file GENERATE instead of configure_file because configure_file
- # does not support generator expressions.
- get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
-@@ -563,7 +559,6 @@
-
- if(APPLE)
- set_source_files_properties("./Packaging/macOS/AppIcon.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
-- set_source_files_properties("./Packaging/resources/CharisSILB.ttf" PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
- set(MACOSX_BUNDLE_GUI_IDENTIFIER com.diasurgical.devilutionx)
- set(MACOSX_BUNDLE_COPYRIGHT Unlicense)
- set(MACOSX_BUNDLE_BUNDLE_NAME devilutionx)
-@@ -624,9 +619,6 @@
- DESTINATION "share/icons/hicolor/512x512/apps"
- RENAME "${project_name}.png"
- )
-- install(FILES "${PROJECT_SOURCE_DIR}/Packaging/resources/CharisSILB.ttf"
-- DESTINATION "share/fonts/truetype"
-- )
-
- # -G DEB
- set(CPACK_PACKAGE_CONTACT "anders@jenbo.dk")
---- devilutionX-1.1.0/SourceX/DiabloUI/fonts.cpp
-+++ devilutionX-1.1.0/SourceX/DiabloUI/fonts.cpp
-@@ -69,7 +69,7 @@
- #ifdef __linux__
- if (!FileExists(ttf_font_path))
- {
-- ttf_font_path = "/usr/share/fonts/truetype/" TTF_FONT_NAME;
-+ ttf_font_path = "/usr/share/fonts/" TTF_FONT_NAME;
- }
- #endif
- font = TTF_OpenFont(ttf_font_path, 17);
---- devilutionX-1.1.0/SourceX/DiabloUI/fonts.h
-+++ devilutionX-1.1.0/SourceX/DiabloUI/fonts.h
-@@ -11,7 +11,7 @@
- #endif
-
- #ifndef TTF_FONT_NAME
--#define TTF_FONT_NAME "CharisSILB.ttf"
-+#define TTF_FONT_NAME "sil-charis/CharisSIL-B.ttf"
- #endif
-
- namespace dvl {
diff --git a/games-engines/devilutionx/files/devilutionx-1.2.0_pre-no_bundled_font.patch b/games-engines/devilutionx/files/devilutionx-1.2.0_pre-no_bundled_font.patch
deleted file mode 100644
index 01f4006dd13f..000000000000
--- a/games-engines/devilutionx/files/devilutionx-1.2.0_pre-no_bundled_font.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 6e75bb9550bd8b4c6249fcfc0cd488224336060e Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Wed, 31 Mar 2021 17:55:03 +0200
-Subject: [PATCH] Fix font location
-
-https://bugs.gentoo.org/704508
----
- SourceS/paths.cpp | 2 +-
- SourceX/DiabloUI/fonts.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/SourceS/paths.cpp b/SourceS/paths.cpp
-index dd60fcb5..1c4f9d69 100644
---- a/SourceS/paths.cpp
-+++ b/SourceS/paths.cpp
-@@ -11,7 +11,7 @@
- #endif
-
- #ifndef TTF_FONT_NAME
--#define TTF_FONT_NAME "CharisSILB.ttf"
-+#define TTF_FONT_NAME "sil-charis/CharisSIL-B.ttf"
- #endif
-
- namespace dvl {
-diff --git a/SourceX/DiabloUI/fonts.cpp b/SourceX/DiabloUI/fonts.cpp
-index 178dcbe9..5f825886 100644
---- a/SourceX/DiabloUI/fonts.cpp
-+++ b/SourceX/DiabloUI/fonts.cpp
-@@ -66,7 +66,7 @@ void LoadTtfFont()
- std::string ttf_font_path = GetTtfPath() + GetTtfName();
- #ifdef __linux__
- if (!FileExists(ttf_font_path.c_str())) {
-- ttf_font_path = "/usr/share/fonts/truetype/" + GetTtfName();
-+ ttf_font_path = "/usr/share/fonts/" + GetTtfName();
- }
- #endif
- font = TTF_OpenFont(ttf_font_path.c_str(), 17);
---
-2.31.1
-
diff --git a/games-engines/devilutionx/metadata.xml b/games-engines/devilutionx/metadata.xml
index 6f7209b5d36d..f75265ef16b8 100644
--- a/games-engines/devilutionx/metadata.xml
+++ b/games-engines/devilutionx/metadata.xml
@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>polynomial-c@gentoo.org</email>
- <name>Lars Wendler</name>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
</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>
diff --git a/games-engines/exult/Manifest b/games-engines/exult/Manifest
index 89066ec8df51..c7d793a45880 100644
--- a/games-engines/exult/Manifest
+++ b/games-engines/exult/Manifest
@@ -1 +1 @@
-DIST exult-1.6.tar.gz 7906968 BLAKE2B f58b009bf82c5120a7ce588cbc5d2b282b92d7e8d08fb3e6119436de178ebd8af1d9a10e4ba660038aac9b87f0ced3fbbdbc5f39a3b3e17fee36b295d7df2603 SHA512 e786ccc11d3fc1b0747c0c620b51152d09f5157ca1e458a5aecc5e66c91e3222b6ba61311149bd6be83e20d339ea1d6d47640f89cc1750a9720549278a33e1b2
+DIST exult-1.8.tar.gz 19104130 BLAKE2B 56e127d95d3a948b7c52ca3439f8a84691728817c855b46580a8baf21ad0b8f663d5f9fb2fb855d73baa1d3cc29181d001adae1a978c75a7dfa598879b559ab4 SHA512 5422f70c00a1d5ff0606cb7613b891abda430872c50b1058999085c7df08360fd55d5bdf95cbff09616cf3b11e51dce4b11c7322c3db9a8756946e5854ef0fde
diff --git a/games-engines/exult/exult-1.6.ebuild b/games-engines/exult/exult-1.6.ebuild
deleted file mode 100644
index 98d89565e660..000000000000
--- a/games-engines/exult/exult-1.6.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="an Ultima 7 game engine that runs on modern operating systems"
-HOMEPAGE="http://exult.sourceforge.net/"
-SRC_URI="https://downloads.sourceforge.net/${PN}/exult-all-versions/${PV}/${P}.tar.gz"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="alsa fluidsynth opengl +sdl2 timidity tools"
-
-DEPEND="
- games-misc/exult-sound
- >=media-libs/libpng-1.6:0=
- media-libs/libvorbis
- sys-libs/zlib
- alsa? ( media-libs/alsa-lib )
- fluidsynth? ( media-sound/fluidsynth )
- opengl? ( virtual/opengl )
- sdl2? ( media-libs/libsdl2[sound,video,X] )
- !sdl2? ( media-libs/libsdl[sound,video,X] )
- timidity? ( >=media-sound/timidity++-2 )
-"
-RDEPEND="${DEPEND}"
-
-DOCS=(
- AUTHORS ChangeLog FAQ NEWS README README.1ST
-)
-
-src_configure() {
- econf \
- --enable-mods \
- --enable-zip-support \
- --with-desktopdir=/usr/share/applications \
- --with-icondir=/usr/share/pixmaps \
- --with-sdl=$(usex sdl2 sdl2 sdl12) \
- $(use_enable alsa) \
- $(use_enable fluidsynth) \
- $(use_enable opengl) \
- $(use_enable timidity timidity-midi) \
- $(use_enable tools)
-}
-
-pkg_postinst() {
- elog "You *must* have the original Ultima7 The Black Gate and/or"
- elog "The Serpent Isle installed."
- elog "See documentation in /usr/share/doc/${PF} for information."
-}
diff --git a/games-engines/exult/exult-1.8.ebuild b/games-engines/exult/exult-1.8.ebuild
new file mode 100644
index 000000000000..009f8a97d9b2
--- /dev/null
+++ b/games-engines/exult/exult-1.8.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Ultima 7 game engine that runs on modern operating systems"
+HOMEPAGE="https://exult.sourceforge.io"
+SRC_URI="https://downloads.sourceforge.net/exult/exult-all-versions/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="alsa fluidsynth timidity tools"
+
+RDEPEND="
+ games-misc/exult-sound
+ media-libs/libpng:=
+ media-libs/libsdl2[X,joystick,sound,video]
+ media-libs/libvorbis
+ sys-libs/zlib:=
+ alsa? ( media-libs/alsa-lib )
+ fluidsynth? ( media-sound/fluidsynth:= )
+ timidity? ( media-sound/timidity++ )"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto"
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ local econfargs=(
+ --docdir="${EPREFIX}"/usr/share/${PF}/html
+ --with-desktopdir="${EPREFIX}"/usr/share/applications
+ --with-icondir="${EPREFIX}"/usr/share/pixmaps
+ $(use_enable alsa)
+ $(use_enable fluidsynth)
+ $(use_enable timidity timidity-midi)
+ $(use_enable tools)
+ $(use_enable tools compiler)
+ $(use_enable tools mods)
+ --enable-zip-support
+ )
+
+ econf "${econfargs[@]}"
+}
+
+pkg_postinst() {
+ elog "You *must* have the original Ultima7 The Black Gate and/or"
+ elog "The Serpent Isle installed."
+ elog "See documentation in ${EROOT}/usr/share/doc/${PF} for information."
+}
diff --git a/games-engines/exult/metadata.xml b/games-engines/exult/metadata.xml
index 3a588d836e61..79d545d1aa45 100644
--- a/games-engines/exult/metadata.xml
+++ b/games-engines/exult/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
@@ -11,7 +11,6 @@
</upstream>
<use>
<flag name="fluidsynth">Compile with support for FluidSynth</flag>
- <flag name="sdl2">Use libsdl2 instead of libsdl</flag>
- <flag name="tools">Enable tools</flag>
+ <flag name="tools">Enable tools, usercode compiler and mods support</flag>
</use>
</pkgmetadata>
diff --git a/games-engines/fheroes2/Manifest b/games-engines/fheroes2/Manifest
new file mode 100644
index 000000000000..5989103d4657
--- /dev/null
+++ b/games-engines/fheroes2/Manifest
@@ -0,0 +1 @@
+DIST fheroes2-1.0.13.tar.gz 11988273 BLAKE2B ff4cdde0e22a239d9c596d846d801facbf762b4d47d5778799697471efbbbb2437ab73a5e2024c29d6705615f6bb58519b4fdc1368ce517f4ef5fdc4202fa464 SHA512 989b71ad6f217c5283441392e5a4bdee8b49d07261dba05372e185dbee239f4bb7b75290ca0b86fbf3dbf98edfaaca6234adc7e0483495ea799bf1636af3f6bc
diff --git a/games-engines/fheroes2/fheroes2-1.0.13.ebuild b/games-engines/fheroes2/fheroes2-1.0.13.ebuild
new file mode 100644
index 000000000000..c54e921e38d6
--- /dev/null
+++ b/games-engines/fheroes2/fheroes2-1.0.13.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit cmake python-single-r1 xdg
+
+DESCRIPTION="Recreation of HoMM2 game engine"
+HOMEPAGE="https://ihhub.github.io/fheroes2/"
+SRC_URI="https://github.com/ihhub/fheroes2/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+IUSE="tools"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="
+ media-libs/libpng:=
+ media-libs/libsdl2[video]
+ media-libs/sdl2-image
+ media-libs/sdl2-mixer
+ sys-libs/zlib
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+ app-arch/libarchive
+ dev-lang/python
+ virtual/libintl
+"
+BDEPEND="
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/fheroes2-1.0.4-scripts.patch"
+)
+
+src_configure() {
+ # Not using dev-games/libsmacker because the game crashes with it
+ local mycmakeargs=(
+ -DENABLE_IMAGE=ON
+ -DENABLE_TOOLS=$(usex tools)
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ emake -C files/lang
+}
+
+src_install() {
+ cmake_src_install
+
+ if use tools; then
+ for file in 82m2wav bin2txt extractor h2dmgr icn2img pal2img til2img xmi2midi; do
+ newbin "${BUILD_DIR}/${file}" "fheroes2-${file}"
+ done
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ elog "You need original HoMM2 data files to play fheroes2."
+ elog "If you have an installer (.exe) from GOG, install:"
+ elog " games-strategy/homm2-gold-gog"
+ elog "If you have the original game installed somewhere already, run:"
+ elog " ${EPREFIX}/usr/share/fheroes2/extract_homm2_resources.sh"
+ elog "Also you can automatically get a demo version for free by installing:"
+ elog " games-strategy/homm2-demo"
+}
diff --git a/games-engines/fheroes2/files/fheroes2-1.0.4-scripts.patch b/games-engines/fheroes2/files/fheroes2-1.0.4-scripts.patch
new file mode 100644
index 000000000000..c5675fdc0a6f
--- /dev/null
+++ b/games-engines/fheroes2/files/fheroes2-1.0.4-scripts.patch
@@ -0,0 +1,19 @@
+Install the data-exporting scripts to a better place than docs
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -182,12 +182,12 @@ if(NOT MACOS_APP_BUNDLE)
+ install(
+ FILES script/demo/download_demo_version.sh
+ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
+- DESTINATION ${CMAKE_INSTALL_DOCDIR}/demo
++ DESTINATION ${FHEROES2_DATA}
+ )
+ install(
+ FILES script/homm2/extract_homm2_resources.sh
+ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
+- DESTINATION ${CMAKE_INSTALL_DOCDIR}/homm2
++ DESTINATION ${FHEROES2_DATA}
+ )
+ install(
+ FILES script/packaging/common/fheroes2.appdata.xml
diff --git a/games-engines/fheroes2/metadata.xml b/games-engines/fheroes2/metadata.xml
new file mode 100644
index 000000000000..b43e5734bbae
--- /dev/null
+++ b/games-engines/fheroes2/metadata.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>alexey+gentoo@asokolov.org</email>
+ <name>Alexey Sokolov</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
+ <use>
+ <flag name="tools">Install development tools like 82m2wav and xmi2midi.</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">ihhub/fheroes2</remote-id>
+ </upstream>
+ <longdescription lang="en">
+ fheroes2 is a recreation of the Heroes of Might and Magic II game engine.
+ This open source multiplatform project, written from scratch, is
+ designed to reproduce the original game with significant improvements in
+ gameplay, graphics and logic (including support for high-resolution
+ graphics, improved AI, numerous fixes and user interface improvements),
+ breathing new life into one of the most addictive turn-based strategy
+ games.
+ </longdescription>
+</pkgmetadata>
diff --git a/games-engines/frobtads/Manifest b/games-engines/frobtads/Manifest
index 18491915c5e1..d94ab6032b8b 100644
--- a/games-engines/frobtads/Manifest
+++ b/games-engines/frobtads/Manifest
@@ -1 +1 @@
-DIST frobtads-1.2.4.tar.bz2 3801366 BLAKE2B 871a4cfd432f1a72915de0652def2f2a9a3cf1bfa20b070c2e59ced673c736584a36b3d17e7d5812ad7cd883c3e038e49f962635a5794d6c914d99651bfd0a55 SHA512 f49f58114cbd78f23fcc3835025af7874da968af825abd449e9ab83c4a90e8d70f8cfafa83780f0631ae9bd2793cce2d5dd947c13ee38ba0d06829d2803abf12
+DIST frobtads-2.0.tar.bz2 3870691 BLAKE2B 0f73137428db818b674534cec05ff7993ddc8e6d104d61c5a3a57bac05b185175ce92be1d571c0ca463e5420059a1e59274499c1620a5c0f75c37a89701bc4a4 SHA512 28c84447c1ab43cfd6956b1933f9e7ab3ac0d8b7d0767f23d8535e2ea0cac0e07f17ade07776d646102caa8c23474c3ae3d46a3eef243ad8c7aec702eea04854
diff --git a/games-engines/frobtads/files/frobtads-1.2.4-tinfo.patch b/games-engines/frobtads/files/frobtads-1.2.4-tinfo.patch
deleted file mode 100644
index f37f2ed22ce2..000000000000
--- a/games-engines/frobtads/files/frobtads-1.2.4-tinfo.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-https://bugs.gentoo.org/602446
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -88,6 +88,7 @@
- # doesn't hust to try pdcurses as a last resort.)
- #
- AC_SEARCH_LIBS([initscr], [ncurses curses pdcurses], [curseslibfound=true], [curseslibfound=false])
-+AC_SEARCH_LIBS([keypad], [tinfo])
-
- # Check for libcurl (network client library for http et al).
- #
diff --git a/games-engines/frobtads/frobtads-1.2.4.ebuild b/games-engines/frobtads/frobtads-2.0.ebuild
index 6270e7fa08f6..1a49e8fce5e5 100644
--- a/games-engines/frobtads/frobtads-1.2.4.ebuild
+++ b/games-engines/frobtads/frobtads-2.0.ebuild
@@ -3,16 +3,16 @@
EAPI=7
-inherit autotools
+inherit cmake
DESCRIPTION="Curses-based interpreter and dev tools for TADS 2 and TADS 3 text adventures"
HOMEPAGE="http://www.tads.org/frobtads.htm"
-SRC_URI="https://github.com/realnc/${PN}/releases/download/${PV}/${P}.tar.bz2"
+SRC_URI="https://github.com/realnc/${PN}/releases/download/v${PV}/${P}.tar.bz2"
LICENSE="TADS2 TADS3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE="debug tads2compiler tads3compiler"
+IUSE="debug +tads2compiler +tads3compiler"
RESTRICT="!tads3compiler? ( test )"
@@ -24,30 +24,19 @@ DEPEND="${RDEPEND}"
DOCS=( doc/{AUTHORS,BUGS,ChangeLog.old,NEWS,README,SRC_GUIDELINES,THANKS} )
-PATCHES=(
- "${FILESDIR}"/${PN}-1.2.4-tinfo.patch #602446
-)
-
-src_prepare() {
- default
-
- # bug #602446
- eautoreconf
-}
-
src_configure() {
- local myeconfargs=(
- $(use_enable debug error-checking)
- $(use_enable debug t3debug)
- $(use_enable tads2compiler t2-compiler)
- $(use_enable tads3compiler t3-compiler)
+ local mycmakeargs=(
+ -DENABLE_T2_COMPILER=$(usex tads2compiler)
+ -DENABLE_T2_RUNTIME_CHECKS=$(usex debug)
+ -DENABLE_T3_COMPILER=$(usex tads3compiler)
+ -DENABLE_T3_DEBUG=$(usex debug)
)
- econf "${myeconfargs[@]}"
+ cmake_src_configure
}
src_test() {
- emake -j1 sample
- ./frob -i plain -p samples/sample.t3 <<- END_FROB_TEST
+ cmake_build sample
+ "${BUILD_DIR}"/frob -i plain -p "${BUILD_DIR}"/samples/sample.t3 <<- END_FROB_TEST
save
testsave.sav
restore
diff --git a/games-engines/frobtads/metadata.xml b/games-engines/frobtads/metadata.xml
index 89569b770284..e1696885898d 100644
--- a/games-engines/frobtads/metadata.xml
+++ b/games-engines/frobtads/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
diff --git a/games-engines/frotz/Manifest b/games-engines/frotz/Manifest
index 6678f254461c..9c29a2c2b7c3 100644
--- a/games-engines/frotz/Manifest
+++ b/games-engines/frotz/Manifest
@@ -1,2 +1 @@
-DIST frotz-2.52.tar.bz2 289109 BLAKE2B d1e97e05d1da187846c64dacdf69f34a800be97b75121dc8de63c619687ed5ccbd6b03b2391d2896a14aaad1e4f8eb51926affb92a36f1a5bad8acec91524774 SHA512 387e7a7fe0cffd40b639a306eef89a22421a4ff4a8e5dbcf96a1ef3b901744b3f75a671953ecdc17bde0d699e4756d470b61c8213c47315baa2700da92d06710
DIST frotz-2.53.tar.bz2 375800 BLAKE2B a3d14d11540cb12ed6e5326207946e26b0b3b85e13c50e7431f3901cfb19337661b233bf29077c1efe3a9663aef6d2886bba1717c8132d68e77580692fed30d1 SHA512 e920529920a0b831b859323046aeae032b4b84ac0296d4ef35026fe8a62798cf5f9f4e255af38421aa21ad5507cd87287924daafc759c9b9d7a089ba7d77d808
diff --git a/games-engines/frotz/files/frotz-2.53-uint32.patch b/games-engines/frotz/files/frotz-2.53-uint32.patch
new file mode 100644
index 000000000000..18e7d244c272
--- /dev/null
+++ b/games-engines/frotz/files/frotz-2.53-uint32.patch
@@ -0,0 +1,475 @@
+Description: Use uint32_t instead of ulong
+Author: Stephen Kitt <skitt@debian.org>
+
+When built with hardening enabled, there’s a ulong/uint32_t definition
+conflict; since the type is supposed to be uint32_t, use that
+directly.
+
+--- a/src/sdl/sf_frotz.h
++++ b/src/sdl/sf_frotz.h
+@@ -12,13 +12,13 @@
+ #include "../blorb/blorb.h"
+
+ #include <stdint.h>
++#include <sys/types.h>
+ typedef uint8_t byte;
+ typedef uint16_t word;
+-#define ulong uint32_t
+
+ typedef struct {
+ bb_result_t bbres;
+- ulong type;
++ uint32_t type;
+ FILE *file;
+ } myresource;
+
+@@ -54,7 +54,7 @@
+ #endif
+
+ /* this assumes RGBA with lsb = R */
+-static inline ulong RGB5ToTrue(word w)
++static inline uint32_t RGB5ToTrue(word w)
+ {
+ int _r = w & 0x001F;
+ int _g = (w & 0x03E0) >> 5;
+@@ -62,10 +62,10 @@
+ _r = (_r << 3) | (_r >> 2);
+ _g = (_g << 3) | (_g >> 2);
+ _b = (_b << 3) | (_b >> 2);
+- return (ulong) (_r | (_g << 8) | (_b << 16));
++ return (uint32_t) (_r | (_g << 8) | (_b << 16));
+ }
+
+-static inline word TrueToRGB5(ulong u)
++static inline word TrueToRGB5(uint32_t u)
+ {
+ return (word) (((u >> 3) & 0x001f) | ((u >> 6) & 0x03e0) |
+ ((u >> 9) & 0x7c00));
+@@ -81,10 +81,10 @@
+ extern int m_v6scale;
+ extern double m_gfxScale_w;
+ extern double m_gfxScale_h;
+-extern ulong m_defaultFore;
+-extern ulong m_defaultBack;
+-extern ulong m_colours[11];
+-extern ulong m_nonStdColours[NON_STD_COLS];
++extern uint32_t m_defaultFore;
++extern uint32_t m_defaultBack;
++extern uint32_t m_colours[11];
++extern uint32_t m_nonStdColours[NON_STD_COLS];
+ extern int m_nonStdIndex;
+ extern bool m_exitPause;
+ extern bool m_lineInput;
+@@ -118,7 +118,7 @@
+ int number; /* 0 means unallocated */
+ int width, height;
+ byte *pixels;
+- ulong palette[16];
++ uint32_t palette[16];
+ int palette_entries;
+ int transparentcolor;
+ bool adaptive;
+@@ -190,9 +190,9 @@
+
+ void sf_readsettings();
+
+-ulong sf_GetColour(int colour);
+-ulong sf_GetDefaultColour(bool fore);
+-int sf_GetColourIndex(ulong colour);
++uint32_t sf_GetColour(int colour);
++uint32_t sf_GetDefaultColour(bool fore);
++int sf_GetColourIndex(uint32_t colour);
+
+ void sf_initvideo(int w, int h, int full);
+
+@@ -221,7 +221,7 @@
+
+ bool sf_IsInfocomV6(void);
+
+-ulong sf_blend(int a, ulong s, ulong d);
++uint32_t sf_blend(int a, uint32_t s, uint32_t d);
+
+ void sf_sleep(int millisecs);
+
+@@ -234,8 +234,8 @@
+
+ int sf_pkread(FILE * f, int foffs, void **out, int *size);
+
+-ulong *sf_savearea(int x, int y, int w, int h);
+-void sf_restoreareaandfree(ulong * s);
++uint32_t *sf_savearea(int x, int y, int w, int h);
++void sf_restoreareaandfree(uint32_t * s);
+ #define SF_NOTIMP (-9999)
+
+ zword sf_read_key(int timeout, bool cursor, bool allowed, bool text);
+@@ -243,7 +243,7 @@
+ int sf_user_fdialog(bool exist, const char *def, const char *filt,
+ const char *title, char **res);
+ extern int (*sf_osdialog)(bool ex, const char *def, const char *filt,
+- const char *tit, char **res, ulong * sbuf, int sbp,
++ const char *tit, char **res, uint32_t * sbuf, int sbp,
+ int ew, int eh, int isfull);
+
+ void sf_checksound(void);
+@@ -255,13 +255,13 @@
+
+ char *sf_searchfile(char *, int, char *, char *);
+
+-void sf_chline(int x, int y, ulong c, int n);
+-void sf_cvline(int x, int y, ulong c, int n);
++void sf_chline(int x, int y, uint32_t c, int n);
++void sf_cvline(int x, int y, uint32_t c, int n);
+ bool sf_flushdisplay(void);
+ void sf_getclip(int *x, int *y, int *w, int *h);
+ void sf_rect(unsigned long color, int x, int y, int w, int h);
+ void sf_setclip(int x, int y, int w, int h);
+-void sf_wpixel(int x, int y, ulong c);
++void sf_wpixel(int x, int y, uint32_t c);
+
+ void sf_InitProfile(const char *fn);
+ void sf_FinishProfile(void);
+--- a/src/sdl/sf_resource.c
++++ b/src/sdl/sf_resource.c
+@@ -51,10 +51,10 @@
+ int m_v6scale_y;
+ double m_gfxScale_w = 1.0;
+ double m_gfxScale_h = 1.0;
+-ulong m_defaultFore;
+-ulong m_defaultBack;
+-ulong m_colours[11];
+-ulong m_nonStdColours[NON_STD_COLS];
++uint32_t m_defaultFore;
++uint32_t m_defaultBack;
++uint32_t m_colours[11];
++uint32_t m_nonStdColours[NON_STD_COLS];
+ int m_nonStdIndex;
+ bool m_exitPause = 0;
+ bool m_lineInput = 0;
+@@ -478,7 +478,7 @@
+
+
+ /* Get a colour */
+-ulong sf_GetColour(int colour)
++uint32_t sf_GetColour(int colour)
+ {
+ /* Standard colours */
+ if ((colour >= BLACK_COLOUR) && (colour <= DARKGREY_COLOUR))
+@@ -500,7 +500,7 @@
+
+
+ /* Get a default colour */
+-ulong sf_GetDefaultColour(bool fore)
++uint32_t sf_GetDefaultColour(bool fore)
+ {
+ if (m_IsInfocomV6)
+ return sf_GetColour(fore ? WHITE_COLOUR : BLACK_COLOUR);
+@@ -509,7 +509,7 @@
+
+
+ /* Get an index for a non-standard colour */
+-int sf_GetColourIndex(ulong colour)
++int sf_GetColourIndex(uint32_t colour)
+ {
+ int i, index = -1;
+ /* Is this a standard colour? */
+@@ -950,7 +950,7 @@
+ int sf_getresource(int num, int ispic, int method, myresource * res)
+ {
+ int st;
+- ulong usage;
++ uint32_t usage;
+
+ res->bbres.data.ptr = NULL;
+ res->file = NULL;
+@@ -981,7 +981,7 @@
+ typedef struct {
+ void *next;
+ int num, ispic;
+- ulong type;
++ uint32_t type;
+ char *name;
+ } LLENTRY;
+
+@@ -989,7 +989,7 @@
+
+ static int numlocal = 0, numlocalpic = 0, numlocalsnd = 0;
+ static int p_ispic, p_num;
+-static ulong p_type;
++static uint32_t p_type;
+ static char *p_name;
+
+
+--- a/src/sdl/sf_video.c
++++ b/src/sdl/sf_video.c
+@@ -31,7 +31,7 @@
+
+ static char banner[256];
+ static int isfullscreen;
+-static ulong *sbuffer = NULL;
++static uint32_t *sbuffer = NULL;
+ static int sbpitch; /* in longs */
+ static int dirty = 0;
+ static int ewidth, eheight;
+@@ -45,7 +45,7 @@
+ static void sf_quitconf();
+
+ static bool ApplyPalette(sf_picture *);
+-static ulong screen_palette[16];
++static uint32_t screen_palette[16];
+
+ extern z_header_t z_header;
+
+@@ -99,7 +99,7 @@
+ }
+
+
+-void sf_wpixel(int x, int y, ulong c)
++void sf_wpixel(int x, int y, uint32_t c)
+ {
+ if (x < xmin || x >= xmax || y < ymin || y >= ymax)
+ return;
+@@ -108,7 +108,7 @@
+ }
+
+
+-ulong sf_rpixel(int x, int y)
++uint32_t sf_rpixel(int x, int y)
+ {
+ if (x < 0 || x >= ewidth || y < 0 || y >= eheight)
+ return 0;
+@@ -116,7 +116,7 @@
+ }
+
+ #define MAXCUR 64
+-static ulong savedcur[MAXCUR];
++static uint32_t savedcur[MAXCUR];
+
+ static void drawthecursor(int x, int y, int onoff)
+ {
+@@ -156,9 +156,9 @@
+ }
+
+
+-void sf_chline(int x, int y, ulong c, int n)
++void sf_chline(int x, int y, uint32_t c, int n)
+ {
+- ulong *s;
++ uint32_t *s;
+ if (y < ymin || y >= ymax)
+ return;
+ if (x < xmin) {
+@@ -176,9 +176,9 @@
+ }
+
+
+-void sf_cvline(int x, int y, ulong c, int n)
++void sf_cvline(int x, int y, uint32_t c, int n)
+ {
+- ulong *s;
++ uint32_t *s;
+ if (x < xmin || x >= xmax)
+ return;
+ if (y < xmin) {
+@@ -198,9 +198,9 @@
+ }
+
+
+-ulong sf_blendlinear(int a, ulong s, ulong d)
++uint32_t sf_blendlinear(int a, uint32_t s, uint32_t d)
+ {
+- ulong r;
++ uint32_t r;
+ r = ((s & 0xff) * a + (d & 0xff) * (256 - a)) >> 8;
+ s >>= 8;
+ d >>= 8;
+@@ -234,7 +234,7 @@
+ int height = ts->font->height(ts->font);
+ int width;
+
+- ulong color, bc;
++ uint32_t color, bc;
+
+ if ((ts->style & REVERSE_STYLE) != 0) {
+ bc = ts->fore;
+@@ -262,7 +262,7 @@
+ int t = *bmp++;
+ if (xx < byw) {
+ if (t) {
+- ulong sval = color;
++ uint32_t sval = color;
+ if (t < 255)
+ sval = sf_blend((int) (t + (t >> 7)), sval, sf_rpixel(x + xx, y));
+ sf_wpixel(x + xx, y, sval);
+@@ -292,7 +292,7 @@
+
+ void sf_fillrect(unsigned long color, int x, int y, int w, int h)
+ {
+- ulong *dst;
++ uint32_t *dst;
+ int i;
+ if (x < xmin) {
+ w += x - xmin;
+@@ -380,7 +380,7 @@
+
+ static void scroll(int x, int y, int w, int h, int n)
+ {
+- ulong *src, *dst;
++ uint32_t *src, *dst;
+ int nmove, step;
+ if (n > 0) {
+ dst = sbuffer + x + sbpitch * y;
+@@ -397,7 +397,7 @@
+ return;
+ if (nmove > 0) {
+ while (nmove--) {
+- memmove(dst, src, w * sizeof(ulong));
++ memmove(dst, src, w * sizeof(uint32_t));
+ dst += step;
+ src += step;
+ }
+@@ -414,7 +414,7 @@
+ {
+ if (dirty) {
+ SDL_UpdateTexture(texture, NULL, sbuffer,
+- sbpitch * sizeof(ulong));
++ sbpitch * sizeof(uint32_t));
+ myGrefresh();
+ dirty = 0;
+ return true;
+@@ -537,7 +537,7 @@
+ SDL_TEXTUREACCESS_STREAMING, W, H)))
+ os_fatal("Failed to create texture: %s", SDL_GetError());
+
+- sbuffer = calloc(W * H, sizeof(ulong));
++ sbuffer = calloc(W * H, sizeof(uint32_t));
+ if (!sbuffer)
+ os_fatal("Could not create gc");
+
+@@ -564,7 +564,7 @@
+ int ox, oy, ow, oh;
+ Zwindow *winpars;
+ sf_picture *pic = sf_getpic(picture);
+- ulong *src, *dst, sval, dval, alpha;
++ uint32_t *src, *dst, sval, dval, alpha;
+
+ sf_flushtext();
+
+@@ -572,7 +572,7 @@
+ return;
+ if (!pic->pixels)
+ return;
+- src = (ulong *) pic->pixels;
++ src = (uint32_t *) pic->pixels;
+
+ x--;
+ y--;
+@@ -673,7 +673,7 @@
+ }
+
+
+-static ulong mytimeout;
++static uint32_t mytimeout;
+ int mouse_button;
+ static int numAltQ = 0;
+
+@@ -1238,9 +1238,9 @@
+ }
+
+
+-ulong *sf_savearea(int x, int y, int w, int h)
++uint32_t *sf_savearea(int x, int y, int w, int h)
+ {
+- ulong *r, *p, *s;
++ uint32_t *r, *p, *s;
+ int i;
+
+ if (x < 0) {
+@@ -1261,7 +1261,7 @@
+ if (h <= 0)
+ return NULL;
+
+- r = p = malloc((w * h + 4) * sizeof(ulong));
++ r = p = malloc((w * h + 4) * sizeof(uint32_t));
+ if (!r)
+ return NULL;
+
+@@ -1272,7 +1272,7 @@
+
+ s = sbuffer + x + y * sbpitch;
+ for (i = 0; i < h; i++) {
+- memmove(p, s, w * sizeof(ulong));
++ memmove(p, s, w * sizeof(uint32_t));
+ p += w;
+ s += sbpitch;
+ }
+@@ -1280,9 +1280,9 @@
+ }
+
+
+-void sf_restoreareaandfree(ulong * s)
++void sf_restoreareaandfree(uint32_t * s)
+ {
+- ulong *p, *d;
++ uint32_t *p, *d;
+ int i, x, y, w, h;
+ if (!s)
+ return;
+@@ -1295,7 +1295,7 @@
+
+ d = sbuffer + x + y * sbpitch;
+ for (i = 0; i < h; i++) {
+- memmove(d, p, w * sizeof(ulong));
++ memmove(d, p, w * sizeof(uint32_t));
+ p += w;
+ d += sbpitch;
+ }
+@@ -1307,7 +1307,7 @@
+
+
+ int (*sf_osdialog)(bool ex, const char *def, const char *filt, const char *tit,
+- char **res, ulong * sbuf, int sbp, int ew, int eh,
++ char **res, uint32_t * sbuf, int sbp, int ew, int eh,
+ int isfull) = NULL;
+
+
+@@ -1322,7 +1322,7 @@
+ }
+
+
+-void sf_videodata(ulong ** sb, int *sp, int *ew, int *eh)
++void sf_videodata(uint32_t ** sb, int *sp, int *ew, int *eh)
+ {
+ *sb = sbuffer;
+ *sp = sbpitch;
+@@ -1367,7 +1367,7 @@
+ bool changed = FALSE;
+ int i, colors;
+
+- memset(&screen_palette, 0, sizeof(ulong));
++ memset(&screen_palette, 0, sizeof(uint32_t));
+
+ if (graphic->usespalette) {
+ colors = graphic->palette_entries;
+--- a/src/sdl/sf_images.c
++++ b/src/sdl/sf_images.c
+@@ -38,9 +38,9 @@
+ static byte fromLinear[256];
+ extern bool m_adaptiveMode;
+
+-ulong sf_blend(int a, ulong s, ulong d)
++uint32_t sf_blend(int a, uint32_t s, uint32_t d)
+ {
+- ulong r;
++ uint32_t r;
+ r = fromLinear[(toLinear[s & 0xff] * a +
+ toLinear[d & 0xff] * (256 - a)) >> 8];
+ s >>= 8;
+@@ -186,7 +186,7 @@
+ if (png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette)) {
+ graphic->palette_entries = num_palette;
+ for (int i = 0; i < num_palette; i++) {
+- ulong color =
++ uint32_t color =
+ palette[i].red | (palette[i].
+ green << 8) | (palette[i].
+ blue <<
diff --git a/games-engines/frotz/frotz-2.52.ebuild b/games-engines/frotz/frotz-2.53-r1.ebuild
index cab60c1ec299..773b24490f66 100644
--- a/games-engines/frotz/frotz-2.52.ebuild
+++ b/games-engines/frotz/frotz-2.53-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,13 +11,13 @@ SRC_URI="https://gitlab.com/DavidGriffith/${PN}/-/archive/${PV}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
+KEYWORDS="~amd64 ~arm ~riscv ~x86"
IUSE="ncurses sdl sound unicode"
REQUIRED_USE="sound? ( || ( ncurses sdl ) )"
DEPEND="
ncurses? (
- sys-libs/ncurses:0=[unicode?]
+ sys-libs/ncurses:=[unicode(+)?]
sound? (
media-libs/libao
media-libs/libmodplug
@@ -38,6 +38,10 @@ DEPEND="
RDEPEND="${DEPEND}"
BDEPEND="virtual/pkgconfig"
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.53-uint32.patch
+)
+
src_compile() {
emake \
dumb \
diff --git a/games-engines/frotz/frotz-2.53.ebuild b/games-engines/frotz/frotz-2.53.ebuild
deleted file mode 100644
index f03a3d070289..000000000000
--- a/games-engines/frotz/frotz-2.53.ebuild
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs
-
-DESCRIPTION="Interpreter for Z-code based text games"
-HOMEPAGE="https://661.org/proj/if/frotz/"
-SRC_URI="https://gitlab.com/DavidGriffith/${PN}/-/archive/${PV}/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="ncurses sdl sound unicode"
-REQUIRED_USE="sound? ( || ( ncurses sdl ) )"
-
-DEPEND="
- ncurses? (
- sys-libs/ncurses:0=[unicode?]
- sound? (
- media-libs/libao
- media-libs/libmodplug
- media-libs/libsamplerate
- media-libs/libsndfile[-minimal]
- media-libs/libvorbis
- )
- )
- sdl? (
- media-libs/freetype:2
- media-libs/libpng:0=
- media-libs/libsdl2[sound,threads,video]
- media-libs/sdl2-mixer[mod,vorbis,wav]
- sys-libs/zlib
- virtual/jpeg:0=
- )
-"
-RDEPEND="${DEPEND}"
-BDEPEND="virtual/pkgconfig"
-
-src_compile() {
- emake \
- dumb \
- $(use ncurses && echo ncurses) \
- $(use sdl && echo sdl) \
- AR="$(tc-getAR)" \
- CC="$(tc-getCC)" \
- PKG_CONFIG="$(tc-getPKG_CONFIG)" \
- RANLIB="$(tc-getRANLIB)" \
- CURSES=$(usex unicode ncursesw ncurses) \
- USE_UTF8=$(usex unicode yes "") \
- SOUND_TYPE=$(usex sound ao none) \
- PREFIX="${EPREFIX}/usr" \
- SYSCONFDIR="${EPREFIX}/etc"
-}
-
-src_install() {
- emake \
- install_dumb \
- $(use ncurses && echo install) \
- $(use sdl && echo install_sdl) \
- PREFIX="${EPREFIX}/usr" \
- DESTDIR="${D}"
-
- dodoc \
- AUTHORS ChangeLog CONTRIBUTORS DUMB HOW_TO_PLAY README TODO \
- doc/frotz.conf-{big,small}
-}
-
-pkg_postinst() {
- echo
- elog "Global config file can be installed in ${EPREFIX}/etc/frotz.conf"
- elog "Sample config files are in ${EPREFIX}/usr/share/doc/${PF}"
- echo
-}
diff --git a/games-engines/frotz/metadata.xml b/games-engines/frotz/metadata.xml
index 455473e4c7c5..75933998679f 100644
--- a/games-engines/frotz/metadata.xml
+++ b/games-engines/frotz/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
diff --git a/games-engines/gargoyle/gargoyle-2019.1.1.ebuild b/games-engines/gargoyle/gargoyle-2019.1.1.ebuild
index 167f28407813..b056e2f28b60 100644
--- a/games-engines/gargoyle/gargoyle-2019.1.1.ebuild
+++ b/games-engines/gargoyle/gargoyle-2019.1.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Regarding licenses: libgarglk is licensed under the GPLv2. Bundled
@@ -15,6 +15,7 @@ inherit desktop edos2unix flag-o-matic multiprocessing toolchain-funcs xdg
DESCRIPTION="An Interactive Fiction (IF) player supporting all major formats"
HOMEPAGE="http://ccxvii.net/gargoyle/"
SRC_URI="https://github.com/garglk/garglk/archive/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/garglk-${PV}"
LICENSE="BSD GPL-2 MIT Hugo Glulxe"
SLOT="0"
@@ -36,8 +37,6 @@ BDEPEND="
dev-util/ftjam
virtual/pkgconfig"
-S="${WORKDIR}/garglk-${PV}"
-
PATCHES=(
"${FILESDIR}"/${P}-fno-common.patch
"${FILESDIR}"/${P}-QA-desktop.patch
@@ -64,6 +63,10 @@ src_prepare() {
}
src_compile() {
+ # Aliasing violations in bundled glulxe library (bug #858716)
+ append-flags -fno-strict-aliasing
+ filter-lto
+
# build system messes up flags and toolchain completely
# append flags to compiler commands to have consistent behavior
jam \
diff --git a/games-engines/gargoyle/metadata.xml b/games-engines/gargoyle/metadata.xml
index 23812106384b..39b25389f995 100644
--- a/games-engines/gargoyle/metadata.xml
+++ b/games-engines/gargoyle/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
diff --git a/games-engines/love/Manifest b/games-engines/love/Manifest
index dc1d7facea60..54d6c620c6fb 100644
--- a/games-engines/love/Manifest
+++ b/games-engines/love/Manifest
@@ -1,3 +1,4 @@
DIST love-0.7.2-linux-src.tar.gz 900209 BLAKE2B abd0db98d210c5523d3b5a75c30bcfa2fc9d7760c7642d08dda28690ab72ddf8a0c7b60793cd7b0f902a8e3fcf2750748c75caf29638a7455572d84683be7820 SHA512 cbca1d7e3425d1ecbdae019212dfa2814d8ac3bad1faedd4b052cf3e89b5bf2fac6e422283628e4c125858c9db050dee2129476d1a73ec44ffe8a4704f170f61
DIST love-0.8.0-linux-src.tar.gz 1027356 BLAKE2B bfbc2f9a3d5c3beffb4790a69716416815534c3b390b1554722eceaec57a7530377c06c15c6551aa972b33176bccdadfc8ad12bc186ceda201527bd9f8286d6f SHA512 6a0e28d102b950d3dddf7101996fe0ad04dfd7d4ec5e58797b41ef3382b60e74f90c6e707f882cf43cc0c5cc98703857eefc6418e6a6fd34e88f8019143f55a4
-DIST love-11.3-linux-src.tar.gz 2898851 BLAKE2B ae854dbe1f98fa2adaf118ac01b7519f87cbf684dff45622e0de6503a514bc6336c469b08a6c19ae55f7a0d65063bebffe0dc1d0a72483a9032902469c1c643f SHA512 d02900bbad658da7127bdbc52ceb8282a725b32d6a17fc51962327411be94f81b2c871d21b3c4bd8492a4ca355c3cfb1f04a7fe010d6c69ae35c7c5d64579e1b
+DIST love-11.4-linux-src.tar.gz 2925931 BLAKE2B 3f3a8aa1df69dad69edc89429ff5d9505d2de45a109962d3e110848eb1c3042b053472900cc68ddc485769045c9a26f39a2549efb9f15033bb6b2e08dc2cda44 SHA512 a1669e353c216b0f8de862eef877a178618499c38b5ad91143ee64e543affea8fccb13af4ea4957d8698c65dd703e45095ae1069601c4d0ff98d34d71d70ffd3
+DIST love-11.5-linux-src.tar.gz 2937716 BLAKE2B c0ccd2836462a799c14edb83345bddec1b2d8e77865bc076814cf90ca5b2feda465263c3322efde8fa49f6dfcce6aef69a272a7ff88e0e06b9f57d0e810d8874 SHA512 86fe29939e0d48317e742c99c80b1805821f91539c37d1701207585593b10e3a12f335dac9c25069e0de61a7c6af7c6d5e30bc36826c29f963df8f64084a9a5b
diff --git a/games-engines/love/love-0.7.2-r100.ebuild b/games-engines/love/love-0.7.2-r100.ebuild
index b28e616cd1d7..e81ab1fb55ca 100644
--- a/games-engines/love/love-0.7.2-r100.ebuild
+++ b/games-engines/love/love-0.7.2-r100.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -6,7 +6,7 @@ EAPI=7
LUA_COMPAT=( lua5-1 )
LUA_REQ_USE="deprecated"
-inherit lua-single
+inherit flag-o-matic lua-single
DESCRIPTION="A framework for 2D games in Lua"
HOMEPAGE="https://love2d.org/"
@@ -41,6 +41,11 @@ PATCHES=(
"${FILESDIR}"/${PN}-0.8.0-freetype2.patch
)
+src_prepare() {
+ default
+ append-cppflags -DLUA_COMPAT_OPENLIB
+}
+
src_install() {
DOCS="readme.txt changes.txt" \
default
diff --git a/games-engines/love/love-0.8.0-r100.ebuild b/games-engines/love/love-0.8.0-r100.ebuild
index 5ac4d20e65a0..6e828c9c6e1e 100644
--- a/games-engines/love/love-0.8.0-r100.ebuild
+++ b/games-engines/love/love-0.8.0-r100.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -6,7 +6,7 @@ EAPI=7
LUA_COMPAT=( lua5-1 )
LUA_REQ_USE="deprecated"
-inherit lua-single
+inherit flag-o-matic lua-single
DESCRIPTION="A framework for 2D games in Lua"
HOMEPAGE="https://love2d.org/"
@@ -39,6 +39,11 @@ PATCHES=(
"${FILESDIR}"/${PN}-0.8.0-opengl_glext_prototypes.patch
)
+src_prepare() {
+ default
+ append-cppflags -DLUA_COMPAT_OPENLIB
+}
+
src_install() {
DOCS="readme.md changes.txt" \
default
diff --git a/games-engines/love/love-11.3-r100.ebuild b/games-engines/love/love-11.4.ebuild
index 4de07ea8e793..5cb3aaec9bc9 100644
--- a/games-engines/love/love-11.3-r100.ebuild
+++ b/games-engines/love/love-11.4.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-LUA_COMPAT=( lua5-{1..3} luajit )
+LUA_COMPAT=( lua5-{1..4} luajit )
-inherit lua-single xdg-utils
+inherit flag-o-matic lua-single xdg-utils
if [[ ${PV} == 9999* ]]; then
inherit git-r3
@@ -20,6 +20,7 @@ HOMEPAGE="https://love2d.org/"
LICENSE="ZLIB"
SLOT="0"
+IUSE="gme"
REQUIRED_USE="${LUA_REQUIRED_USE}"
@@ -28,12 +29,12 @@ RDEPEND="sys-libs/zlib
media-libs/freetype
media-libs/libmodplug
media-libs/libsdl2[joystick,opengl]
- media-libs/libogg
media-libs/libtheora
media-libs/libvorbis
media-libs/openal
media-sound/mpg123
- virtual/opengl"
+ virtual/opengl
+ gme? ( media-libs/game-music-emu )"
DEPEND="${RDEPEND}"
DOCS=( "readme.md" "changes.txt" )
@@ -46,21 +47,21 @@ src_prepare() {
}
src_configure() {
- econf --with-lua=$(usex lua_single_target_luajit luajit lua) \
+ # Bug #858719
+ append-flags -fno-strict-aliasing
+
+ local myeconfargs=(
+ $(use_enable gme)
+ --with-lua=$(usex lua_single_target_luajit luajit lua)
--with-luaversion=$(ver_cut 1-2 $(lua_get_version))
+ )
+ econf "${myeconfargs[@]}"
}
src_install() {
default
find "${D}" -name '*.la' -delete || die
-
- if [[ ${SLOT} != 0 ]]; then
- mv "${ED}/usr/bin/${PN}" "${ED}/usr/bin/${PN}-${SLOT}" || die
- mv "${ED}"/usr/share/applications/love{,"-$SLOT"}.desktop || die
- sed -i -e "/^Name=/s/$/ ($SLOT)/" -e "s|/usr/bin/love|/usr/bin/love-$SLOT|" "${ED}/usr/share/applications/love-$SLOT.desktop" || die
- rm -r "${ED}"/usr/{lib64/liblove.so,share/{mime/,pixmaps/,icons/,man/}} || die
- fi
}
pkg_postinst() {
diff --git a/games-engines/love/love-11.5.ebuild b/games-engines/love/love-11.5.ebuild
new file mode 100644
index 000000000000..f620f97c1f51
--- /dev/null
+++ b/games-engines/love/love-11.5.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..4} luajit )
+
+inherit flag-o-matic lua-single xdg-utils
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/love2d/${PN}.git"
+else
+ SRC_URI="https://github.com/love2d/${PN}/releases/download/${PV}/${P}-linux-src.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+DESCRIPTION="A framework for 2D games in Lua"
+HOMEPAGE="https://love2d.org/"
+
+LICENSE="ZLIB"
+SLOT="0"
+IUSE="gme"
+
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+RDEPEND="sys-libs/zlib
+ ${LUA_DEPS}
+ media-libs/freetype
+ media-libs/libmodplug
+ media-libs/libsdl2[joystick,opengl]
+ media-libs/libtheora
+ media-libs/libvorbis
+ media-libs/openal
+ media-sound/mpg123
+ virtual/opengl
+ gme? ( media-libs/game-music-emu )"
+DEPEND="${RDEPEND}"
+
+DOCS=( "readme.md" "changes.txt" )
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999* ]]; then
+ ./platform/unix/automagic || die
+ fi
+}
+
+src_configure() {
+ # Bug #858719
+ append-flags -fno-strict-aliasing
+
+ local myeconfargs=(
+ $(use_enable gme)
+ --with-lua=$(usex lua_single_target_luajit luajit lua)
+ --with-luaversion=$(ver_cut 1-2 $(lua_get_version))
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ find "${D}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+}
diff --git a/games-engines/love/love-9999.ebuild b/games-engines/love/love-9999.ebuild
index 4de07ea8e793..fcc2e07df8e9 100644
--- a/games-engines/love/love-9999.ebuild
+++ b/games-engines/love/love-9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-LUA_COMPAT=( lua5-{1..3} luajit )
+LUA_COMPAT=( lua5-{1..4} luajit )
inherit lua-single xdg-utils
@@ -20,6 +20,7 @@ HOMEPAGE="https://love2d.org/"
LICENSE="ZLIB"
SLOT="0"
+IUSE="gme"
REQUIRED_USE="${LUA_REQUIRED_USE}"
@@ -28,12 +29,12 @@ RDEPEND="sys-libs/zlib
media-libs/freetype
media-libs/libmodplug
media-libs/libsdl2[joystick,opengl]
- media-libs/libogg
media-libs/libtheora
media-libs/libvorbis
media-libs/openal
media-sound/mpg123
- virtual/opengl"
+ virtual/opengl
+ gme? ( media-libs/game-music-emu )"
DEPEND="${RDEPEND}"
DOCS=( "readme.md" "changes.txt" )
@@ -46,21 +47,18 @@ src_prepare() {
}
src_configure() {
- econf --with-lua=$(usex lua_single_target_luajit luajit lua) \
+ local myeconfargs=(
+ $(use_enable gme)
+ --with-lua=$(usex lua_single_target_luajit luajit lua)
--with-luaversion=$(ver_cut 1-2 $(lua_get_version))
+ )
+ econf "${myeconfargs[@]}"
}
src_install() {
default
find "${D}" -name '*.la' -delete || die
-
- if [[ ${SLOT} != 0 ]]; then
- mv "${ED}/usr/bin/${PN}" "${ED}/usr/bin/${PN}-${SLOT}" || die
- mv "${ED}"/usr/share/applications/love{,"-$SLOT"}.desktop || die
- sed -i -e "/^Name=/s/$/ ($SLOT)/" -e "s|/usr/bin/love|/usr/bin/love-$SLOT|" "${ED}/usr/share/applications/love-$SLOT.desktop" || die
- rm -r "${ED}"/usr/{lib64/liblove.so,share/{mime/,pixmaps/,icons/,man/}} || die
- fi
}
pkg_postinst() {
diff --git a/games-engines/love/metadata.xml b/games-engines/love/metadata.xml
index 3e5026ee3754..e3aef72b5ad7 100644
--- a/games-engines/love/metadata.xml
+++ b/games-engines/love/metadata.xml
@@ -1,8 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>marecki@gentoo.org</email>
<name>Marek Szuba</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">love2d/love</remote-id>
+ </upstream>
+ <use>
+ <flag name="gme">Use <pkg>media-libs/game-music-emu</pkg> to support additional music formats</flag>
+ </use>
</pkgmetadata>
diff --git a/games-engines/metadata.xml b/games-engines/metadata.xml
index 2bc4c609093b..84ceecc635a4 100644
--- a/games-engines/metadata.xml
+++ b/games-engines/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<catmetadata>
<longdescription lang="en">
The games-engines category contains game engines.
diff --git a/games-engines/minetest/Manifest b/games-engines/minetest/Manifest
new file mode 100644
index 000000000000..17ce1a1572ff
--- /dev/null
+++ b/games-engines/minetest/Manifest
@@ -0,0 +1,2 @@
+DIST minetest-5.7.0.tar.gz 10115973 BLAKE2B 0f7e8864188004d57115c83508706b1cf1d6db0cba1a3002d603d4665e6d014ea2ec31df0a77a65da014467e21c331e3a27762018483a5bf4b2e024e3f7bdfc3 SHA512 6a934db5fd2c7c14fcfa87fb306662fa1ccf20a0eee056aea5c4c863986875017a4fa58ddf14319d385ee0400d00fb6a90f68b8f34527c98a746c6410360a529
+DIST minetest-5.8.0.tar.gz 10419348 BLAKE2B efe3edde2d3c57cc296b5f84359c24019583e4f70346eafd418da7cbfc334ecbb32c72df085052beaa28f8f4b4219d7431c150c20d511fc41c0809cdbad227f1 SHA512 0b376ecc051032ccb542f2f76e2b1f5c351b32f1c211027825b1538095f44cb1447cd0976cb85a4cde4ecb53873bcb9f3778799271ed65b038a031dc137c2aba
diff --git a/games-engines/minetest/files/minetest-5.7.0-no_upstream_optflags.patch b/games-engines/minetest/files/minetest-5.7.0-no_upstream_optflags.patch
new file mode 100644
index 000000000000..ad673be1184f
--- /dev/null
+++ b/games-engines/minetest/files/minetest-5.7.0-no_upstream_optflags.patch
@@ -0,0 +1,11 @@
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -784,7 +784,7 @@
+ endif()
+ endif()
+
+- set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${OTHER_FLAGS} -pipe -funroll-loops -O3 -fomit-frame-pointer")
++ set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${OTHER_FLAGS}")
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux"
+ AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang"
+ AND CMAKE_CXX_COMPILER_VERSION MATCHES "^9\\.")
diff --git a/games-engines/minetest/files/minetest-5.8.0-include_algorithm.patch b/games-engines/minetest/files/minetest-5.8.0-include_algorithm.patch
new file mode 100644
index 000000000000..ac19a58de751
--- /dev/null
+++ b/games-engines/minetest/files/minetest-5.8.0-include_algorithm.patch
@@ -0,0 +1,20 @@
+From https://github.com/minetest/minetest/commit/c9ab61aa8cd0ca50bc8c4d90f257bb5ed3b0bb00
+https://bugs.gentoo.org/921131
+
+From: Alfred Wingate <parona@protonmail.com>
+Date: Sun, 31 Dec 2023 17:39:01 +0200
+Subject: [PATCH] Add missing header for gcc-14
+
+https://gcc.gnu.org/gcc-14/porting_to.html
+
+Signed-off-by: Alfred Wingate <parona@protonmail.com>
+--- a/src/client/sound/sound_data.cpp
++++ b/src/client/sound/sound_data.cpp
+@@ -25,6 +25,7 @@ with this program; ifnot, write to the Free Software Foundation, Inc.,
+ #include "sound_data.h"
+
+ #include "sound_constants.h"
++#include <algorithm>
+
+ namespace sound {
+
diff --git a/games-engines/minetest/files/minetestserver.confd b/games-engines/minetest/files/minetestserver.confd
new file mode 100644
index 000000000000..b383fbd3e33b
--- /dev/null
+++ b/games-engines/minetest/files/minetestserver.confd
@@ -0,0 +1,16 @@
+# /etc/conf.d/minetest-server: config file for /etc/init.d/minetest-server
+
+# user
+USER="minetest"
+
+# group
+GROUP="minetest"
+
+# pidfile
+PIDFILE="/run/minetest.pid"
+
+# executable
+MINETESTBIN="/usr/bin/minetestserver"
+
+# additional arguments for the server
+ARGS="--logfile /var/log/minetest/minetest-server.log"
diff --git a/games-engines/minetest/files/minetestserver.initd b/games-engines/minetest/files/minetestserver.initd
new file mode 100644
index 000000000000..ffca2e55995f
--- /dev/null
+++ b/games-engines/minetest/files/minetestserver.initd
@@ -0,0 +1,35 @@
+#!/sbin/openrc-run
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+description="Minetest dedicated server"
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "starting server"
+ start-stop-daemon \
+ --start \
+ --quiet \
+ --make-pidfile \
+ --pidfile "${PIDFILE}" \
+ --background \
+ --user ${USER} \
+ --group ${GROUP} \
+ --exec "${MINETESTBIN}" -- ${ARGS}
+
+ eend $?
+}
+
+stop() {
+ ebegin "stopping server"
+ start-stop-daemon \
+ --stop \
+ --signal 15 \
+ --quiet \
+ --pidfile "${PIDFILE}"
+
+ eend $?
+}
diff --git a/games-engines/minetest/files/minetestserver.logrotate b/games-engines/minetest/files/minetestserver.logrotate
new file mode 100644
index 000000000000..2e38adfc5f50
--- /dev/null
+++ b/games-engines/minetest/files/minetestserver.logrotate
@@ -0,0 +1,6 @@
+/var/log/minetest/*.log {
+ rotate 5
+ weekly
+ missingok
+ copytruncate
+}
diff --git a/games-engines/minetest/files/minetestserver_default.service b/games-engines/minetest/files/minetestserver_default.service
new file mode 100644
index 000000000000..e2754abaaf12
--- /dev/null
+++ b/games-engines/minetest/files/minetestserver_default.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Minetest multiplayer server (server config minetest.conf)
+Documentation=man:minetestserver(6)
+After=network.target
+
+[Service]
+Restart=on-failure
+User=minetest
+Group=minetest
+ExecStart=/usr/bin/minetestserver --config /etc/minetest/minetest.conf --logfile /var/log/minetest/minetest-server.log
+StandardOutput=null
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/games-engines/minetest/files/minetestserver_template.service b/games-engines/minetest/files/minetestserver_template.service
new file mode 100644
index 000000000000..a945de53e870
--- /dev/null
+++ b/games-engines/minetest/files/minetestserver_template.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Minetest multiplayer server (server config %i.conf)
+Documentation=man:minetestserver(6)
+After=network.target
+
+[Service]
+Restart=on-failure
+User=minetest
+Group=minetest
+ExecStart=/usr/bin/minetestserver --config /etc/minetest/%i.conf --logfile /var/log/minetest/%i-server.log
+StandardOutput=null
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/games-engines/minetest/metadata.xml b/games-engines/minetest/metadata.xml
new file mode 100644
index 000000000000..2dd1e78f7815
--- /dev/null
+++ b/games-engines/minetest/metadata.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription lang="en">
+ Minetest is an infinite-world block sandbox game and a game
+ engine, inspired by InfiniMiner, Minecraft and the like. It has
+ been in development and use since October 2010.
+
+ It is Free and Open Source Software, released under the LGPL 2.1
+ or later, available for Windows, Mac OS X and Linux.
+
+ Minetest is developed by a random bunch of lunatics.
+
+ Minetest is designed to be simple, stable and portable. It is
+ lightweight enough to run on fairly old hardware. It currently
+ runs playably on a laptop with Intel 945GM graphics. Though, as
+ for the CPU, dualcore is recommended.
+
+ Features
+ * Walk around, dig and build in an infinite voxel world,
+ and craft stuff from raw materials to help you along the way.
+ * Simplistic Modding API that supports many kinds of additions
+ and modifications to the game.
+ * Multiplayer support for tens of players, via servers hosted by
+ users.
+ * Voxel based lighting with gameplay consequences
+ (light caves and buildings with torches)
+ * Almost infinite world and a beautiful map generator.
+ * Runs natively on Windows, Linux, OS X and FreeBSD.
+ * Supports multiple languages, translated by the community.
+ </longdescription>
+ <maintainer type="person">
+ <email>marecki@gentoo.org</email>
+ <name>Marek Szuba</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
+ <use>
+ <flag name="client">Build Minetest client</flag>
+ <flag name="leveldb">Enable LevelDB backend</flag>
+ <flag name="prometheus">Enable prometheus client support</flag>
+ <flag name="redis">Enable redis backend via <pkg>dev-libs/hiredis</pkg></flag>
+ <flag name="server">Build Minetest server</flag>
+ <flag name="spatial">Enable SpatialIndex AreaStore backend
+ </flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/minetest/minetest/issues</bugs-to>
+ <doc lang="en">https://wiki.minetest.net/Main_Page</doc>
+ <remote-id type="github">minetest/minetest</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-engines/minetest/minetest-5.7.0-r2.ebuild b/games-engines/minetest/minetest-5.7.0-r2.ebuild
new file mode 100644
index 000000000000..391372f68334
--- /dev/null
+++ b/games-engines/minetest/minetest-5.7.0-r2.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_BUILD_TYPE="Release"
+LUA_COMPAT=( lua5-1 luajit )
+
+inherit cmake flag-o-matic lua-single systemd xdg
+
+DESCRIPTION="A free open-source voxel game engine with easy modding and game creation"
+HOMEPAGE="https://www.minetest.net"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1+ CC-BY-SA-3.0 OFL-1.1 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv"
+IUSE="+client +curl doc leveldb ncurses nls postgres prometheus redis +server +sound spatial test"
+
+REQUIRED_USE="${LUA_REQUIRED_USE}
+ || ( client server )"
+
+RESTRICT="!test? ( test )"
+
+# Use bundled PUC Lua if lua5-1 has been requested requested due to C++
+# interoperability issues, at least until Bug #825766 has been resolved anyway.
+RDEPEND="lua_single_target_luajit? ( ${LUA_DEPS} )
+ app-arch/zstd
+ dev-db/sqlite:3
+ dev-libs/gmp:0=
+ dev-libs/jsoncpp:=
+ sys-libs/zlib
+ client? (
+ ~dev-games/irrlicht-mt-1.9.0.10
+ media-libs/freetype:2
+ media-libs/libpng:0=
+ media-libs/libjpeg-turbo
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXxf86vm
+ sound? (
+ media-libs/libvorbis
+ media-libs/openal
+ )
+ )
+ curl? ( net-misc/curl )
+ leveldb? ( dev-libs/leveldb:= )
+ ncurses? ( sys-libs/ncurses:0= )
+ nls? ( virtual/libintl )
+ postgres? ( >=dev-db/postgresql-9.5:= )
+ prometheus? ( dev-cpp/prometheus-cpp )
+ redis? ( dev-libs/hiredis:= )
+ server? (
+ acct-group/minetest
+ acct-user/minetest
+ ~dev-games/irrlicht-mt-headers-1.9.0.10
+ )
+ spatial? ( sci-libs/libspatialindex:= )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ doc? (
+ app-text/doxygen
+ media-gfx/graphviz
+ )
+ nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.7.0-no_upstream_optflags.patch
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # To avoid TEXTRELs on riscv
+ append-flags -fPIC
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_CLIENT=$(usex client)
+ -DBUILD_SERVER=$(usex server)
+ -DBUILD_UNITTESTS=$(usex test)
+ -DCUSTOM_BINDIR="${EPREFIX}/usr/bin"
+ -DCUSTOM_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
+ -DCUSTOM_EXAMPLE_CONF_DIR="${EPREFIX}/usr/share/doc/${PF}"
+ -DCUSTOM_LOCALEDIR="${EPREFIX}/usr/share/${PN}/locale"
+ -DCUSTOM_MANDIR="${EPREFIX}/usr/share/man"
+ -DCUSTOM_SHAREDIR="${EPREFIX}/usr/share/${PN}"
+ -DENABLE_CURL=$(usex curl)
+ -DENABLE_CURSES=$(usex ncurses)
+ -DENABLE_GETTEXT=$(usex nls)
+ -DENABLE_GLES=no
+ -DENABLE_LEVELDB=$(usex leveldb)
+ -DENABLE_LUAJIT=$(usex lua_single_target_luajit)
+ -DENABLE_POSTGRESQL=$(usex postgres)
+ -DENABLE_PROMETHEUS=$(usex prometheus)
+ -DENABLE_REDIS=$(usex redis)
+ -DENABLE_SPATIAL=$(usex spatial)
+ -DENABLE_SOUND=$(usex sound)
+ -DENABLE_SYSTEM_GMP=1
+ -DENABLE_SYSTEM_JSONCPP=1
+ -DENABLE_UPDATE_CHECKER=no
+ -DRUN_IN_PLACE=0
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ if use doc; then
+ cmake_src_compile doc
+ HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
+ fi
+}
+
+src_install() {
+ cmake_src_install
+
+ if use server; then
+ keepdir /etc/${PN}
+ fowners root:${PN} /etc/${PN}
+ fperms 2750 /etc/${PN}
+
+ keepdir /var/log/${PN}
+ fowners ${PN}:${PN} /var/log/${PN}
+
+ newconfd "${FILESDIR}"/${PN}server.confd ${PN}-server
+ newinitd "${FILESDIR}"/${PN}server.initd ${PN}-server
+
+ systemd_newunit "${FILESDIR}"/${PN}server_default.service ${PN}-server.service
+ systemd_newunit "${FILESDIR}"/${PN}server_template.service ${PN}-server@.service
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/${PN}server.logrotate ${PN}-server
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ elog "Since 5.7.0-r2 new ${PN} configurations no longer check if newer versions are available upstream,"
+ elog "a feature unnecessary when ${PN} is installed using distro packages."
+ elog "To disable this check for existing configurations open the file ~/.minetest/minetest.conf"
+ elog "in a text editor while ${PN} is not running, locate the keyword 'update_last_checked',"
+ elog "and change that line to say:"
+ elog
+ elog " update_last_checked = disabled"
+ elog
+}
diff --git a/games-engines/minetest/minetest-5.8.0.ebuild b/games-engines/minetest/minetest-5.8.0.ebuild
new file mode 100644
index 000000000000..7e29fe96d7ad
--- /dev/null
+++ b/games-engines/minetest/minetest-5.8.0.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_BUILD_TYPE="Release"
+LUA_COMPAT=( lua5-1 luajit )
+
+inherit cmake flag-o-matic lua-single systemd xdg
+
+DESCRIPTION="A free open-source voxel game engine with easy modding and game creation"
+HOMEPAGE="https://www.minetest.net"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1+ CC-BY-SA-3.0 OFL-1.1 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv"
+IUSE="+client +curl doc leveldb ncurses nls postgres prometheus redis +server +sound spatial test"
+
+REQUIRED_USE="${LUA_REQUIRED_USE}
+ || ( client server )"
+
+RESTRICT="!test? ( test )"
+
+# Use bundled PUC Lua if lua5-1 has been requested requested due to C++
+# interoperability issues, at least until Bug #825766 has been resolved anyway.
+RDEPEND="lua_single_target_luajit? ( ${LUA_DEPS} )
+ app-arch/zstd
+ dev-db/sqlite:3
+ dev-libs/gmp:0=
+ dev-libs/jsoncpp:=
+ sys-libs/zlib
+ client? (
+ ~dev-games/irrlicht-mt-1.9.0.13
+ media-libs/freetype:2
+ media-libs/libpng:0=
+ media-libs/libjpeg-turbo
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXxf86vm
+ sound? (
+ media-libs/libvorbis
+ media-libs/openal
+ )
+ )
+ curl? ( net-misc/curl )
+ leveldb? ( dev-libs/leveldb:= )
+ ncurses? ( sys-libs/ncurses:0= )
+ nls? ( virtual/libintl )
+ postgres? ( >=dev-db/postgresql-9.5:= )
+ prometheus? ( dev-cpp/prometheus-cpp )
+ redis? ( dev-libs/hiredis:= )
+ server? (
+ acct-group/minetest
+ acct-user/minetest
+ ~dev-games/irrlicht-mt-headers-1.9.0.13
+ )
+ spatial? ( sci-libs/libspatialindex:= )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ doc? (
+ app-text/doxygen
+ media-gfx/graphviz
+ )
+ nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.7.0-no_upstream_optflags.patch
+ "${FILESDIR}"/${PN}-5.8.0-include_algorithm.patch
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # To avoid TEXTRELs on riscv
+ append-flags -fPIC
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_CLIENT=$(usex client)
+ -DBUILD_SERVER=$(usex server)
+ -DBUILD_UNITTESTS=$(usex test)
+ -DCUSTOM_BINDIR="${EPREFIX}/usr/bin"
+ -DCUSTOM_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
+ -DCUSTOM_EXAMPLE_CONF_DIR="${EPREFIX}/usr/share/doc/${PF}"
+ -DCUSTOM_LOCALEDIR="${EPREFIX}/usr/share/${PN}/locale"
+ -DCUSTOM_MANDIR="${EPREFIX}/usr/share/man"
+ -DCUSTOM_SHAREDIR="${EPREFIX}/usr/share/${PN}"
+ -DENABLE_CURL=$(usex curl)
+ -DENABLE_CURSES=$(usex ncurses)
+ -DENABLE_GETTEXT=$(usex nls)
+ -DENABLE_LEVELDB=$(usex leveldb)
+ -DENABLE_LUAJIT=$(usex lua_single_target_luajit)
+ -DENABLE_POSTGRESQL=$(usex postgres)
+ -DENABLE_PROMETHEUS=$(usex prometheus)
+ -DENABLE_REDIS=$(usex redis)
+ -DENABLE_SPATIAL=$(usex spatial)
+ -DENABLE_SOUND=$(usex sound)
+ -DENABLE_SYSTEM_GMP=1
+ -DENABLE_SYSTEM_JSONCPP=1
+ -DENABLE_UPDATE_CHECKER=no
+ -DRUN_IN_PLACE=0
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ if use doc; then
+ cmake_src_compile doc
+ HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
+ fi
+}
+
+src_install() {
+ cmake_src_install
+
+ if use server; then
+ keepdir /etc/${PN}
+ fowners root:${PN} /etc/${PN}
+ fperms 2750 /etc/${PN}
+
+ keepdir /var/log/${PN}
+ fowners ${PN}:${PN} /var/log/${PN}
+
+ newconfd "${FILESDIR}"/${PN}server.confd ${PN}-server
+ newinitd "${FILESDIR}"/${PN}server.initd ${PN}-server
+
+ systemd_newunit "${FILESDIR}"/${PN}server_default.service ${PN}-server.service
+ systemd_newunit "${FILESDIR}"/${PN}server_template.service ${PN}-server@.service
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/${PN}server.logrotate ${PN}-server
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ elog "Since 5.7.0-r2 new ${PN} configurations no longer check if newer versions are available upstream,"
+ elog "a feature unnecessary when ${PN} is installed using distro packages."
+ elog "To disable this check for existing configurations open the file ~/.minetest/minetest.conf"
+ elog "in a text editor while ${PN} is not running, locate the keyword 'update_last_checked',"
+ elog "and change that line to say:"
+ elog
+ elog " update_last_checked = disabled"
+ elog
+}
diff --git a/games-engines/nazghul/Manifest b/games-engines/nazghul/Manifest
deleted file mode 100644
index 49a10089b6f3..000000000000
--- a/games-engines/nazghul/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST nazghul-0.7.1.tar.gz 7929363 BLAKE2B 4afcfcf47082cf75a98ce73ef115cf0a2f4b35e48cdfaddf362106114447543e853f22365ae773fa2489deb47caca3fa888e738213de294b2516b9f06672dff5 SHA512 6484698609ad88c9d7d2d6c2dc93aee98614917b53dca826a2827a9375192e323e40de1f69a3de1e8dab35f02834430e1ee947f4bf6088fbf510c416da1d8c0f
diff --git a/games-engines/nazghul/nazghul-0.7.1-r1.ebuild b/games-engines/nazghul/nazghul-0.7.1-r1.ebuild
deleted file mode 100644
index 7b3c9b70ec1b..000000000000
--- a/games-engines/nazghul/nazghul-0.7.1-r1.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit desktop vcs-clean
-
-DESCRIPTION="A computer role-playing game (CRPG) engine with game called HaximA"
-HOMEPAGE="http://myweb.cableone.net/gmcnutt/nazghul.html"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="
- media-libs/libpng:0
- >=media-libs/libsdl-1.2.3[X,sound,video]
- media-libs/sdl-image[png]
- media-libs/sdl-mixer[midi,vorbis,wav]
-"
-RDEPEND="${DEPEND}"
-
-src_prepare() {
- ecvs_clean
- default
-}
-
-src_install() {
- default
- dodoc doc/{GAME_RULES,GHULSCRIPT,MAP_HACKERS_GUIDE,USERS_GUIDE}
-
- dodoc doc/*html
- dodoc doc/*gif
-
- docinto engine_extension_and_design
- dodoc doc/engine_extension_and_design/*
-
- docinto world_building
- dodoc doc/world_building/*
-
- doicon icons/haxima.png
- make_desktop_entry haxima.sh HaximA haxima
-}
diff --git a/games-engines/odamex/Manifest b/games-engines/odamex/Manifest
index 44fab4decbb6..ec0da44a3f5b 100644
--- a/games-engines/odamex/Manifest
+++ b/games-engines/odamex/Manifest
@@ -1,2 +1 @@
-DIST odamex-0.8.3.tar.bz2 8532510 BLAKE2B 751d65dfe07a4c4c0cb5ff360e76a1291cf4ba289c459f15a0c277aca4d15b1e0989e1606cdc4e0f0bec56d6ae437027046302f5c55efb3b835a42df512fb18f SHA512 01a875973d43c87dde7953464e0e3c37fa088b00b6cc0ecbef1a8b3b9a87257ab24ef4e3c224ebcbc0e38cd3139c7adc56b12a03ae2528b66d6498bb8d84d720
-DIST odamex-0.9.0.tar.bz2 6644055 BLAKE2B 656a469665783e0a5aa1a39792454a7ec34843b7fa11539f5504463701b5485eed0b5fabcd4f9f39eef3bdad9062f657c0b1d6147bcd41defa4142b51b4096a4 SHA512 f86e61afd5fdd9be6db03554e07fa140fdcc61747ce9312706af2cada8ec88705647abdfff4f221d8cfbd4a53b991e08edf4cbf0025cf6e5a74d2213fc662855
+DIST odamex-src-10.4.0.tar.xz 17255540 BLAKE2B bdfb357424bd1712cf763f5e6109b67910e518703e8a29fa3b071f73302beea2d3e7ed63a4e7195c367a01947ad829a78967cc77acfe3455a6e2094ca33b6590 SHA512 bea6a2e70e6bdab6a1d6b5beccf981b7570142cdabc6e54935601c5fd966e1a0e7935aa6b492185165440b31899fa6240f038a75d4741a92520e6e9be935ef7b
diff --git a/games-engines/odamex/files/odamex-0.8.1-miniupnpc.patch b/games-engines/odamex/files/odamex-0.8.1-miniupnpc.patch
deleted file mode 100644
index 5fca5815162b..000000000000
--- a/games-engines/odamex/files/odamex-0.8.1-miniupnpc.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 656306d3e68f7f1f1441f03e1765530f34ea2611 Mon Sep 17 00:00:00 2001
-From: Julian Ospald <hasufell@gentoo.org>
-Date: Thu, 27 Mar 2014 21:16:02 +0000
-Subject: [PATCH] unbundle miniupnpc
-
----
- CMakeLists.txt | 1 -
- server/CMakeLists.txt | 5 ++---
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0cafdbd5..00e033a9 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -124,7 +124,6 @@ if (USE_MINIUPNP)
- set(UPNPC_BUILD_TESTS OFF CACHE INTERNAL "" FORCE)
- set(UPNPC_INSTALL OFF CACHE INTERNAL "" FORCE)
- mark_as_advanced(FORCE UPNPC_INSTALL)
-- add_subdirectory(libraries/libminiupnpc)
- endif()
-
- # Subdirectories for Odamex projects
-diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt
-index d8e57257..5badceef 100644
---- a/server/CMakeLists.txt
-+++ b/server/CMakeLists.txt
-@@ -35,8 +35,7 @@ set(JSONCPP_SOURCE ${JSONCPP_DIR}/jsoncpp.cpp)
-
- # MiniUPnPc
- if (USE_MINIUPNP)
-- set(MINIUPNPC_DIR ../libraries/libminiupnpc)
-- set(MINIUPNPC_STATIC_LIBRARIES upnpc-static)
-+ set(MINIUPNPC_DIR /usr/include/miniupnpc)
- endif()
-
- # git describe
-@@ -74,7 +73,7 @@ add_executable(odasrv
- ${SERVER_WIN32_HEADERS} ${SERVER_WIN32_RESOURCES})
-
- if (USE_MINIUPNP)
-- target_link_libraries(odasrv ${MINIUPNPC_STATIC_LIBRARIES})
-+ target_link_libraries(odasrv -lminiupnpc)
- endif()
-
- if(WIN32)
---
-2.23.0
-
diff --git a/games-engines/odamex/files/odamex-0.8.3-Use-C-11-on-odalaunch-target-for-wx-3.0.4-and-up.patch b/games-engines/odamex/files/odamex-0.8.3-Use-C-11-on-odalaunch-target-for-wx-3.0.4-and-up.patch
deleted file mode 100644
index 935d43466c41..000000000000
--- a/games-engines/odamex/files/odamex-0.8.3-Use-C-11-on-odalaunch-target-for-wx-3.0.4-and-up.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9e3ae8538475e6f15757ce51e214f5cd29f223e7 Mon Sep 17 00:00:00 2001
-From: Michael Wood <mwoodj@huntsvegas.org>
-Date: Tue, 25 Aug 2020 02:34:37 -0500
-Subject: [PATCH] Use C++11 on odalaunch target for wx 3.0.4 and up
-
-This addresses bug #1311. wxWidgets 3.0.4 requires C++11 support.
----
- odalaunch/CMakeLists.txt | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/odalaunch/CMakeLists.txt b/odalaunch/CMakeLists.txt
-index f68a4d4d..4abbe0d8 100644
---- a/odalaunch/CMakeLists.txt
-+++ b/odalaunch/CMakeLists.txt
-@@ -32,6 +32,11 @@ endif()
-
- # Odalaunch target
- if(wxWidgets_FOUND)
-+ # wxWidgets 3.0.4 requires C++11
-+ if(wxWidgets_VERSION_STRING VERSION_GREATER 3.0.3)
-+ set(CMAKE_CXX_STANDARD 11)
-+ endif()
-+
- add_custom_command(
- OUTPUT ${XRCRES_HEADER}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/res
---
-2.28.0
-
diff --git a/games-engines/odamex/files/odamex-0.9.0-Set-IMPORTED_LOCATION-for-jsoncpp.patch b/games-engines/odamex/files/odamex-0.9.0-Set-IMPORTED_LOCATION-for-jsoncpp.patch
deleted file mode 100644
index 654085d1d252..000000000000
--- a/games-engines/odamex/files/odamex-0.9.0-Set-IMPORTED_LOCATION-for-jsoncpp.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 3707d8ebad7a4a0664ca4d5a5a5bef4a276af6a2 Mon Sep 17 00:00:00 2001
-From: William Breathitt Gray <vilhelm.gray@gmail.com>
-Date: Mon, 29 Mar 2021 20:30:10 +0900
-Subject: [PATCH] Set IMPORTED_LOCATION for jsoncpp
-
----
- libraries/CMakeLists.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt
-index 2ffe95a5..a7dcb83b 100644
---- a/libraries/CMakeLists.txt
-+++ b/libraries/CMakeLists.txt
-@@ -172,6 +172,7 @@ if(BUILD_SERVER)
- INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}/local/include"
- IMPORTED_LOCATION_DEBUG ${JSONCPP_LIBRARY_DEBUG}
- IMPORTED_LOCATION_RELEASE ${JSONCPP_LIBRARY_RELEASE}
-+ IMPORTED_LOCATION ${JSONCPP_LIBRARY_RELEASE}
- MAP_IMPORTED_CONFIG_MINSIZEREL Release
- MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release)
- endif()
---
-2.31.0
-
diff --git a/games-engines/odamex/files/odamex-0.9.0-Unbundle-miniupnpc.patch b/games-engines/odamex/files/odamex-0.9.0-Unbundle-miniupnpc.patch
deleted file mode 100644
index 77b6220041da..000000000000
--- a/games-engines/odamex/files/odamex-0.9.0-Unbundle-miniupnpc.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 4b9a8ca565e5cd388a49cd0fbe693b5332577c57 Mon Sep 17 00:00:00 2001
-From: William Breathitt Gray <vilhelm.gray@gmail.com>
-Date: Mon, 22 Mar 2021 18:20:15 +0900
-Subject: [PATCH] Unbundle miniupnpc
-
----
- libraries/CMakeLists.txt | 42 ----------------------------------------
- server/CMakeLists.txt | 3 ++-
- 2 files changed, 2 insertions(+), 43 deletions(-)
-
-diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt
-index 177a86a2..2ffe95a5 100644
---- a/libraries/CMakeLists.txt
-+++ b/libraries/CMakeLists.txt
-@@ -227,48 +227,6 @@ endif()
-
- ### MiniUPnPc ###
-
--if(BUILD_SERVER)
-- message(STATUS "Compiling MiniUPnPc...")
--
-- # Figure out the correct library path to attach to our imported target
-- set(MINIUPNPC_INCLUDE_DIR
-- "${CMAKE_CURRENT_BINARY_DIR}/local/include/miniupnpc")
-- set(MINIUPNPC_LIBRARY
-- "${CMAKE_CURRENT_BINARY_DIR}/local/lib/${libprefix}miniupnpc${libsuffix}")
--
-- # This must exist before the target is synthesized.
-- file(MAKE_DIRECTORY ${MINIUPNPC_INCLUDE_DIR})
--
-- # Generate the build.
-- execute_process(COMMAND "${CMAKE_COMMAND}"
-- -S "${CMAKE_CURRENT_SOURCE_DIR}/libminiupnpc"
-- -B "${CMAKE_CURRENT_BINARY_DIR}/libminiupnpc-build"
-- -G "${CMAKE_GENERATOR}"
-- -A "${CMAKE_GENERATOR_PLATFORM}"
-- -T "${CMAKE_GENERATOR_TOOLSET}"
-- "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}"
-- "-DCMAKE_LINKER=${CMAKE_LINKER}"
-- "-DCMAKE_RC_COMPILER=${CMAKE_RC_COMPILER}"
-- "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
-- "-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/local"
-- "-DCMAKE_INSTALL_LIBDIR=lib" # Without this, CentOS installs into lib64
-- "-DUPNPC_BUILD_SHARED=No"
-- "-DUPNPC_BUILD_TESTS=No")
--
-- # Compile the library.
-- execute_process(COMMAND "${CMAKE_COMMAND}"
-- --build "${CMAKE_CURRENT_BINARY_DIR}/libminiupnpc-build"
-- --config RelWithDebInfo --target install --parallel ${PARALLEL_PROC_COUNT})
--
-- # Synthesize an imported target that can be linked against.
-- add_library(upnpc-static STATIC IMPORTED GLOBAL)
-- set_target_properties(upnpc-static PROPERTIES
-- INTERFACE_INCLUDE_DIRECTORIES "${MINIUPNPC_INCLUDE_DIR}"
-- IMPORTED_LOCATION ${MINIUPNPC_LIBRARY})
-- if(WIN32)
-- set_target_properties(upnpc-static PROPERTIES INTERFACE_LINK_LIBRARIES "ws2_32;iphlpapi")
-- endif()
--endif()
-
- ### SDL libraries ###
-
-diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt
-index 73a70000..e4b085f2 100644
---- a/server/CMakeLists.txt
-+++ b/server/CMakeLists.txt
-@@ -53,7 +53,8 @@ endif()
- target_link_libraries(odasrv jsoncpp odamex-common)
-
- if(USE_MINIUPNP)
-- target_link_libraries(odasrv upnpc-static)
-+ target_include_directories(odasrv SYSTEM PRIVATE "/usr/include/miniupnpc")
-+ target_link_libraries(odasrv -lminiupnpc)
- endif()
-
- if(WIN32)
---
-2.31.0
-
diff --git a/games-engines/odamex/files/odamex-10.3.0-unbundle-fltk.patch b/games-engines/odamex/files/odamex-10.3.0-unbundle-fltk.patch
new file mode 100644
index 000000000000..6cc6a1d18241
--- /dev/null
+++ b/games-engines/odamex/files/odamex-10.3.0-unbundle-fltk.patch
@@ -0,0 +1,87 @@
+From 8a2b7c043fe86916d56044d7489f8dce6ed2d479 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sun, 27 Feb 2022 14:01:33 +0000
+Subject: [PATCH 3/3] Allow building against the system FLTK library
+
+`USE_INTERNAL_FLTK` defaults to true and ignores `USE_INTERNAL_LIBS`
+because users are unlikely to have it installed.
+
+Odamex makes of use screen scaling features in FLTK that have not yet
+been released. This change therefore checks for the Fl::screen_scale
+symbol and skips the associated code if it is absent. In practise, this
+only affects the size of the dialog window on HiDPI screens. The game
+window is unaffected.
+
+Tested against FLTK 1.3.5 on Gentoo Linux.
+
+--- a/CMakeLists.txt 2022-11-24 21:02:08.000000000 -0600
++++ b/CMakeLists.txt 2023-05-12 14:08:26.838832213 -0500
+@@ -43,6 +43,7 @@
+ cmake_dependent_option( USE_INTERNAL_ZLIB "Use internal zlib" ${USE_INTERNAL_LIBS} BUILD_CLIENT 0 )
+ cmake_dependent_option( USE_INTERNAL_PNG "Use internal libpng" ${USE_INTERNAL_LIBS} BUILD_CLIENT 0 )
+ cmake_dependent_option( USE_INTERNAL_CURL "Use internal libcurl" ${USE_INTERNAL_LIBS} BUILD_CLIENT 0 )
++cmake_dependent_option( USE_INTERNAL_FLTK "Use internal FLTK" 1 BUILD_CLIENT 0 )
+ cmake_dependent_option( USE_INTERNAL_JSONCPP "Use internal JsonCpp" 1 BUILD_SERVER 0 )
+ cmake_dependent_option( USE_INTERNAL_WXWIDGETS "Use internal wxWidgets" ${USE_INTERNAL_LIBS} BUILD_LAUNCHER 0 )
+ cmake_dependent_option( ENABLE_PORTMIDI "Enable portmidi support" 1 BUILD_CLIENT 0 )
+--- a/client/CMakeLists.txt 2022-11-24 21:02:08.000000000 -0600
++++ b/client/CMakeLists.txt 2023-05-12 14:10:01.895750073 -0500
+@@ -206,8 +206,28 @@
+ target_link_libraries(odamex ${PNG_LIBRARY} ${ZLIB_LIBRARY} CURL::libcurl)
+ if(NOT GCONSOLE)
+ target_include_directories(odamex PRIVATE gui)
+- target_link_libraries(odamex fltk fltk_images)
+- endif()
++ if(USE_INTERNAL_FLTK)
++ set(FLTK_LIBRARIES fltk fltk_images)
++ set(HAVE_FLTK_SCREEN_SCALE TRUE)
++ else()
++ set(FLTK_SKIP_OPENGL 1)
++ set(FLTK_SKIP_FORMS 1)
++ set(FLTK_SKIP_FLUID 1)
++ find_package(FLTK REQUIRED)
++ target_include_directories(odamex SYSTEM PRIVATE ${FLTK_INCLUDE_DIR})
++
++ include(CheckCXXSymbolExists)
++ set(CMAKE_REQUIRED_INCLUDES ${FLTK_INCLUDE_DIR})
++ set(CMAKE_REQUIRED_LIBRARIES ${FLTK_LIBRARIES})
++ check_cxx_symbol_exists(Fl::screen_scale "FL/Fl.H" HAVE_FLTK_SCREEN_SCALE)
++ endif()
++
++ if(HAVE_FLTK_SCREEN_SCALE)
++ target_compile_definitions(odamex PRIVATE HAVE_FLTK_SCREEN_SCALE)
++ endif()
++
++ target_link_libraries(odamex ${FLTK_LIBRARIES})
++ endif()
+
+ if(ENABLE_PORTMIDI)
+ target_link_libraries(odamex ${PORTMIDI_LIBRARY})
+--- a/client/gui/gui_boot.cpp 2022-11-24 21:02:08.000000000 -0600
++++ b/client/gui/gui_boot.cpp 2023-05-12 14:11:19.362517260 -0500
+@@ -537,12 +537,14 @@
+ */
+ scannedWADs_t GUI_BootWindow()
+ {
++#ifdef HAVE_FLTK_SCREEN_SCALE
+ // Scale according to 1600x900.
+ Fl::screen_scale(0, MAX(Fl::h() / 900.0f, 1.0f));
+
+ // This feature is too clever by half, and in my experience just
+ // deforms the window.
+ Fl::keyboard_screen_scaling(0);
++#endif
+
+ BootWindow* win = MakeBootWindow();
+ win->initWADDirs();
+--- a/libraries/CMakeLists.txt 2022-11-24 21:02:08.000000000 -0600
++++ b/libraries/CMakeLists.txt 2023-05-12 14:11:46.463789831 -0500
+@@ -264,7 +264,7 @@
+
+ ### FLTK (dep: libpng) ###
+
+-if(BUILD_CLIENT)
++if(BUILD_CLIENT AND USE_INTERNAL_FLTK)
+ set(_FLTK_BUILDGEN_PARAMS
+ "-DOPTION_USE_SYSTEM_LIBJPEG=OFF"
+ "-DOPTION_PRINT_SUPPORT=OFF"
diff --git a/games-engines/odamex/files/odamex-10.4.0-backport-pr928.patch b/games-engines/odamex/files/odamex-10.4.0-backport-pr928.patch
new file mode 100644
index 000000000000..7d6871847814
--- /dev/null
+++ b/games-engines/odamex/files/odamex-10.4.0-backport-pr928.patch
@@ -0,0 +1,66 @@
+https://bugs.gentoo.org/849866
+https://github.com/odamex/odamex/pull/928
+
+From b952137ac487a6558e1796c86d8fd55b8b3c9025 Mon Sep 17 00:00:00 2001
+From: matoro <matoro@users.noreply.github.com>
+Date: Wed, 6 Dec 2023 01:01:29 -0500
+Subject: [PATCH] Fix auto-SIMD for i386+sse2, ppc+altivec
+
+Only Darwin ever used -faltivec, gcc uses -maltivec since at least 2007:
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30254#c1
+
+Similarly, recent versions of gcc define __APPLE_ALTIVEC__ for
+compatibility, so just unconditionally include altivec.h.
+
+Canonical way to enable specific extensions is e.g. -msse2, use that
+instead of optimizing for a specific CPU.
+
+Finally, cmake uses target_compile_options to add arbitrary flags.
+target_compile_definitions assumes you want a preprocessor definition,
+which was adding "-D-faltivec" to the command line which gcc doesn't
+like; this is what originally prompted this change.
+---
+ client/CMakeLists.txt | 11 +++++++----
+ client/src/r_drawt_altivec.cpp | 2 --
+ 2 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt
+index 646164916..56caf04f8 100644
+--- a/client/CMakeLists.txt
++++ b/client/CMakeLists.txt
+@@ -169,14 +169,17 @@ if(TARGET SDL2::SDL2 OR TARGET SDL::SDL)
+ message(STATUS "Default SIMD flags not touched for AMD64")
+ elseif(ODAMEX_TARGET_ARCH STREQUAL "i386")
+ if(NOT MSVC)
+- # Pentium M has SSE2.
+- target_compile_definitions(odamex PRIVATE -march=pentium-m)
++ target_compile_options(odamex PRIVATE -msse2)
+ else()
+- target_compile_definitions(odamex PRIVATE /arch:SSE2)
++ target_compile_options(odamex PRIVATE /arch:SSE2)
+ endif()
+ message(STATUS "Default SIMD flags set to SSE2")
+ elseif(ODAMEX_TARGET_ARCH MATCHES "ppc")
+- target_compile_definitions(odamex PRIVATE -faltivec)
++ if(APPLE)
++ target_compile_options(odamex PRIVATE -faltivec)
++ else()
++ target_compile_options(odamex PRIVATE -maltivec)
++ endif()
+ message(STATUS "Default SIMD flags set to AltiVec")
+ endif()
+ else()
+diff --git a/client/src/r_drawt_altivec.cpp b/client/src/r_drawt_altivec.cpp
+index eea758733..5a0cdf95e 100644
+--- a/client/src/r_drawt_altivec.cpp
++++ b/client/src/r_drawt_altivec.cpp
+@@ -36,9 +36,7 @@
+ #include "r_main.h"
+ #include "i_video.h"
+
+-#if !defined(__APPLE_ALTIVEC__)
+ #include <altivec.h>
+-#endif
+
+ #define ALTIVEC_ALIGNED(x) x __attribute__((aligned(16)))
+
diff --git a/games-engines/odamex/files/odamex-lto.patch b/games-engines/odamex/files/odamex-lto.patch
new file mode 100644
index 000000000000..20d9d88c002b
--- /dev/null
+++ b/games-engines/odamex/files/odamex-lto.patch
@@ -0,0 +1,41 @@
+https://github.com/odamex/odamex/pull/942
+
+diff --git a/client/src/cl_parse.cpp b/client/src/cl_parse.cpp
+index cdadbbdf2..e15c45edc 100644
+--- a/client/src/cl_parse.cpp
++++ b/client/src/cl_parse.cpp
+@@ -2354,7 +2354,7 @@ static void CL_SectorProperties(const odaproto::svc::SectorProperties* msg)
+ break;
+ }
+ case SPC_Gravity:
+- *(int*)&sector->gravity = msg->sector().gravity();
++ *&sector->gravity = msg->sector().gravity();
+ break;
+ case SPC_Panning:
+ sector->ceiling_xoffs = msg->sector().ceiling_offs().x();
+diff --git a/common/p_spec.cpp b/common/p_spec.cpp
+index df1a42a6a..d0a5af419 100644
+--- a/common/p_spec.cpp
++++ b/common/p_spec.cpp
+@@ -465,7 +465,7 @@ void DPusher::Serialize (FArchive &arc)
+ else
+ {
+ arc >> m_Type;
+- arc.ReadObject((DObject*&)m_Source, DPusher::StaticType());
++ arc.ReadObject((DObject*&)*m_Source, DPusher::StaticType());
+ arc >> m_Xmag >> m_Ymag >> m_Magnitude >> m_Radius >> m_X >> m_Y >> m_Affectee;
+ }
+ }
+diff --git a/odalpapi/net_io.cpp b/odalpapi/net_io.cpp
+index d6dd666fe..16f136374 100644
+--- a/odalpapi/net_io.cpp
++++ b/odalpapi/net_io.cpp
+@@ -194,7 +194,7 @@ void BufferedSocket::SetRemoteAddress(const string& Address, const uint16_t& Por
+
+ m_RemoteAddress.sin_family = PF_INET;
+ m_RemoteAddress.sin_port = htons(Port);
+- m_RemoteAddress.sin_addr.s_addr = *((unsigned long*)&(((sockaddr_in*)result->ai_addr)->sin_addr));
++ m_RemoteAddress.sin_addr = ((sockaddr_in*)result->ai_addr)->sin_addr;
+ memset(m_RemoteAddress.sin_zero, '\0', sizeof m_RemoteAddress.sin_zero);
+
+ freeaddrinfo(result);
diff --git a/games-engines/odamex/files/odamex-musl.patch b/games-engines/odamex/files/odamex-musl.patch
new file mode 100644
index 000000000000..bf6f2999ba49
--- /dev/null
+++ b/games-engines/odamex/files/odamex-musl.patch
@@ -0,0 +1,119 @@
+From deb113e672588879697ae3343c5d3f1616d13503 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sat, 30 Mar 2024 22:39:14 +0000
+Subject: [PATCH] Include <ctime> wherever time_t is used to fix musl
+
+---
+ client/src/m_menu.cpp | 2 ++
+ client/src/v_screenshot.cpp | 2 ++
+ common/c_dispatch.cpp | 1 +
+ common/cmdlib.h | 1 +
+ common/p_user.cpp | 2 ++
+ server/src/c_console.cpp | 2 ++
+ server/src/sv_banlist.cpp | 1 +
+ server/src/sv_banlist.h | 1 +
+ 8 files changed, 12 insertions(+)
+
+diff --git a/client/src/m_menu.cpp b/client/src/m_menu.cpp
+index 6268e1819..f82cbf40d 100644
+--- a/client/src/m_menu.cpp
++++ b/client/src/m_menu.cpp
+@@ -25,6 +25,8 @@
+
+ #include "odamex.h"
+
++#include <ctime>
++
+ #include "gstrings.h"
+ #include "c_console.h"
+ #include "c_dispatch.h"
+diff --git a/client/src/v_screenshot.cpp b/client/src/v_screenshot.cpp
+index 2f24cb184..375de5b9d 100644
+--- a/client/src/v_screenshot.cpp
++++ b/client/src/v_screenshot.cpp
+@@ -24,6 +24,8 @@
+
+ #include "odamex.h"
+
++#include <ctime>
++
+ #include <SDL.h>
+
+ #include <stdlib.h>
+diff --git a/common/c_dispatch.cpp b/common/c_dispatch.cpp
+index 504379aad..d30dd4e24 100644
+--- a/common/c_dispatch.cpp
++++ b/common/c_dispatch.cpp
+@@ -26,6 +26,7 @@
+
+ #include <sstream>
+ #include <algorithm>
++#include <ctime>
+
+ #include "cmdlib.h"
+ #include "c_console.h"
+diff --git a/common/cmdlib.h b/common/cmdlib.h
+index c7041837b..a20be7c4c 100644
+--- a/common/cmdlib.h
++++ b/common/cmdlib.h
+@@ -24,6 +24,7 @@
+ #pragma once
+
+ #include <algorithm>
++#include <ctime>
+
+ #ifdef _MSC_VER
+ #pragma warning(disable : 4244) // MIPS
+diff --git a/common/p_user.cpp b/common/p_user.cpp
+index d9a4bb965..461a3ef03 100644
+--- a/common/p_user.cpp
++++ b/common/p_user.cpp
+@@ -26,6 +26,8 @@
+
+ #include "odamex.h"
+
++#include <ctime>
++
+ #include <limits.h>
+
+ #include "cmdlib.h"
+diff --git a/server/src/c_console.cpp b/server/src/c_console.cpp
+index 34fcd19d9..57d7e71e2 100644
+--- a/server/src/c_console.cpp
++++ b/server/src/c_console.cpp
+@@ -24,6 +24,8 @@
+
+ #include "odamex.h"
+
++#include <ctime>
++
+ #include <stdarg.h>
+
+ #include "m_memio.h"
+diff --git a/server/src/sv_banlist.cpp b/server/src/sv_banlist.cpp
+index c271fe68c..36cdf9b63 100644
+--- a/server/src/sv_banlist.cpp
++++ b/server/src/sv_banlist.cpp
+@@ -24,6 +24,7 @@
+
+ #include "odamex.h"
+
++#include <ctime>
+ #include <sstream>
+
+ #include "win32inc.h"
+diff --git a/server/src/sv_banlist.h b/server/src/sv_banlist.h
+index 6096f73fc..f4d686071 100644
+--- a/server/src/sv_banlist.h
++++ b/server/src/sv_banlist.h
+@@ -23,6 +23,7 @@
+
+ #pragma once
+
++#include <ctime>
+ #include <sstream>
+
+ #include "json/json.h"
+--
+2.44.0
+
diff --git a/games-engines/odamex/files/odamex-odalaunch-prefix.patch b/games-engines/odamex/files/odamex-odalaunch-prefix.patch
new file mode 100644
index 000000000000..cf293e60f9e1
--- /dev/null
+++ b/games-engines/odamex/files/odamex-odalaunch-prefix.patch
@@ -0,0 +1,64 @@
+From 04e38b9fcb8a71a7b0b1b5bc1c1f229f2ff7a0a8 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Mon, 18 Mar 2024 22:54:16 +0000
+Subject: [PATCH] Always define INSTALL_PREFIX to fix paths for odalaunch
+
+Without INSTALL_PREFIX, it was falling back to the current directory and
+failing to launch the game.
+---
+ CMakeLists.txt | 5 +++++
+ client/CMakeLists.txt | 5 -----
+ server/CMakeLists.txt | 5 -----
+ 3 files changed, 5 insertions(+), 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 147060cb1..97c447424 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,6 +26,11 @@ include(GNUInstallDirs OPTIONAL)
+ add_definitions(-DINSTALL_BINDIR="${CMAKE_INSTALL_BINDIR}")
+ add_definitions(-DINSTALL_DATADIR="${CMAKE_INSTALL_DATADIR}")
+
++# Set up FHS installation path
++if(NOT APPLE AND NOT WIN32)
++ add_definitions(-DINSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}")
++endif()
++
+ if(WIN32)
+ set(USE_INTERNAL_LIBS 1)
+ else()
+diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt
+index 56caf04f8..0559564c7 100644
+--- a/client/CMakeLists.txt
++++ b/client/CMakeLists.txt
+@@ -128,11 +128,6 @@ if(APPLE)
+ ${AUDIOUNIT_LIBRARY})
+ endif()
+
+-# Set up FHS installation path
+-if(NOT APPLE AND NOT WIN32)
+- add_definitions(-DINSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}")
+-endif()
+-
+ # Client target
+ if(TARGET SDL2::SDL2 OR TARGET SDL::SDL)
+
+diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt
+index e5b54d8de..9afc6c2c6 100644
+--- a/server/CMakeLists.txt
++++ b/server/CMakeLists.txt
+@@ -37,11 +37,6 @@ if(WIN32 AND NOT MSVC)
+ add_definitions(-DWINVER=0x0500)
+ endif()
+
+-# Set up FHS installation path
+-if(NOT APPLE AND NOT WIN32)
+- add_definitions(-DINSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}")
+-endif()
+-
+ add_executable(odasrv
+ ${COMMON_SOURCES} ${SERVER_SOURCES} ${SERVER_WIN32_SOURCES})
+ odamex_target_settings(odasrv)
+--
+2.43.2
+
diff --git a/games-engines/odamex/metadata.xml b/games-engines/odamex/metadata.xml
index ac392af534dc..6bc351136c9c 100644
--- a/games-engines/odamex/metadata.xml
+++ b/games-engines/odamex/metadata.xml
@@ -1,20 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person" proxied="yes">
- <email>vilhelm.gray@gmail.com</email>
- <name>William Breathitt Gray</name>
- </maintainer>
<maintainer type="project">
<email>games@gentoo.org</email>
<name>Gentoo Games Project</name>
</maintainer>
- <maintainer type="project" proxied="proxy">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
<use>
<flag name="client">Build client target</flag>
+ <flag name="hidpi">Use bundled FLTK 1.4, which has better support for HiDPI screens</flag>
<flag name="master">Build master server target (advertises odamex server list)</flag>
<flag name="odalaunch">Build the wxWidgets based launcher</flag>
<flag name="portmidi">Enable PortMidi support</flag>
@@ -24,6 +17,7 @@
<changelog>http://odamex.net/changelog.php</changelog>
<doc lang="en">http://odamex.net/wiki/Odamex</doc>
<bugs-to>http://odamex.net/bugs/</bugs-to>
+ <remote-id type="github">odamex/odamex</remote-id>
<remote-id type="sourceforge">odamex</remote-id>
</upstream>
<longdescription lang="en">
@@ -33,6 +27,6 @@
broader expanse of security features, personal configuration, gameplay
options, and editing features. Odamex can run on a wide range of
operating systems and hardware, so players should be able to play
- on almost any platform.
+ on almost any platform.
</longdescription>
</pkgmetadata>
diff --git a/games-engines/odamex/odamex-0.8.3.ebuild b/games-engines/odamex/odamex-0.8.3.ebuild
deleted file mode 100644
index ff1b19128574..000000000000
--- a/games-engines/odamex/odamex-0.8.3.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-WX_GTK_VER="3.0-gtk3"
-inherit cmake desktop prefix wxwidgets xdg
-
-DESCRIPTION="Online multiplayer free software engine for DOOM"
-HOMEPAGE="https://odamex.net/"
-SRC_URI="mirror://sourceforge/${PN}/Odamex/${PV}/${PN}-src-${PV}.tar.bz2 -> ${P}.tar.bz2"
-
-LICENSE="GPL-2+ MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="+client master +odalaunch portmidi server upnp X"
-REQUIRED_USE="|| ( client master server )"
-
-RDEPEND="
- client? (
- media-libs/libpng:0=
- media-libs/libsdl2[joystick,sound,video]
- media-libs/sdl2-mixer
- odalaunch? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
- portmidi? ( media-libs/portmidi )
- X? ( x11-libs/libX11 )
- )
- server? (
- upnp? ( net-libs/miniupnpc:= )
- )"
-DEPEND="${RDEPEND}"
-BDEPEND="games-util/deutex"
-
-S="${WORKDIR}/${PN}-src-${PV}"
-
-PATCHES=(
- "${FILESDIR}/${PN}-0.8.1-miniupnpc.patch"
- "${FILESDIR}/${P}-Use-C-11-on-odalaunch-target-for-wx-3.0.4-and-up.patch"
-)
-
-src_prepare() {
- rm -r libraries/libminiupnpc wad/odamex.wad || die
- hprefixify common/d_main.cpp
-
- use odalaunch && setup-wxwidgets
-
- cmake_src_prepare
-}
-
-src_configure() {
- local mycmakeargs=(
- -DCMAKE_DISABLE_FIND_PACKAGE_X11=$(usex !X)
- -DBUILD_CLIENT=$(usex client)
- -DBUILD_MASTER=$(usex master)
- -DBUILD_ODALAUNCH=$(usex odalaunch)
- -DBUILD_SERVER=$(usex server)
- -DENABLE_PORTMIDI=$(usex portmidi)
- -DUSE_MINIUPNP=$(usex upnp)
- )
-
- cmake_src_configure
-}
-
-src_install() {
- if use client ; then
- newicon -s 128 "${S}/media/icon_${PN}_128.png" "${PN}.png"
- make_desktop_entry "${PN}" "Odamex"
-
- if use odalaunch ; then
- newicon -s 128 "${S}/media/icon_odalaunch_128.png" "odalaunch.png"
- make_desktop_entry odalaunch "Odamex Launcher" odalaunch
- fi
- fi
-
- cmake_src_install
-}
diff --git a/games-engines/odamex/odamex-0.9.0.ebuild b/games-engines/odamex/odamex-10.4.0-r3.ebuild
index dc97bd284d12..8b0fd3fd1b7b 100644
--- a/games-engines/odamex/odamex-0.9.0.ebuild
+++ b/games-engines/odamex/odamex-10.4.0-r3.ebuild
@@ -1,30 +1,36 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-WX_GTK_VER="3.0-gtk3"
+WX_GTK_VER="3.0-gtk3" # odalaunch crashes with 3.2. Check it before updating!
inherit cmake desktop prefix wxwidgets xdg
DESCRIPTION="Online multiplayer free software engine for DOOM"
HOMEPAGE="https://odamex.net/"
-SRC_URI="mirror://sourceforge/${PN}/Odamex/${PV}/${PN}-src-${PV}.tar.bz2 -> ${P}.tar.bz2"
-
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${PN}-src-${PV}.tar.xz"
+S="${WORKDIR}/${PN}-src-${PV}"
LICENSE="GPL-2+ MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="+client master +odalaunch portmidi server upnp X"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+IUSE="+client hidpi master +odalaunch portmidi server upnp"
REQUIRED_USE="|| ( client master server )"
+# protobuf is still bundled. Unfortunately an old version is required for C++98
+# compatibility. We could use C++11, but upstream is concerned about using a
+# completely different protobuf version on a multiplayer-focused engine.
+
RDEPEND="
client? (
media-libs/libpng:0=
media-libs/libsdl2[joystick,sound,video]
media-libs/sdl2-mixer
- odalaunch? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+ net-misc/curl
+ x11-libs/libX11
+ !hidpi? ( x11-libs/fltk:1 )
portmidi? ( media-libs/portmidi )
- X? ( x11-libs/libX11 )
)
+ odalaunch? ( x11-libs/wxGTK:${WX_GTK_VER} )
server? (
dev-libs/jsoncpp:=
upnp? ( net-libs/miniupnpc:= )
@@ -32,15 +38,16 @@ RDEPEND="
DEPEND="${RDEPEND}"
BDEPEND="games-util/deutex"
-S="${WORKDIR}/${PN}-src-${PV}"
-
PATCHES=(
- "${FILESDIR}/${P}-Unbundle-miniupnpc.patch"
- "${FILESDIR}/${P}-Set-IMPORTED_LOCATION-for-jsoncpp.patch"
+ "${FILESDIR}"/${PN}-10.3.0-unbundle-fltk.patch
+ "${FILESDIR}"/${PN}-10.4.0-backport-pr928.patch
+ "${FILESDIR}"/${PN}-odalaunch-prefix.patch
+ "${FILESDIR}"/${PN}-lto.patch
+ "${FILESDIR}"/${PN}-musl.patch
)
src_prepare() {
- rm -r libraries/libminiupnpc || die
+ rm -r libraries/miniupnp || die
hprefixify common/d_main.cpp
use odalaunch && setup-wxwidgets
@@ -50,8 +57,10 @@ src_prepare() {
src_configure() {
local mycmakeargs=(
- -DCMAKE_DISABLE_FIND_PACKAGE_X11=$(usex !X)
+ -DUSE_INTERNAL_FLTK=$(usex hidpi)
+ -DUSE_INTERNAL_JSONCPP=0
-DUSE_INTERNAL_LIBS=0
+ -DUSE_INTERNAL_MINIUPNP=0
-DBUILD_CLIENT=$(usex client)
-DBUILD_LAUNCHER=$(usex odalaunch)
-DBUILD_MASTER=$(usex master)
@@ -66,11 +75,15 @@ src_configure() {
src_install() {
if use client ; then
- newicon -s 128 "${S}/media/icon_${PN}_128.png" "${PN}.png"
+ for size in 96 128 256 512; do
+ newicon -s ${size} "${S}/media/icon_${PN}_${size}.png" "${PN}.png"
+ done
make_desktop_entry "${PN}" "Odamex"
if use odalaunch ; then
- newicon -s 128 "${S}/media/icon_odalaunch_128.png" "odalaunch.png"
+ for size in 96 128 256 512; do
+ newicon -s ${size} "${S}/media/icon_odalaunch_${size}.png" "odalaunch.png"
+ done
make_desktop_entry odalaunch "Odamex Launcher" odalaunch
fi
fi
diff --git a/games-engines/openmw/Manifest b/games-engines/openmw/Manifest
index 08b631916bce..1146884524c0 100644
--- a/games-engines/openmw/Manifest
+++ b/games-engines/openmw/Manifest
@@ -1,2 +1,2 @@
-DIST openmw-0.46.0-floattest.patch 43168 BLAKE2B 060b529fd4cd01f0fc723bb5a00a256b9c1ae4413c7b22581467cce75416e01041c3af22f0215ad9b1c475965a988065e0860c01c1e71d97454b022eec4779ea SHA512 0e165417e9ae047231fdc27b62251b33867f3782c1753f81705c886d6d3a433c8bbc3b4653a2555bc644bad11db9769d4bc2abcc84ca3ab23fabb6b80347bc32
-DIST openmw-0.46.0.tar.gz 5155004 BLAKE2B 8ad94a7fffe5a0739c56c778efe2ec17ef66c312a7fe5caf015cf3cad2bc17d2abe8cdc3f4134049a32fe55c4f4b3f72678d2d0ce1037fd02f6ac753b9d89b2c SHA512 da384aead300552817c0d0ce03515a5ccc95dcab4e02d4c1dd0d6c5f1b01ee01209bbaea74e2d12021e3465e49b051823bb018de39675c5a22c6892893624486
+DIST openmw-0.48.0.tar.gz 6020423 BLAKE2B 6a6f710f06efc0e844115018365db8148e9f6acefd453df74904144f53f5e896e9ab4d4f563ab95a3231500a2c1a5e1f8c5b6d6ac5c1315805c61657d13a7aa8 SHA512 969c10b285c039b54810c56f202f9c33bd03c83d87fec722c3389525e87fc7104760ea12527be5fb19a3f7ae2dc9aef0e4c6b7375d8bbcd6eb726e1d7859b833
+DIST openmw-template-8966dab24692555eec720c854fb0f73d108070cd.omwgame 139730 BLAKE2B bf7f96912fd828078c62d112f3ff83e9a35298516135fb46b15ed01fc0260247cc0cba4aa3bbc55bf6a688f216384dbd9a5aa3328c4387b9b180b80f7463963e SHA512 6e38642bcf013c5f496a9cb0bf3ec7c9553b6e86b836e7844824c5a05f556c9391167214469b6318401684b702d7569896bf743c85aee4198612b3315ba778d6
diff --git a/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch b/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch
deleted file mode 100644
index f6e82cb3a2c9..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-Fixes build on ~arch system, patch from upstream, to be dropped for 0.47
-
-From 208a50340db5506dded60c05272ce9692773baa9 Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Mon, 13 Apr 2020 20:45:07 +0200
-Subject: [PATCH] Specialize DetourNavigator::ObjectId ctor for pointers
-
-To fix msvc error:
-components\detournavigator\objectid.hpp(14,13): error C2440: 'reinterpret_cast': cannot convert from 'const T' to 'size_t'
- with
- [
- T=unsigned long
- ]
-diff --git a/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp b/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp
-index 5275d9119e..e44ae48786 100644
---- a/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp
-+++ b/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp
-@@ -61,15 +61,15 @@ namespace
- {
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
-- EXPECT_TRUE(manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
-+ EXPECT_TRUE(manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
- }
-
- TEST_F(DetourNavigatorTileCachedRecastMeshManagerTest, add_object_for_existing_object_should_return_false)
- {
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-- EXPECT_FALSE(manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ EXPECT_FALSE(manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground));
- }
-
- TEST_F(DetourNavigatorTileCachedRecastMeshManagerTest, update_object_for_changed_object_should_return_changed_tiles)
-@@ -77,9 +77,9 @@ namespace
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
- const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
-- manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
- EXPECT_THAT(
-- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
-+ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
- ElementsAre(TilePosition(-1, -1), TilePosition(-1, 0), TilePosition(0, -1), TilePosition(0, 0),
- TilePosition(1, -1), TilePosition(1, 0))
- );
-@@ -89,9 +89,9 @@ namespace
- {
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_EQ(
-- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
-+ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground),
- std::vector<TilePosition>()
- );
- }
-@@ -100,7 +100,7 @@ namespace
- {
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
-@@ -111,7 +111,7 @@ namespace
- {
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_EQ(manager.getMesh(TilePosition(1, 0)), nullptr);
- }
-
-@@ -121,13 +121,13 @@ namespace
- const btBoxShape boxShape(btVector3(20, 20, 100));
- const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
-
-- manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
- EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(0, 0)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(1, 0)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(1, -1)), nullptr);
-
-- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
-@@ -140,11 +140,11 @@ namespace
- const btBoxShape boxShape(btVector3(20, 20, 100));
- const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
-
-- manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
- EXPECT_EQ(manager.getMesh(TilePosition(-1, -1)), nullptr);
- EXPECT_EQ(manager.getMesh(TilePosition(-1, 0)), nullptr);
-
-- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_EQ(manager.getMesh(TilePosition(1, 0)), nullptr);
- EXPECT_EQ(manager.getMesh(TilePosition(1, -1)), nullptr);
- }
-@@ -153,8 +153,8 @@ namespace
- {
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-- manager.removeObject(ObjectId(1ul));
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.removeObject(ObjectId(&boxShape));
- EXPECT_EQ(manager.getMesh(TilePosition(-1, -1)), nullptr);
- EXPECT_EQ(manager.getMesh(TilePosition(-1, 0)), nullptr);
- EXPECT_EQ(manager.getMesh(TilePosition(0, -1)), nullptr);
-@@ -166,13 +166,13 @@ namespace
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
-
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(0, 0)), nullptr);
-
-- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr);
- EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr);
-@@ -184,7 +184,7 @@ namespace
- TileCachedRecastMeshManager manager(mSettings);
- const auto initialRevision = manager.getRevision();
- const btBoxShape boxShape(btVector3(20, 20, 100));
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_EQ(manager.getRevision(), initialRevision + 1);
- }
-
-@@ -192,9 +192,9 @@ namespace
- {
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- const auto beforeAddRevision = manager.getRevision();
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_EQ(manager.getRevision(), beforeAddRevision);
- }
-
-@@ -203,9 +203,9 @@ namespace
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
- const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0));
-- manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground);
- const auto beforeUpdateRevision = manager.getRevision();
-- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_EQ(manager.getRevision(), beforeUpdateRevision + 1);
- }
-
-@@ -213,9 +213,9 @@ namespace
- {
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- const auto beforeUpdateRevision = manager.getRevision();
-- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- EXPECT_EQ(manager.getRevision(), beforeUpdateRevision);
- }
-
-@@ -223,9 +223,9 @@ namespace
- {
- TileCachedRecastMeshManager manager(mSettings);
- const btBoxShape boxShape(btVector3(20, 20, 100));
-- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
-+ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground);
- const auto beforeRemoveRevision = manager.getRevision();
-- manager.removeObject(ObjectId(1ul));
-+ manager.removeObject(ObjectId(&boxShape));
- EXPECT_EQ(manager.getRevision(), beforeRemoveRevision + 1);
- }
-
-@@ -233,7 +233,7 @@ namespace
- {
- TileCachedRecastMeshManager manager(mSettings);
- const auto beforeRemoveRevision = manager.getRevision();
-- manager.removeObject(ObjectId(1ul));
-+ manager.removeObject(ObjectId(&manager));
- EXPECT_EQ(manager.getRevision(), beforeRemoveRevision);
- }
- }
-diff --git a/components/detournavigator/objectid.hpp b/components/detournavigator/objectid.hpp
-index 3b56924b13..6ddcc9169d 100644
---- a/components/detournavigator/objectid.hpp
-+++ b/components/detournavigator/objectid.hpp
-@@ -10,7 +10,7 @@ namespace DetourNavigator
- {
- public:
- template <class T>
-- explicit ObjectId(const T value) throw()
-+ explicit ObjectId(T* value) throw()
- : mValue(reinterpret_cast<std::size_t>(value))
- {
- }
diff --git a/games-engines/openmw/files/openmw-0.46.0-floattest2.patch b/games-engines/openmw/files/openmw-0.46.0-floattest2.patch
deleted file mode 100644
index ca6e355eab7d..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-floattest2.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-https://gitlab.com/OpenMW/openmw/-/merge_requests/253
-
---- a/apps/openmw_test_suite/detournavigator/navigator.cpp 2020-06-30 16:07:31.544410916 +0100
-+++ b/apps/openmw_test_suite/detournavigator/navigator.cpp 2020-06-30 16:08:50.405698937 +0100
-@@ -458,25 +458,25 @@
-
- EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim, mAreaCosts, mOut), Status::Success);
-
-- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
-- osg::Vec3f(0, 215, 185.33331298828125),
-- osg::Vec3f(0, 186.6666717529296875, 185.33331298828125),
-- osg::Vec3f(0, 158.333343505859375, 185.33331298828125),
-- osg::Vec3f(0, 130.0000152587890625, 185.33331298828125),
-- osg::Vec3f(0, 101.66667938232421875, 185.33331298828125),
-- osg::Vec3f(0, 73.333343505859375, 185.33331298828125),
-- osg::Vec3f(0, 45.0000152587890625, 185.33331298828125),
-- osg::Vec3f(0, 16.6666812896728515625, 185.33331298828125),
-- osg::Vec3f(0, -11.66664981842041015625, 185.33331298828125),
-- osg::Vec3f(0, -39.999980926513671875, 185.33331298828125),
-- osg::Vec3f(0, -68.33331298828125, 185.33331298828125),
-- osg::Vec3f(0, -96.66664886474609375, 185.33331298828125),
-- osg::Vec3f(0, -124.99997711181640625, 185.33331298828125),
-- osg::Vec3f(0, -153.33331298828125, 185.33331298828125),
-- osg::Vec3f(0, -181.6666412353515625, 185.33331298828125),
-- osg::Vec3f(0, -209.999969482421875, 185.33331298828125),
-- osg::Vec3f(0, -215, 185.33331298828125),
-- })) << mPath;
-+ EXPECT_THAT(mPath, ElementsAre(
-+ Vec3fEq(0, 215, 185.33331298828125),
-+ Vec3fEq(0, 186.6666717529296875, 185.33331298828125),
-+ Vec3fEq(0, 158.333343505859375, 185.33331298828125),
-+ Vec3fEq(0, 130.0000152587890625, 185.33331298828125),
-+ Vec3fEq(0, 101.66667938232421875, 185.33331298828125),
-+ Vec3fEq(0, 73.333343505859375, 185.33331298828125),
-+ Vec3fEq(0, 45.0000152587890625, 185.33331298828125),
-+ Vec3fEq(0, 16.6666812896728515625, 185.33331298828125),
-+ Vec3fEq(0, -11.66664981842041015625, 185.33331298828125),
-+ Vec3fEq(0, -39.999980926513671875, 185.33331298828125),
-+ Vec3fEq(0, -68.33331298828125, 185.33331298828125),
-+ Vec3fEq(0, -96.66664886474609375, 185.33331298828125),
-+ Vec3fEq(0, -124.99997711181640625, 185.33331298828125),
-+ Vec3fEq(0, -153.33331298828125, 185.33331298828125),
-+ Vec3fEq(0, -181.6666412353515625, 185.33331298828125),
-+ Vec3fEq(0, -209.999969482421875, 185.33331298828125),
-+ Vec3fEq(0, -215, 185.33331298828125)
-+ ));
- }
-
- TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_water_when_ground_cross_water_with_swim_and_walk_flags)
-@@ -505,25 +505,25 @@
- EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim | Flag_walk, mAreaCosts, mOut),
- Status::Success);
-
-- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
-- osg::Vec3f(0, 215, -94.75363922119140625),
-- osg::Vec3f(0, 186.6666717529296875, -106.0000152587890625),
-- osg::Vec3f(0, 158.333343505859375, -115.85507965087890625),
-- osg::Vec3f(0, 130.0000152587890625, -125.71016693115234375),
-- osg::Vec3f(0, 101.66667938232421875, -135.5652313232421875),
-- osg::Vec3f(0, 73.333343505859375, -143.3333587646484375),
-- osg::Vec3f(0, 45.0000152587890625, -143.3333587646484375),
-- osg::Vec3f(0, 16.6666812896728515625, -143.3333587646484375),
-- osg::Vec3f(0, -11.66664981842041015625, -143.3333587646484375),
-- osg::Vec3f(0, -39.999980926513671875, -143.3333587646484375),
-- osg::Vec3f(0, -68.33331298828125, -143.3333587646484375),
-- osg::Vec3f(0, -96.66664886474609375, -137.3043670654296875),
-- osg::Vec3f(0, -124.99997711181640625, -127.44930267333984375),
-- osg::Vec3f(0, -153.33331298828125, -117.59423065185546875),
-- osg::Vec3f(0, -181.6666412353515625, -107.73915863037109375),
-- osg::Vec3f(0, -209.999969482421875, -97.7971343994140625),
-- osg::Vec3f(0, -215, -94.75363922119140625),
-- })) << mPath;
-+ EXPECT_THAT(mPath, ElementsAre(
-+ Vec3fEq(0, 215, -94.75363922119140625),
-+ Vec3fEq(0, 186.6666717529296875, -106.0000152587890625),
-+ Vec3fEq(0, 158.333343505859375, -115.85507965087890625),
-+ Vec3fEq(0, 130.0000152587890625, -125.71016693115234375),
-+ Vec3fEq(0, 101.66667938232421875, -135.5652313232421875),
-+ Vec3fEq(0, 73.333343505859375, -143.3333587646484375),
-+ Vec3fEq(0, 45.0000152587890625, -143.3333587646484375),
-+ Vec3fEq(0, 16.6666812896728515625, -143.3333587646484375),
-+ Vec3fEq(0, -11.66664981842041015625, -143.3333587646484375),
-+ Vec3fEq(0, -39.999980926513671875, -143.3333587646484375),
-+ Vec3fEq(0, -68.33331298828125, -143.3333587646484375),
-+ Vec3fEq(0, -96.66664886474609375, -137.3043670654296875),
-+ Vec3fEq(0, -124.99997711181640625, -127.44930267333984375),
-+ Vec3fEq(0, -153.33331298828125, -117.59423065185546875),
-+ Vec3fEq(0, -181.6666412353515625, -107.73915863037109375),
-+ Vec3fEq(0, -209.999969482421875, -97.7971343994140625),
-+ Vec3fEq(0, -215, -94.75363922119140625)
-+ ));
- }
-
- TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_water_when_ground_cross_water_with_max_int_cells_size_and_swim_and_walk_flags)
-@@ -552,25 +552,25 @@
- EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim | Flag_walk, mAreaCosts, mOut),
- Status::Success);
-
-- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({
-- osg::Vec3f(0, 215, -94.75363922119140625),
-- osg::Vec3f(0, 186.6666717529296875, -106.0000152587890625),
-- osg::Vec3f(0, 158.333343505859375, -115.85507965087890625),
-- osg::Vec3f(0, 130.0000152587890625, -125.71016693115234375),
-- osg::Vec3f(0, 101.66667938232421875, -135.5652313232421875),
-- osg::Vec3f(0, 73.333343505859375, -143.3333587646484375),
-- osg::Vec3f(0, 45.0000152587890625, -143.3333587646484375),
-- osg::Vec3f(0, 16.6666812896728515625, -143.3333587646484375),
-- osg::Vec3f(0, -11.66664981842041015625, -143.3333587646484375),
-- osg::Vec3f(0, -39.999980926513671875, -143.3333587646484375),
-- osg::Vec3f(0, -68.33331298828125, -143.3333587646484375),
-- osg::Vec3f(0, -96.66664886474609375, -137.3043670654296875),
-- osg::Vec3f(0, -124.99997711181640625, -127.44930267333984375),
-- osg::Vec3f(0, -153.33331298828125, -117.59423065185546875),
-- osg::Vec3f(0, -181.6666412353515625, -107.73915863037109375),
-- osg::Vec3f(0, -209.999969482421875, -97.7971343994140625),
-- osg::Vec3f(0, -215, -94.75363922119140625),
-- })) << mPath;
-+ EXPECT_THAT(mPath, ElementsAre(
-+ Vec3fEq(0, 215, -94.75363922119140625),
-+ Vec3fEq(0, 186.6666717529296875, -106.0000152587890625),
-+ Vec3fEq(0, 158.333343505859375, -115.85507965087890625),
-+ Vec3fEq(0, 130.0000152587890625, -125.71016693115234375),
-+ Vec3fEq(0, 101.66667938232421875, -135.5652313232421875),
-+ Vec3fEq(0, 73.333343505859375, -143.3333587646484375),
-+ Vec3fEq(0, 45.0000152587890625, -143.3333587646484375),
-+ Vec3fEq(0, 16.6666812896728515625, -143.3333587646484375),
-+ Vec3fEq(0, -11.66664981842041015625, -143.3333587646484375),
-+ Vec3fEq(0, -39.999980926513671875, -143.3333587646484375),
-+ Vec3fEq(0, -68.33331298828125, -143.3333587646484375),
-+ Vec3fEq(0, -96.66664886474609375, -137.3043670654296875),
-+ Vec3fEq(0, -124.99997711181640625, -127.44930267333984375),
-+ Vec3fEq(0, -153.33331298828125, -117.59423065185546875),
-+ Vec3fEq(0, -181.6666412353515625, -107.73915863037109375),
-+ Vec3fEq(0, -209.999969482421875, -97.7971343994140625),
-+ Vec3fEq(0, -215, -94.75363922119140625)
-+ ));
- }
-
- TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_ground_when_ground_cross_water_with_only_walk_flag)
diff --git a/games-engines/openmw/files/openmw-0.46.0-gcc11.patch b/games-engines/openmw/files/openmw-0.46.0-gcc11.patch
deleted file mode 100644
index 0dc3106fb3bf..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-gcc11.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/components/sceneutil/mwshadowtechnique.cpp b/components/sceneutil/mwshadowtechnique.cpp
-index cb3a1b2..62cfeec 100644
---- a/components/sceneutil/mwshadowtechnique.cpp
-+++ b/components/sceneutil/mwshadowtechnique.cpp
-@@ -24,6 +24,7 @@
- #include <osg/io_utils>
-
- #include <sstream>
-+#include <limits>
-
- namespace {
-
-diff --git a/components/sceneutil/shadow.cpp b/components/sceneutil/shadow.cpp
-index 035c19a..aba1b81 100644
---- a/components/sceneutil/shadow.cpp
-+++ b/components/sceneutil/shadow.cpp
-@@ -4,6 +4,7 @@
-
- #include <components/sceneutil/vismask.hpp>
- #include <components/settings/settings.hpp>
-+#include <limits>
-
- namespace SceneUtil
- {
-diff --git a/components/terrain/quadtreeworld.cpp b/components/terrain/quadtreeworld.cpp
-index f998b78..e0e47dd 100644
---- a/components/terrain/quadtreeworld.cpp
-+++ b/components/terrain/quadtreeworld.cpp
-@@ -3,6 +3,7 @@
- #include <osgUtil/CullVisitor>
-
- #include <sstream>
-+#include <limits>
-
- #include <components/misc/constants.hpp>
- #include <components/sceneutil/mwshadowtechnique.hpp>
diff --git a/games-engines/openmw/files/openmw-0.46.0-missing-include.patch b/games-engines/openmw/files/openmw-0.46.0-missing-include.patch
deleted file mode 100644
index 803707498e43..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-missing-include.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Fixes build on ~arch system, patch from upstream, to be dropped for 0.47
-
-From 10daadefbea1f62a818c339dc7f3d69a858bc8a6 Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Thu, 30 Apr 2020 21:57:22 +0200
-Subject: [PATCH] Add missing include
-
-diff --git a/components/detournavigator/offmeshconnectionsmanager.hpp b/components/detournavigator/offmeshconnectionsmanager.hpp
-index 30d7976aec..155ce32963 100644
---- a/components/detournavigator/offmeshconnectionsmanager.hpp
-+++ b/components/detournavigator/offmeshconnectionsmanager.hpp
-@@ -13,6 +13,7 @@
-
- #include <boost/optional.hpp>
-
-+#include <algorithm>
- #include <map>
- #include <mutex>
- #include <unordered_map>
diff --git a/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch b/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch
deleted file mode 100644
index a14f58bc9e79..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-We don't install license files
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d69352c94..5f97c86e9 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -470,9 +470,6 @@ IF(NOT WIN32 AND NOT APPLE)
- # INSTALL(PROGRAMS "${OpenMW_BINARY_DIR}/Plugin_MyGUI_OpenMW_Resources.so" DESTINATION "${LIBDIR}" )
- #ENDIF(BUILD_MYGUI_PLUGIN)
-
-- # Install licenses
-- INSTALL(FILES "files/mygui/DejaVu Font License.txt" DESTINATION "${LICDIR}" )
--
- # Install icon and desktop file
- INSTALL(FILES "${OpenMW_BINARY_DIR}/org.openmw.launcher.desktop" DESTINATION "${DATAROOTDIR}/applications" COMPONENT "openmw")
- INSTALL(FILES "${OpenMW_SOURCE_DIR}/files/launcher/images/openmw.png" DESTINATION "${ICONDIR}" COMPONENT "openmw")
diff --git a/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch b/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch
deleted file mode 100644
index 315b0753589d..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch
+++ /dev/null
@@ -1,335 +0,0 @@
-Fixes test on i686 system, patch from upstream, to be dropped for 0.47
-
-From 14d0ca4cd3e9aa9e329590913d5f8fb55077587d Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Sun, 25 Nov 2018 11:42:26 +0300
-Subject: [PATCH 1/4] Cast float to btScalar
-
----
- .../detournavigator/recastmeshbuilder.cpp | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/components/detournavigator/recastmeshbuilder.cpp b/components/detournavigator/recastmeshbuilder.cpp
-index d96ba2f29c..f613683571 100644
---- a/components/detournavigator/recastmeshbuilder.cpp
-+++ b/components/detournavigator/recastmeshbuilder.cpp
-@@ -163,15 +163,15 @@ namespace DetourNavigator
-
- transformBoundingBox(transform, aabbMin, aabbMax);
-
-- aabbMin.setX(std::max(mBounds.mMin.x(), aabbMin.x()));
-- aabbMin.setX(std::min(mBounds.mMax.x(), aabbMin.x()));
-- aabbMin.setY(std::max(mBounds.mMin.y(), aabbMin.y()));
-- aabbMin.setY(std::min(mBounds.mMax.y(), aabbMin.y()));
--
-- aabbMax.setX(std::max(mBounds.mMin.x(), aabbMax.x()));
-- aabbMax.setX(std::min(mBounds.mMax.x(), aabbMax.x()));
-- aabbMax.setY(std::max(mBounds.mMin.y(), aabbMax.y()));
-- aabbMax.setY(std::min(mBounds.mMax.y(), aabbMax.y()));
-+ aabbMin.setX(std::max(static_cast<btScalar>(mBounds.mMin.x()), aabbMin.x()));
-+ aabbMin.setX(std::min(static_cast<btScalar>(mBounds.mMax.x()), aabbMin.x()));
-+ aabbMin.setY(std::max(static_cast<btScalar>(mBounds.mMin.y()), aabbMin.y()));
-+ aabbMin.setY(std::min(static_cast<btScalar>(mBounds.mMax.y()), aabbMin.y()));
-+
-+ aabbMax.setX(std::max(static_cast<btScalar>(mBounds.mMin.x()), aabbMax.x()));
-+ aabbMax.setX(std::min(static_cast<btScalar>(mBounds.mMax.x()), aabbMax.x()));
-+ aabbMax.setY(std::max(static_cast<btScalar>(mBounds.mMin.y()), aabbMax.y()));
-+ aabbMax.setY(std::min(static_cast<btScalar>(mBounds.mMax.y()), aabbMax.y()));
-
- transformBoundingBox(transform.inverse(), aabbMin, aabbMax);
-
-
-From ef5a5ef43f9a91795339ef3ea97c505c1e9dc28d Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Sun, 25 Nov 2018 14:03:28 +0300
-Subject: [PATCH 2/4] Print not matched values with full precision
-
----
- .../detournavigator/operators.hpp | 62 +++++++++++++++----
- 1 file changed, 51 insertions(+), 11 deletions(-)
-
-diff --git a/apps/openmw_test_suite/detournavigator/operators.hpp b/apps/openmw_test_suite/detournavigator/operators.hpp
-index a473632bab..e34d6278a7 100644
---- a/apps/openmw_test_suite/detournavigator/operators.hpp
-+++ b/apps/openmw_test_suite/detournavigator/operators.hpp
-@@ -20,22 +20,62 @@ namespace DetourNavigator
- }
- }
-
-+namespace
-+{
-+ template <class T>
-+ struct Wrapper {
-+ const T& mValue;
-+ };
-+
-+ template <class Range>
-+ inline testing::Message& writeRange(testing::Message& message, const Range& range)
-+ {
-+ message << "{\n";
-+ for (const auto& v : range)
-+ message << Wrapper<typename std::decay<decltype(v)>::type> {v} << ",\n";
-+ return message << "}";
-+ }
-+}
-+
- namespace testing
- {
-+ template <>
-+ inline testing::Message& Message::operator <<(const osg::Vec3f& value)
-+ {
-+ return (*this) << "osg::Vec3f(" << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.x()
-+ << ", " << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.y()
-+ << ", " << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.z()
-+ << ')';
-+ }
-+
-+ template <>
-+ inline testing::Message& Message::operator <<(const Wrapper<osg::Vec3f>& value)
-+ {
-+ return (*this) << value.mValue;
-+ }
-+
-+ template <>
-+ inline testing::Message& Message::operator <<(const Wrapper<float>& value)
-+ {
-+ return (*this) << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.mValue;
-+ }
-+
- template <>
- inline testing::Message& Message::operator <<(const std::deque<osg::Vec3f>& value)
- {
-- (*this) << "{\n";
-- for (const auto& v : value)
-- {
-- std::ostringstream stream;
-- stream << "osg::Vec3f("
-- << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.x() << ", "
-- << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.y() << ", "
-- << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.z() << ")";
-- (*this) << stream.str() << ",\n";
-- }
-- return (*this) << "}";
-+ return writeRange(*this, value);
-+ }
-+
-+ template <>
-+ inline testing::Message& Message::operator <<(const std::vector<osg::Vec3f>& value)
-+ {
-+ return writeRange(*this, value);
-+ }
-+
-+ template <>
-+ inline testing::Message& Message::operator <<(const std::vector<float>& value)
-+ {
-+ return writeRange(*this, value);
- }
- }
-
-
-From 2d7c3bae6127fc3717d5e3a8e8830215450fb47f Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Sun, 25 Nov 2018 11:46:09 +0300
-Subject: [PATCH 3/4] Support bullet with double precision
-
----
- apps/openmw/mwphysics/heightfield.cpp | 38 ++++++++++++++++++-
- apps/openmw/mwphysics/heightfield.hpp | 5 +++
- .../detournavigator/recastmeshbuilder.cpp | 4 +-
- .../nifloader/testbulletnifloader.cpp | 36 ++++++++++++++++--
- 4 files changed, 77 insertions(+), 6 deletions(-)
-
-diff --git a/apps/openmw/mwphysics/heightfield.cpp b/apps/openmw/mwphysics/heightfield.cpp
-index 52aed9c072..e1448116bf 100644
---- a/apps/openmw/mwphysics/heightfield.cpp
-+++ b/apps/openmw/mwphysics/heightfield.cpp
-@@ -7,12 +7,48 @@
-
- #include <LinearMath/btTransform.h>
-
-+#include <type_traits>
-+
-+namespace
-+{
-+ template <class T>
-+ auto makeHeights(const T* heights, float sqrtVerts)
-+ -> std::enable_if_t<std::is_same<btScalar, T>::value, std::vector<btScalar>>
-+ {
-+ return {};
-+ }
-+
-+ template <class T>
-+ auto makeHeights(const T* heights, float sqrtVerts)
-+ -> std::enable_if_t<!std::is_same<btScalar, T>::value, std::vector<btScalar>>
-+ {
-+ return std::vector<btScalar>(heights, heights + static_cast<std::ptrdiff_t>(sqrtVerts * sqrtVerts));
-+ }
-+
-+ template <class T>
-+ auto getHeights(const T* floatHeights, const std::vector<btScalar>&)
-+ -> std::enable_if_t<std::is_same<btScalar, T>::value, const btScalar*>
-+ {
-+ return floatHeights;
-+ }
-+
-+ template <class T>
-+ auto getHeights(const T*, const std::vector<btScalar>& btScalarHeights)
-+ -> std::enable_if_t<!std::is_same<btScalar, T>::value, const btScalar*>
-+ {
-+ return btScalarHeights.data();
-+ }
-+}
-+
- namespace MWPhysics
- {
- HeightField::HeightField(const float* heights, int x, int y, float triSize, float sqrtVerts, float minH, float maxH, const osg::Object* holdObject)
-+ : mHeights(makeHeights(heights, sqrtVerts))
- {
- mShape = new btHeightfieldTerrainShape(
-- sqrtVerts, sqrtVerts, heights, 1,
-+ sqrtVerts, sqrtVerts,
-+ getHeights(heights, mHeights),
-+ 1,
- minH, maxH, 2,
- PHY_FLOAT, false
- );
-diff --git a/apps/openmw/mwphysics/heightfield.hpp b/apps/openmw/mwphysics/heightfield.hpp
-index f248186db3..2ba58afff8 100644
---- a/apps/openmw/mwphysics/heightfield.hpp
-+++ b/apps/openmw/mwphysics/heightfield.hpp
-@@ -3,6 +3,10 @@
-
- #include <osg/ref_ptr>
-
-+#include <LinearMath/btScalar.h>
-+
-+#include <vector>
-+
- class btCollisionObject;
- class btHeightfieldTerrainShape;
-
-@@ -27,6 +31,7 @@ namespace MWPhysics
- btHeightfieldTerrainShape* mShape;
- btCollisionObject* mCollisionObject;
- osg::ref_ptr<const osg::Object> mHoldObject;
-+ std::vector<btScalar> mHeights;
-
- void operator=(const HeightField&);
- HeightField(const HeightField&);
-diff --git a/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp b/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
-index 6c474765de..c86dee6e55 100644
---- a/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
-+++ b/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp
-@@ -363,11 +363,11 @@ namespace
- AreaType_ground
- );
- const auto recastMesh = builder.create(mGeneration, mRevision);
-- EXPECT_EQ(recastMesh->getVertices(), std::vector<float>({
-+ EXPECT_THAT(recastMesh->getVertices(), Pointwise(FloatNear(1e-5), std::vector<float>({
- 1.41421353816986083984375, 0, 1.1920928955078125e-07,
- -1.41421353816986083984375, 0, -1.1920928955078125e-07,
- 1.1920928955078125e-07, 0, -1.41421353816986083984375,
-- }));
-+ })));
- EXPECT_EQ(recastMesh->getIndices(), std::vector<int>({0, 1, 2}));
- EXPECT_EQ(recastMesh->getAreaTypes(), std::vector<AreaType>({AreaType_ground}));
- }
-diff --git a/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp b/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp
-index 36f2512462..6ec94fd68f 100644
---- a/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp
-+++ b/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp
-@@ -9,6 +9,8 @@
- #include <gtest/gtest.h>
- #include <gmock/gmock.h>
-
-+#include <algorithm>
-+
- namespace
- {
- template <class T>
-@@ -30,6 +32,34 @@ namespace
- shape.processAllTriangles(&callback, aabbMin, aabbMax);
- return result;
- }
-+
-+ bool isNear(btScalar lhs, btScalar rhs)
-+ {
-+ return std::abs(lhs - rhs) <= 1e-5;
-+ }
-+
-+ bool isNear(const btVector3& lhs, const btVector3& rhs)
-+ {
-+ return std::equal(
-+ static_cast<const btScalar*>(lhs),
-+ static_cast<const btScalar*>(lhs) + 3,
-+ static_cast<const btScalar*>(rhs),
-+ [] (btScalar lhs, btScalar rhs) { return isNear(lhs, rhs); }
-+ );
-+ }
-+
-+ bool isNear(const btMatrix3x3& lhs, const btMatrix3x3& rhs)
-+ {
-+ for (int i = 0; i < 3; ++i)
-+ if (!isNear(lhs[i], rhs[i]))
-+ return false;
-+ return true;
-+ }
-+
-+ bool isNear(const btTransform& lhs, const btTransform& rhs)
-+ {
-+ return isNear(lhs.getOrigin(), rhs.getOrigin()) && isNear(lhs.getBasis(), rhs.getBasis());
-+ }
- }
-
- static std::ostream& operator <<(std::ostream& stream, const btVector3& value)
-@@ -157,7 +187,7 @@ static bool operator ==(const btCompoundShape& lhs, const btCompoundShape& rhs)
- for (int i = 0; i < lhs.getNumChildShapes(); ++i)
- {
- if (!compareObjects(lhs.getChildShape(i), rhs.getChildShape(i))
-- || !(lhs.getChildTransform(i) == rhs.getChildTransform(i)))
-+ || !isNear(lhs.getChildTransform(i), rhs.getChildTransform(i)))
- return false;
- }
- return true;
-@@ -165,13 +195,13 @@ static bool operator ==(const btCompoundShape& lhs, const btCompoundShape& rhs)
-
- static bool operator ==(const btBoxShape& lhs, const btBoxShape& rhs)
- {
-- return lhs.getLocalScaling() == rhs.getLocalScaling()
-+ return isNear(lhs.getLocalScaling(), rhs.getLocalScaling())
- && lhs.getHalfExtentsWithoutMargin() == rhs.getHalfExtentsWithoutMargin();
- }
-
- static bool operator ==(const btBvhTriangleMeshShape& lhs, const btBvhTriangleMeshShape& rhs)
- {
-- return lhs.getLocalScaling() == rhs.getLocalScaling()
-+ return isNear(lhs.getLocalScaling(), rhs.getLocalScaling())
- && lhs.usesQuantizedAabbCompression() == rhs.usesQuantizedAabbCompression()
- && lhs.getOwnsBvh() == rhs.getOwnsBvh()
- && getTriangles(lhs) == getTriangles(rhs);
-
-From 66da72048a5893bc8c9b20f6f7210fd45b6a74bf Mon Sep 17 00:00:00 2001
-From: elsid <elsid.mail@gmail.com>
-Date: Wed, 20 Feb 2019 23:41:16 +0300
-Subject: [PATCH 4/4] Update bullet for windows up to 2.87
-
----
- CI/before_script.msvc.sh | 12 ++++++------
- appveyor.yml | 4 ++--
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/appveyor.yml b/appveyor.yml
-index 3057cc7257..e2c13ed948 100644
---- a/appveyor.yml
-+++ b/appveyor.yml
-@@ -30,8 +30,8 @@ configuration:
- clone_depth: 1
-
- cache:
-- - C:\projects\openmw\deps\Bullet-2.86-msvc2015-win32.7z
-- - C:\projects\openmw\deps\Bullet-2.86-msvc2015-win64.7z
-+ - C:\projects\openmw\deps\Bullet-2.87-msvc2015-win32.7z
-+ - C:\projects\openmw\deps\Bullet-2.87-msvc2015-win64.7z
- - C:\projects\openmw\deps\MyGUI-3.2.2-msvc2015-win32.7z
- - C:\projects\openmw\deps\MyGUI-3.2.2-msvc2015-win64.7z
- - C:\projects\openmw\deps\OSG-3.4.1-scrawl-msvc2015-win32.7z
diff --git a/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch b/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch
deleted file mode 100644
index ea3242d73ca8..000000000000
--- a/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Use system recastnavigation instead of bundled one
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d69352c94..cfb53dc5b 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -596,7 +596,16 @@ endif(WIN32)
- # Extern
- set(RECASTNAVIGATION_STATIC ON CACHE BOOL "Build recastnavigation static libraries")
-
--add_subdirectory (extern/recastnavigation EXCLUDE_FROM_ALL)
-+add_library(RecastNavigation::DebugUtils SHARED IMPORTED)
-+add_library(RecastNavigation::Detour SHARED IMPORTED)
-+add_library(RecastNavigation::Recast SHARED IMPORTED)
-+set_target_properties(RecastNavigation::DebugUtils PROPERTIES
-+ IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libDebugUtils.so)
-+set_target_properties(RecastNavigation::Detour PROPERTIES
-+ IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libDetour.so)
-+set_target_properties(RecastNavigation::Recast PROPERTIES
-+ IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libRecast.so)
-+
- add_subdirectory (extern/osg-ffmpeg-videoplayer)
- add_subdirectory (extern/oics)
- if (BUILD_OPENCS)
diff --git a/games-engines/openmw/files/openmw-0.47.0-mygui-license.patch b/games-engines/openmw/files/openmw-0.47.0-mygui-license.patch
deleted file mode 100644
index 3bf5915bb65d..000000000000
--- a/games-engines/openmw/files/openmw-0.47.0-mygui-license.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-We don't install license files
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d69352c94..5f97c86e9 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -856,9 +856,6 @@ elseif(NOT APPLE)
- INSTALL(PROGRAMS "${INSTALL_SOURCE}/openmw-wizard" DESTINATION "${BINDIR}" )
- ENDIF(BUILD_WIZARD)
-
-- # Install licenses
-- INSTALL(FILES "files/mygui/DejaVuFontLicense.txt" DESTINATION "${LICDIR}" )
--
- # Install icon and desktop file
- INSTALL(FILES "${OpenMW_BINARY_DIR}/org.openmw.launcher.desktop" DESTINATION "${DATAROOTDIR}/applications" COMPONENT "openmw")
- INSTALL(FILES "${OpenMW_SOURCE_DIR}/files/launcher/images/openmw.png" DESTINATION "${ICONDIR}" COMPONENT "openmw")
diff --git a/games-engines/openmw/files/openmw-0.48.0-gcc14.patch b/games-engines/openmw/files/openmw-0.48.0-gcc14.patch
new file mode 100644
index 000000000000..b352d0536c8b
--- /dev/null
+++ b/games-engines/openmw/files/openmw-0.48.0-gcc14.patch
@@ -0,0 +1,13 @@
+Fix build with gcc 14
+https://bugs.gentoo.org/925105
+
+--- a/components/bsa/bsa_file.cpp
++++ b/components/bsa/bsa_file.cpp
+@@ -26,6 +26,7 @@
+ #include <components/files/constrainedfilestream.hpp>
+
+ #include <cassert>
++#include <algorithm>
+
+ #include <boost/filesystem/path.hpp>
+ #include <boost/filesystem/fstream.hpp>
diff --git a/games-engines/openmw/metadata.xml b/games-engines/openmw/metadata.xml
index adf9098884be..46e2148918c3 100644
--- a/games-engines/openmw/metadata.xml
+++ b/games-engines/openmw/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>alexey+gentoo@asokolov.org</email>
diff --git a/games-engines/openmw/openmw-0.46.0.ebuild b/games-engines/openmw/openmw-0.48.0.ebuild
index 9b4a6bfa4e9d..65765800e7b5 100644
--- a/games-engines/openmw/openmw-0.46.0.ebuild
+++ b/games-engines/openmw/openmw-0.48.0.ebuild
@@ -1,9 +1,10 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit cmake flag-o-matic xdg-utils readme.gentoo-r1
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+inherit cmake lua-single readme.gentoo-r1 xdg
DESCRIPTION="Open source reimplementation of TES III: Morrowind"
HOMEPAGE="https://openmw.org/ https://gitlab.com/OpenMW/openmw"
@@ -12,34 +13,42 @@ if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/OpenMW/openmw.git"
else
- SRC_URI="
- https://github.com/OpenMW/openmw/archive/${P}.tar.gz
- https://gitlab.com/OpenMW/openmw/-/merge_requests/163.patch -> ${P}-floattest.patch
- "
- KEYWORDS="~amd64 ~x86"
+ SRC_URI="https://github.com/OpenMW/openmw/archive/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
S="${WORKDIR}/${PN}-${P}"
fi
+MY_TEMPLATE_COMMIT="8966dab24692555eec720c854fb0f73d108070cd"
+SRC_URI+="
+ test? ( https://gitlab.com/OpenMW/example-suite/-/raw/${MY_TEMPLATE_COMMIT}/data/template.omwgame -> openmw-template-${MY_TEMPLATE_COMMIT}.omwgame )
+"
+
LICENSE="GPL-3 MIT BitstreamVera ZLIB"
SLOT="0"
IUSE="doc devtools +osg-fork test +qt5"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
RESTRICT="!test? ( test )"
# FIXME: Unbundle dev-games/openscenegraph-qt in extern/osgQt directory,
# used when BUILD_OPENCS flag is enabled. See bug #676266.
-RDEPEND="
- dev-games/mygui
- dev-games/recastnavigation
- dev-libs/boost:=[threads,zlib]
+RDEPEND="${LUA_DEPS}
+ app-arch/lz4:=
+ >=dev-games/mygui-3.4.1
+ <dev-games/mygui-3.4.3
+ dev-cpp/yaml-cpp:=
+ dev-db/sqlite:3
+ dev-games/recastnavigation:=
+ dev-libs/boost:=[zlib]
+ dev-libs/icu:=
dev-libs/tinyxml[stl]
media-libs/libsdl2[joystick,opengl,video]
media-libs/openal
media-video/ffmpeg:=
- >=sci-physics/bullet-2.86:=[-double-precision]
+ >=sci-physics/bullet-2.86:=[double-precision]
virtual/opengl
- osg-fork? ( dev-games/openscenegraph-openmw:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] )
- !osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] )
+ osg-fork? ( >=dev-games/openscenegraph-openmw-3.6:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
+ !osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
qt5? (
app-arch/unshield
dev-qt/qtcore:5
@@ -50,12 +59,14 @@ RDEPEND="
)
"
-DEPEND="${RDEPEND}"
+DEPEND="${RDEPEND}
+ dev-cpp/sol2
+"
BDEPEND="
virtual/pkgconfig
doc? (
- app-doc/doxygen[doc]
+ app-text/doxygen[dot]
dev-python/sphinx
)
test? (
@@ -64,15 +75,7 @@ BDEPEND="
"
PATCHES=(
- "${FILESDIR}"/openmw-0.46.0-mygui-license.patch
- "${FILESDIR}"/openmw-0.46.0-recastnavigation.patch
- "${FILESDIR}"/openmw-0.46.0-missing-include.patch
- "${FILESDIR}"/openmw-0.46.0-fix-cast.patch
- "${FILESDIR}"/openmw-0.46.0-nifbullet-test.patch
- # https://gitlab.com/OpenMW/openmw/-/merge_requests/163
- "${DISTDIR}"/openmw-0.46.0-floattest.patch
- "${FILESDIR}"/openmw-0.46.0-floattest2.patch
- "${FILESDIR}"/openmw-0.46.0-gcc11.patch
+ "${FILESDIR}/openmw-0.48.0-gcc14.patch"
)
src_prepare() {
@@ -80,18 +83,13 @@ src_prepare() {
# Use the system tinyxml headers
rm -v extern/oics/tiny{str,xml}* || die
-
- # Unbundle recastnavigation
- rm -vr extern/recastnavigation || die
- sed -i "s#GENTOO_RECAST_LIBDIR#${EPREFIX}/usr/$(get_libdir)#" CMakeLists.txt || die
+ rm -rv extern/sol3 || die
}
src_configure() {
- use devtools && ! use qt5 && \
+ use devtools && ! use qt5 &&
elog "'qt5' USE flag is disabled, 'openmw-cs' will not be installed"
- append-cxxflags "-I${EPREFIX}/usr/include/recastnavigation"
-
local mycmakeargs=(
-DBUILD_BSATOOL=$(usex devtools)
-DBUILD_DOCS=$(usex doc)
@@ -103,11 +101,31 @@ src_configure() {
-DBUILD_UNITTESTS=$(usex test)
-DGLOBAL_DATA_PATH="${EPREFIX}/usr/share"
-DICONDIR="${EPREFIX}/usr/share/icons/hicolor/256x256/apps"
- -DMORROWIND_DATA_FILES="${EPREFIX}/usr/share/morrowind-data"
-DUSE_SYSTEM_TINYXML=ON
- -DDESIRED_QT_VERSION=5
+ -DOPENMW_USE_SYSTEM_GOOGLETEST=ON
+ -DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON
)
+ if [[ ${ELUA} == luajit ]]; then
+ mycmakeargs+=(
+ -DUSE_LUAJIT=ON
+ )
+ else
+ mycmakeargs+=(
+ -DUSE_LUAJIT=OFF
+ -DLua_FIND_VERSION_MAJOR=$(ver_cut 1 $(lua_get_version))
+ -DLua_FIND_VERSION_MINOR=$(ver_cut 2 $(lua_get_version))
+ -DLua_FIND_VERSION_COUNT=2
+ -DLua_FIND_VERSION_EXACT=ON
+ )
+ fi
+
+ if use test ; then
+ mkdir -p "${BUILD_DIR}"/apps/openmw_test_suite/data || die
+ cp "${DISTDIR}"/openmw-template-${MY_TEMPLATE_COMMIT}.omwgame \
+ "${BUILD_DIR}"/apps/openmw_test_suite/data/template.omwgame || die
+ fi
+
cmake_src_configure
}
@@ -116,14 +134,22 @@ src_compile() {
if use doc ; then
cmake_src_compile doc
- find "${CMAKE_BUILD_DIR}"/docs/Doxygen/html \
+ find "${BUILD_DIR}"/docs/Doxygen/html \
-name '*.md5' -type f -delete || die
- HTML_DOCS=( "${CMAKE_BUILD_DIR}"/docs/Doxygen/html/. )
+ HTML_DOCS=( "${BUILD_DIR}"/docs/Doxygen/html/. )
fi
}
src_test() {
- "${BUILD_DIR}/openmw_test_suite" || die
+ # Lua 5.x is supported in theory, but don't work as well, the test fails
+ # Upstream recommends luajit, but it has less arch coverage
+ if [[ ${ELUA} != luajit ]]; then
+ elog "Skipping tests on ${ELUA}"
+ return
+ fi
+ pushd "${BUILD_DIR}" > /dev/null || die
+ ./openmw_test_suite || die
+ popd > /dev/null || die
}
src_install() {
@@ -137,7 +163,7 @@ src_install() {
directly).\n"
if ! use qt5; then
- local DOC_CONTENTS+="\n\n
+ DOC_CONTENTS+="\n\n
USE flag 'qt5' is disabled, 'openmw-launcher' and
'openmw-wizard' are not available. You are on your own for
making the Morrowind data files available and pointing
@@ -153,10 +179,6 @@ src_install() {
}
pkg_postinst() {
- xdg_icon_cache_update
+ xdg_pkg_postinst
readme.gentoo_print_elog
}
-
-pkg_postrm() {
- xdg_icon_cache_update
-}
diff --git a/games-engines/openmw/openmw-9999.ebuild b/games-engines/openmw/openmw-9999.ebuild
index 7e624ccea45f..b1a63beee240 100644
--- a/games-engines/openmw/openmw-9999.ebuild
+++ b/games-engines/openmw/openmw-9999.ebuild
@@ -1,9 +1,10 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit cmake flag-o-matic xdg-utils readme.gentoo-r1
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+inherit cmake lua-single readme.gentoo-r1 xdg
DESCRIPTION="Open source reimplementation of TES III: Morrowind"
HOMEPAGE="https://openmw.org/ https://gitlab.com/OpenMW/openmw"
@@ -13,31 +14,40 @@ if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/OpenMW/openmw.git"
else
SRC_URI="https://github.com/OpenMW/openmw/archive/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="~amd64 ~arm64 ~x86"
S="${WORKDIR}/${PN}-${P}"
fi
+MY_TEMPLATE_COMMIT="8966dab24692555eec720c854fb0f73d108070cd"
+SRC_URI+="
+ test? ( https://gitlab.com/OpenMW/example-suite/-/raw/${MY_TEMPLATE_COMMIT}/data/template.omwgame -> openmw-template-${MY_TEMPLATE_COMMIT}.omwgame )
+"
+
LICENSE="GPL-3 MIT BitstreamVera ZLIB"
SLOT="0"
IUSE="doc devtools +osg-fork test +qt5"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
RESTRICT="!test? ( test )"
# FIXME: Unbundle dev-games/openscenegraph-qt in extern/osgQt directory,
# used when BUILD_OPENCS flag is enabled. See bug #676266.
-RDEPEND="
- app-arch/lz4
- dev-games/mygui
- dev-games/recastnavigation
- dev-libs/boost:=[threads,zlib]
+RDEPEND="${LUA_DEPS}
+ app-arch/lz4:=
+ >=dev-games/mygui-3.4.3:=
+ dev-cpp/yaml-cpp:=
+ dev-db/sqlite:3
+ dev-games/recastnavigation:=
+ dev-libs/boost:=[zlib]
+ dev-libs/icu:=
dev-libs/tinyxml[stl]
media-libs/libsdl2[joystick,opengl,video]
media-libs/openal
media-video/ffmpeg:=
>=sci-physics/bullet-2.86:=[double-precision]
virtual/opengl
- osg-fork? ( dev-games/openscenegraph-openmw:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] )
- !osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] )
+ osg-fork? ( >=dev-games/openscenegraph-openmw-3.6:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
+ !osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[collada(-),jpeg,png,sdl,svg,truetype,zlib] )
qt5? (
app-arch/unshield
dev-qt/qtcore:5
@@ -48,12 +58,14 @@ RDEPEND="
)
"
-DEPEND="${RDEPEND}"
+DEPEND="${RDEPEND}
+ dev-cpp/sol2
+"
BDEPEND="
virtual/pkgconfig
doc? (
- app-doc/doxygen[doc]
+ app-text/doxygen[dot]
dev-python/sphinx
)
test? (
@@ -61,23 +73,18 @@ BDEPEND="
)
"
-PATCHES=(
- "${FILESDIR}"/openmw-0.47.0-mygui-license.patch
-)
-
src_prepare() {
cmake_src_prepare
# Use the system tinyxml headers
rm -v extern/oics/tiny{str,xml}* || die
+ rm -rv extern/sol3 || die
}
src_configure() {
- use devtools && ! use qt5 && \
+ use devtools && ! use qt5 &&
elog "'qt5' USE flag is disabled, 'openmw-cs' will not be installed"
- append-cxxflags "-I${EPREFIX}/usr/include/recastnavigation"
-
local mycmakeargs=(
-DBUILD_BSATOOL=$(usex devtools)
-DBUILD_DOCS=$(usex doc)
@@ -89,13 +96,31 @@ src_configure() {
-DBUILD_UNITTESTS=$(usex test)
-DGLOBAL_DATA_PATH="${EPREFIX}/usr/share"
-DICONDIR="${EPREFIX}/usr/share/icons/hicolor/256x256/apps"
- -DMORROWIND_DATA_FILES="${EPREFIX}/usr/share/morrowind-data"
-DUSE_SYSTEM_TINYXML=ON
+ -DOPENMW_USE_SYSTEM_GOOGLETEST=ON
-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON
- -DDESIRED_QT_VERSION=5
- -DBULLET_USE_DOUBLES=ON
)
+ if [[ ${ELUA} == luajit ]]; then
+ mycmakeargs+=(
+ -DUSE_LUAJIT=ON
+ )
+ else
+ mycmakeargs+=(
+ -DUSE_LUAJIT=OFF
+ -DLua_FIND_VERSION_MAJOR=$(ver_cut 1 $(lua_get_version))
+ -DLua_FIND_VERSION_MINOR=$(ver_cut 2 $(lua_get_version))
+ -DLua_FIND_VERSION_COUNT=2
+ -DLua_FIND_VERSION_EXACT=ON
+ )
+ fi
+
+ if use test ; then
+ mkdir -p "${BUILD_DIR}"/apps/openmw_test_suite/data || die
+ cp "${DISTDIR}"/openmw-template-${MY_TEMPLATE_COMMIT}.omwgame \
+ "${BUILD_DIR}"/apps/openmw_test_suite/data/template.omwgame || die
+ fi
+
cmake_src_configure
}
@@ -104,14 +129,22 @@ src_compile() {
if use doc ; then
cmake_src_compile doc
- find "${CMAKE_BUILD_DIR}"/docs/Doxygen/html \
+ find "${BUILD_DIR}"/docs/Doxygen/html \
-name '*.md5' -type f -delete || die
- HTML_DOCS=( "${CMAKE_BUILD_DIR}"/docs/Doxygen/html/. )
+ HTML_DOCS=( "${BUILD_DIR}"/docs/Doxygen/html/. )
fi
}
src_test() {
- "${BUILD_DIR}/openmw_test_suite" || die
+ # Lua 5.x is supported in theory, but don't work as well, the test fails
+ # Upstream recommends luajit, but it has less arch coverage
+ if [[ ${ELUA} != luajit ]]; then
+ elog "Skipping tests on ${ELUA}"
+ return
+ fi
+ pushd "${BUILD_DIR}" > /dev/null || die
+ ./openmw_test_suite || die
+ popd > /dev/null || die
}
src_install() {
@@ -125,7 +158,7 @@ src_install() {
directly).\n"
if ! use qt5; then
- local DOC_CONTENTS+="\n\n
+ DOC_CONTENTS+="\n\n
USE flag 'qt5' is disabled, 'openmw-launcher' and
'openmw-wizard' are not available. You are on your own for
making the Morrowind data files available and pointing
@@ -141,10 +174,6 @@ src_install() {
}
pkg_postinst() {
- xdg_icon_cache_update
+ xdg_pkg_postinst
readme.gentoo_print_elog
}
-
-pkg_postrm() {
- xdg_icon_cache_update
-}
diff --git a/games-engines/openxcom/files/openxcom-9999-mandir.patch b/games-engines/openxcom/files/openxcom-9999-mandir.patch
deleted file mode 100644
index 44d01fae9fe8..000000000000
--- a/games-engines/openxcom/files/openxcom-9999-mandir.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/docs/CMakeLists.txt 2021-02-27 13:15:37.168240019 +0100
-+++ b/docs/CMakeLists.txt 2021-02-27 13:16:28.640486232 +0100
-@@ -38,5 +38,5 @@
-
- # Only useful for make install/package under *nix OSes, but not macOS.
- if ( UNIX AND NOT APPLE )
-- INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/openxcom.6 DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man6)
-+ INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/openxcom.6 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man6)
- endif ()
diff --git a/games-engines/openxcom/metadata.xml b/games-engines/openxcom/metadata.xml
index 86822013a1c2..d22a7e2d7783 100644
--- a/games-engines/openxcom/metadata.xml
+++ b/games-engines/openxcom/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
diff --git a/games-engines/openxcom/openxcom-1.0.0_p20180317-r1.ebuild b/games-engines/openxcom/openxcom-1.0.0_p20180317-r1.ebuild
index 699360f3785c..4263c5e3fec0 100644
--- a/games-engines/openxcom/openxcom-1.0.0_p20180317-r1.ebuild
+++ b/games-engines/openxcom/openxcom-1.0.0_p20180317-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -29,7 +29,7 @@ RDEPEND="
media-libs/sdl-image[png]
media-libs/sdl-mixer[flac,mikmod,vorbis]"
DEPEND="${RDEPEND}"
-BDEPEND="doc? ( app-doc/doxygen )"
+BDEPEND="doc? ( app-text/doxygen )"
DOCS=( README.md )
diff --git a/games-engines/openxcom/openxcom-9999.ebuild b/games-engines/openxcom/openxcom-9999.ebuild
index 511bec55bed0..4263c5e3fec0 100644
--- a/games-engines/openxcom/openxcom-9999.ebuild
+++ b/games-engines/openxcom/openxcom-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -29,12 +29,10 @@ RDEPEND="
media-libs/sdl-image[png]
media-libs/sdl-mixer[flac,mikmod,vorbis]"
DEPEND="${RDEPEND}"
-BDEPEND="doc? ( app-doc/doxygen )"
+BDEPEND="doc? ( app-text/doxygen )"
DOCS=( README.md )
-PATCHES=( "${FILESDIR}/${P}-mandir.patch" ) # TODO: GNUInstallDirs
-
src_compile() {
cmake_src_compile
use doc && cmake_build doxygen
diff --git a/games-engines/qtads/Manifest b/games-engines/qtads/Manifest
index daf58a6dddc8..0136951ebe1a 100644
--- a/games-engines/qtads/Manifest
+++ b/games-engines/qtads/Manifest
@@ -1 +1 @@
-DIST qtads-3.0.0-source.tar.xz 5325048 BLAKE2B cb60908e71edb32157638891a58bed83aba01d484821473716c17845094be9232f9e989bad474db27c1e06734b073ee301756b0528ca880e4c40c0994e95bc48 SHA512 e7b72350876475e0b5b9b8c8c953aa380f5f25dade25785d15c5004a6866bb614c3ca2a3b34f84989013e350f9e73d339ce8ddd7d36766d80a981cfbfda7d1c6
+DIST qtads-3.3.0-source.tar.xz 6085960 BLAKE2B 516d9c38c1bed36d88f60ef746f1f8b7a82db14505e640c0d3024995a74c9efb68e7783111007db6ca7a2b6adbf7e5b96b6b1e7db1c0cce6441436e1ca81381b SHA512 7e2a647fc4bb81e9784a0b05b3fdee3e6306767aebd32466f6451dc8b2e0f61e01a5657d0bfb8ba091bdd8365c9fed4fd2ab5cd2a27bf5403a5192d42472f7b2
diff --git a/games-engines/qtads/metadata.xml b/games-engines/qtads/metadata.xml
index 33b59db35f14..26907f3e8124 100644
--- a/games-engines/qtads/metadata.xml
+++ b/games-engines/qtads/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
diff --git a/games-engines/qtads/qtads-3.0.0.ebuild b/games-engines/qtads/qtads-3.3.0-r1.ebuild
index 57d338defea2..1df8c43516c6 100644
--- a/games-engines/qtads/qtads-3.0.0.ebuild
+++ b/games-engines/qtads/qtads-3.3.0-r1.ebuild
@@ -1,7 +1,8 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
+
inherit qmake-utils xdg
DESCRIPTION="Multimedia interpreter for TADS text adventures"
@@ -18,9 +19,11 @@ BDEPEND="
"
DEPEND="
dev-qt/qtcore:5
- dev-qt/qtgui:5
+ dev-qt/qtgui:5[jpeg,png]
+ dev-qt/qtimageformats:5[mng]
dev-qt/qtnetwork:5[ssl]
- dev-qt/qtwidgets:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5[png]
sound? (
media-libs/libsdl2[sound]
media-libs/libsndfile
@@ -29,12 +32,13 @@ DEPEND="
media-sound/mpg123
)
"
-RDEPEND=${DEPEND}
+RDEPEND="${DEPEND}"
src_configure() {
eqmake5 \
PREFIX="${EPREFIX}/usr" \
- $(usex !sound CONFIG+=disable-audio '') \
+ DOCDIR="${EPREFIX}/usr/share/${PF}" \
+ $(usev !sound CONFIG+=disable-audio) \
-after CONFIG-=silent
}
diff --git a/games-engines/residualvm/Manifest b/games-engines/residualvm/Manifest
deleted file mode 100644
index 3aa86f9db791..000000000000
--- a/games-engines/residualvm/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST residualvm-0.2.1-sources.tar.bz2 5533814 BLAKE2B befcb42c823d31ff1e8793d0c902bfdf6b3728530c97b3f43ada5d3b2903a0cddba3247095d1674e62cdd75a6db28a7a5f3b1437e5c39cb5eccb37dff9d52fad SHA512 9eed93770ef1ad828934c32e937b861c93f1ebbb0d936f3f56668e654588f734dc88e29446f0a69f8f26475e96b8ce7ca85318758b99aabc9586756692c721da
-DIST residualvm-0.3.1-sources.tar.bz2 6711799 BLAKE2B 93d21bc5ee2c567b1ef256a69a2634761cd52211a0b2d926edc67b65e0cc1bf23b41c91225e6d43990d61e6c3761acf19defaa9b477ad882d332ad77c71af1a6 SHA512 491a77f1775718795d93f099fa39ec5888755ac1df610089c17209334b98ae783271078ed03a61ced09835aa327446804a55522d4b83f618dd3b843c231444a0
diff --git a/games-engines/residualvm/files/residualvm-0.3.1-freetype_pkgconfig.patch b/games-engines/residualvm/files/residualvm-0.3.1-freetype_pkgconfig.patch
deleted file mode 100644
index 41468ebf2b13..000000000000
--- a/games-engines/residualvm/files/residualvm-0.3.1-freetype_pkgconfig.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From 34fc21424803ad193532c8423049ad07131fd7db Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Sun, 6 May 2018 20:55:29 +0200
-Subject: [PATCH 1/2] BUILD: Prefer pkg-config over freetype-config if possible
-
-As of freetype-2.9.1 the freetype-config script no longer gets installed
-by default.
----
- configure | 47 ++++++++++++++++++++++++++++++++++++++---------
- 1 file changed, 38 insertions(+), 9 deletions(-)
-
-diff --git a/configure b/configure
-index 7e0c9300..0a00cd95 100755
---- a/configure
-+++ b/configure
-@@ -209,6 +209,7 @@ _sparklepath=
- _sdlconfig=sdl2-config
- _libcurlconfig=curl-config
- _freetypeconfig=freetype-config
-+_freetype_found="false"
- _sdlpath="$PATH"
- _freetypepath="$PATH"
- _libcurlpath="$PATH"
-@@ -4529,17 +4530,45 @@ echo "$_libunity"
- #
- # Check for FreeType2 to be present
- #
--if test "$_freetype2" != "no"; then
--
-- # Look for the freetype-config script
-- find_freetypeconfig
-+find_freetype() {
-+ # Wrapper function which tries to find freetype
-+ # either by callimg freetype-config or by using
-+ # pkg-config.
-+ # As of freetype-2.9.1 the freetype-config file
-+ # no longer gets installed by default.
-+
-+ if pkg-config --exists freetype2; then
-+ FREETYPE2_LIBS=`pkg-config --libs freetype2`
-+ FREETYPE2_CFLAGS=`pkg-config --cflags freetype2`
-+ FREETYPE2_STATIC_LIBS=`pkg-config --static --libs freetype2`
-+ _freetype_found="true"
-+ else
-+ # Look for the freetype-config script
-+ find_freetypeconfig
-+ if test -n "$_freetypeconfig"; then
-+ # Since 2.3.12, freetype-config prepends $SYSROOT to everything.
-+ # This means we can't pass it a --prefix that includes $SYSROOT.
-+ freetypeprefix="$_freetypepath"
-+ if test -n "$SYSROOT" -a "$SYSROOT" != "/"; then
-+ teststring=VeryImplausibleSysrootX1Y2Z3
-+ if ( env SYSROOT=/$teststring "$_freetypeconfig" --cflags | grep $teststring 2> /dev/null > /dev/null ); then
-+ echo "Adapting FreeType prefix to SYSROOT" >> "$TMPLOG"
-+ freetypeprefix="${freetypeprefix##$SYSROOT}"
-+ fi
-+ fi
-+ FREETYPE2_LIBS=`$_freetypeconfig --prefix="$freetypeprefix" --libs`
-+ FREETYPE2_CFLAGS=`$_freetypeconfig --prefix="$freetypeprefix" --cflags`
-+ FREETYPE2_STATIC_LIBS=`$_freetypeconfig --prefix="$freetypeprefix" --static --libs 2>/dev/null`
-+ _freetype_found="true"
-+ fi
-+ fi
-+}
-
-- if test -z "$_freetypeconfig"; then
-+if test "$_freetype2" != "no"; then
-+ find_freetype
-+ if test $_freetype_found != true; then
- _freetype2=no
- else
-- FREETYPE2_LIBS=`$_freetypeconfig --prefix="$_freetypepath" --libs`
-- FREETYPE2_CFLAGS=`$_freetypeconfig --prefix="$_freetypepath" --cflags`
--
- if test "$_freetype2" = "auto"; then
- _freetype2=no
-
-@@ -4559,7 +4588,7 @@ EOF
- # required flags for static linking. We abuse this to detect
- # FreeType2 builds which are static themselves.
- if test "$_freetype2" != "yes"; then
-- FREETYPE2_LIBS=`$_freetypeconfig --prefix="$_freetypepath" --static --libs 2>/dev/null`
-+ FREETYPE2_LIBS="$FREETYPE2_STATIC_LIBS"
- cc_check_no_clean $FREETYPE2_CFLAGS $FREETYPE2_LIBS && _freetype2=yes
- fi
- cc_check_clean
---
-2.21.0
-
-From c42f90595efae54e661293832bf979f3029599fb Mon Sep 17 00:00:00 2001
-From: Bastien Bouclet <bastien.bouclet@gmail.com>
-Date: Mon, 30 Jul 2018 13:40:55 +0200
-Subject: [PATCH 2/2] BUILD: Check if pkg-config is available
-
----
- configure | 19 +++++++++++++++----
- 1 file changed, 15 insertions(+), 4 deletions(-)
-
-diff --git a/configure b/configure
-index 0a00cd95..198c1938 100755
---- a/configure
-+++ b/configure
-@@ -3866,7 +3866,19 @@ EOF
- cc_check -lm && append_var LIBS "-lm"
-
- #
--# Check for Ogg Vorbis
-+# Check for pkg-config
-+#
-+echocheck "pkg-config"
-+_pkg_config=no
-+command -v pkg-config >/dev/null 2>&1 && _pkg_config=yes
-+echo "$_pkg_config"
-+
-+if test "$_pkg_config" = yes && test -n "$_host" && test -z "$PKG_CONFIG_LIBDIR"; then
-+ echo "WARNING: When cross-compiling PKG_CONFIG_LIBDIR must be set to the location of the .pc files for the target"
-+fi
-+
-+#
-+# Check for Ogg
- #
- echocheck "Ogg Vorbis"
- if test "$_vorbis" = auto ; then
-@@ -4490,7 +4502,7 @@ define_in_config_h_if_yes "$_text_console" 'USE_TEXT_CONSOLE_FOR_DEBUGGER'
- # Check for Unity if taskbar integration is enabled
- #
- echocheck "libunity"
--if test "$_unix" = no || test "$_taskbar" = no; then
-+if test "$_unix" = no || test "$_taskbar" = no || test "$_pkg_config" = no; then
- _libunity=no
- else
- if test "$_libunity" = auto ; then
-@@ -4536,8 +4548,7 @@ find_freetype() {
- # pkg-config.
- # As of freetype-2.9.1 the freetype-config file
- # no longer gets installed by default.
--
-- if pkg-config --exists freetype2; then
-+ if test "$_pkg_config" = "yes" && pkg-config --exists freetype2; then
- FREETYPE2_LIBS=`pkg-config --libs freetype2`
- FREETYPE2_CFLAGS=`pkg-config --cflags freetype2`
- FREETYPE2_STATIC_LIBS=`pkg-config --static --libs freetype2`
---
-2.21.0
-
diff --git a/games-engines/residualvm/metadata.xml b/games-engines/residualvm/metadata.xml
deleted file mode 100644
index c5d960e91c76..000000000000
--- a/games-engines/residualvm/metadata.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>games@gentoo.org</email>
- <name>Gentoo Games Project</name>
- </maintainer>
- <use>
- <flag name="mpeg2">enable mpeg2 codec for cutscenes</flag>
- </use>
- <upstream>
- <remote-id type="sourceforge">residualvm</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/games-engines/residualvm/residualvm-0.2.1-r1.ebuild b/games-engines/residualvm/residualvm-0.2.1-r1.ebuild
deleted file mode 100644
index a9272195b281..000000000000
--- a/games-engines/residualvm/residualvm-0.2.1-r1.ebuild
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit desktop toolchain-funcs gnome2-utils
-
-DESCRIPTION="A cross-platform 3D game interpreter for play LucasArts' LUA-based 3D adventures"
-HOMEPAGE="https://www.residualvm.org/"
-SRC_URI="mirror://sourceforge/${PN}/${P}-sources.tar.bz2"
-
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-# TODO: fix dynamic plugin support
-# games crash without media-libs/libsdl[alsa]
-RDEPEND="
- media-libs/alsa-lib
- media-libs/freetype:2
- media-libs/libsdl[X,sound,alsa,joystick,opengl,video]
- sys-libs/zlib
- virtual/glu
- virtual/opengl"
-DEPEND="${RDEPEND}"
-
-src_configure() {
- # not an autotools script
- # most configure options currently do nothing, verify on version bump !!!
- # disable explicitly, otherwise we get unneeded linkage (some copy-paste build system)
- ./configure \
- --backend=sdl \
- --disable-debug \
- --disable-faad \
- --disable-flac \
- --disable-fluidsynth \
- --disable-libunity \
- --disable-mad \
- --disable-sparkle \
- --disable-translation \
- --disable-tremor \
- --disable-vorbis \
- --docdir="/usr/share/doc/${PF}" \
- --enable-all-engines \
- --enable-release-mode \
- --enable-zlib \
- || die "configure failed"
-}
-
-src_compile() {
- emake \
- VERBOSE_BUILD=1 \
- AR="$(tc-getAR) cru" \
- RANLIB=$(tc-getRANLIB)
-}
-
-src_install() {
- dobin residualvm
-
- insinto "/usr/share/${PN}"
- doins gui/themes/modern.zip dists/engine-data/residualvm-grim-patch.lab
-
- doicon -s scalable icons/${PN}.svg
- doicon -s 256 icons/${PN}.png
- domenu dists/${PN}.desktop
-
- doman dists/${PN}.6
- dodoc AUTHORS README.md KNOWN_BUGS TODO
-}
-
-pkg_preinst() {
- gnome2_icon_savelist
-}
-
-pkg_postinst() {
- gnome2_icon_cache_update
-}
-
-pkg_postrm() {
- gnome2_icon_cache_update
-}
diff --git a/games-engines/residualvm/residualvm-0.3.1-r2.ebuild b/games-engines/residualvm/residualvm-0.3.1-r2.ebuild
deleted file mode 100644
index 43512e6b067d..000000000000
--- a/games-engines/residualvm/residualvm-0.3.1-r2.ebuild
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit desktop toolchain-funcs xdg
-
-DESCRIPTION="A cross-platform 3D game interpreter for play LucasArts' LUA-based 3D adventures"
-HOMEPAGE="https://www.residualvm.org/"
-if [[ "${PV}" = 9999* ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/residualvm/residualvm.git"
-else
- SRC_URI="https://www.residualvm.org/downloads/release/${PV}/${P}-sources.tar.bz2"
- KEYWORDS="~amd64 ~x86"
-fi
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0"
-IUSE="alsa debug jpeg mpeg2 mp3 opengl png truetype vorbis zlib"
-
-# TODO: fix dynamic plugin support
-# games crash without media-libs/libsdl[alsa]
-RDEPEND="
- media-libs/glew:0=
- media-libs/libsdl2[X,sound,alsa,joystick,opengl,video]
- virtual/glu
- alsa? ( media-libs/alsa-lib )
- jpeg? ( virtual/jpeg:0 )
- mp3? ( media-libs/libmad )
- mpeg2? ( media-libs/libmpeg2 )
- opengl? ( virtual/opengl )
- png? ( media-libs/libpng:0= )
- truetype? ( media-libs/freetype:2 )
- vorbis? ( media-libs/libvorbis )
- zlib? ( sys-libs/zlib:= )
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}"/${P}-freetype_pkgconfig.patch
-)
-
-src_configure() {
- # not an autotools script
- # some configure options currently do nothing, verify on version bump !!!
- # disable explicitly, otherwise we get unneeded linkage (some copy-paste build system)
- local myconf=(
- --backend=sdl
- --disable-faad
- --disable-flac
- --disable-fluidsynth
- --disable-libunity
- --disable-sparkle
- --disable-tremor
- --docdir="/usr/share/doc/${PF}"
- --enable-all-engines
- --enable-verbose-build
- --libdir="${EPREFIX}/usr/$(get_libdir)"
- --host="${CHOST}"
- --prefix="${EPREFIX}/usr"
- $(use_enable alsa)
- $(use_enable debug)
- $(use_enable !debug release-mode)
- $(use_enable jpeg)
- $(use_enable mp3 mad)
- $(use_enable mpeg2)
- $(use_enable opengl)
- $(use_enable opengl opengl-shaders)
- $(use_enable png)
- $(use_enable truetype freetype2)
- $(use_enable vorbis)
- $(use_enable zlib)
- )
- ./configure "${myconf[@]}" "${EXTRA_ECONF}" || die
-}
-
-src_compile() {
- emake AR="$(tc-getAR) cru" RANLIB=$(tc-getRANLIB)
-}
-
-src_install() {
- default
- doicon -s 256 icons/${PN}.png
-}
-
-pkg_preinst() {
- xdg_pkg_preinst
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
-}
diff --git a/games-engines/residualvm/residualvm-9999.ebuild b/games-engines/residualvm/residualvm-9999.ebuild
deleted file mode 100644
index 18b1a8d14d7c..000000000000
--- a/games-engines/residualvm/residualvm-9999.ebuild
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit desktop toolchain-funcs xdg
-
-DESCRIPTION="A cross-platform 3D game interpreter for play LucasArts' LUA-based 3D adventures"
-HOMEPAGE="https://www.residualvm.org/"
-if [[ "${PV}" = 9999* ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/residualvm/residualvm.git"
-else
- SRC_URI="https://www.residualvm.org/downloads/release/${PV}/${P}-sources.tar.bz2"
- KEYWORDS="~amd64 ~x86"
-fi
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0"
-IUSE="alsa debug jpeg mpeg2 mp3 opengl png truetype vorbis zlib"
-
-# TODO: fix dynamic plugin support
-# games crash without media-libs/libsdl2[alsa]
-RDEPEND="
- media-libs/glew:0=
- media-libs/libsdl2[X,sound,alsa,joystick,opengl,video]
- virtual/glu
- alsa? ( media-libs/alsa-lib )
- jpeg? ( virtual/jpeg:0 )
- mp3? ( media-libs/libmad )
- mpeg2? ( media-libs/libmpeg2 )
- opengl? ( virtual/opengl )
- png? ( media-libs/libpng:0= )
- truetype? ( media-libs/freetype:2 )
- vorbis? ( media-libs/libvorbis )
- zlib? ( sys-libs/zlib:= )
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
-"
-
-src_configure() {
- # not an autotools script
- # some configure options currently do nothing, verify on version bump !!!
- # disable explicitly, otherwise we get unneeded linkage (some copy-paste build system)
- local myconf=(
- --backend=sdl
- --disable-faad
- --disable-flac
- --disable-fluidsynth
- --disable-libunity
- --disable-sparkle
- --disable-tremor
- --docdir="/usr/share/doc/${PF}"
- --enable-all-engines
- --enable-verbose-build
- --libdir="${EPREFIX}/usr/$(get_libdir)"
- --host="${CHOST}"
- --prefix="${EPREFIX}/usr"
- $(use_enable alsa)
- $(use_enable debug)
- $(use_enable !debug release-mode)
- $(use_enable jpeg)
- $(use_enable mp3 mad)
- $(use_enable mpeg2)
- $(use_enable opengl)
- $(use_enable opengl opengl-shaders)
- $(use_enable png)
- $(use_enable truetype freetype2)
- $(use_enable vorbis)
- $(use_enable zlib)
- )
- ./configure "${myconf[@]}" "${EXTRA_ECONF}" || die
-}
-
-src_compile() {
- emake AR="$(tc-getAR) cru" RANLIB=$(tc-getRANLIB)
-}
-
-src_install() {
- default
- doicon -s 256 icons/${PN}.png
-}
diff --git a/games-engines/scrap-engine/Manifest b/games-engines/scrap-engine/Manifest
new file mode 100644
index 000000000000..588b62dcbad7
--- /dev/null
+++ b/games-engines/scrap-engine/Manifest
@@ -0,0 +1 @@
+DIST scrap-engine-1.2.0.gh.tar.gz 381529 BLAKE2B a482bc45900a4294be69e22308114fcdaa4a8bcaa22bce96e3436080ca7dbd2a546253ed8d1faefe2fa5c2ec57a2c6b2a63cbd7b42de39d9990968f9b34614d7 SHA512 5d1ec65eed4515e07f3c3a32f0423bcf41d7ba594508391024d22623f27d052464b5a3dc887b0ff6bea6c8f7d7fe54c30373460449b9977f0f95a9e2b1f978da
diff --git a/games-engines/scrap-engine/files/scrap-engine-tests.patch b/games-engines/scrap-engine/files/scrap-engine-tests.patch
new file mode 100644
index 000000000000..5e7960574094
--- /dev/null
+++ b/games-engines/scrap-engine/files/scrap-engine-tests.patch
@@ -0,0 +1,12 @@
+diff -Naur a/tests/scrap_bench.py b/tests/scrap_bench.py
+--- a/tests/scrap_bench.py 2022-01-05 17:13:26.000000000 +0000
++++ b/tests/scrap_bench.py 2022-06-24 14:33:10.215047579 +0100
+@@ -22,7 +22,7 @@
+ time2 = 0
+
+ b_map.show()
+- while True:
++ for _ in range(100):
+ time0 = time.time()
+ times += time2
+ for ob in rectangle.obs:
diff --git a/games-engines/nazghul/metadata.xml b/games-engines/scrap-engine/metadata.xml
index bdd8777f9e45..680b374c830b 100644
--- a/games-engines/nazghul/metadata.xml
+++ b/games-engines/scrap-engine/metadata.xml
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
<name>Gentoo Games Project</name>
</maintainer>
<upstream>
- <remote-id type="sourceforge">nazghul</remote-id>
+ <remote-id type="github">lxgr-linux/scrap_engine</remote-id>
+ <remote-id type="pypi">scrap-engine</remote-id>
</upstream>
</pkgmetadata>
diff --git a/games-engines/scrap-engine/scrap-engine-1.2.0.ebuild b/games-engines/scrap-engine/scrap-engine-1.2.0.ebuild
new file mode 100644
index 000000000000..05b7700f5b2a
--- /dev/null
+++ b/games-engines/scrap-engine/scrap-engine-1.2.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1
+
+MY_PN="${PN//-/_}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Terminal-based Python game engine involving objects on a map"
+HOMEPAGE="https://github.com/lxgr-linux/scrap_engine"
+SRC_URI="https://github.com/lxgr-linux/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-tests.patch
+)
+
+DOCS=(
+ README.md
+ docs/DOCS.md
+ pics/example1.jpg
+)
+
+src_prepare() {
+ default
+
+ # PEP 517 needs this metadata.
+ echo "Version: ${PV}" > "${S}"/PKG-INFO || die
+
+ # Adjust doc resource paths.
+ sed -i "s:\.\./pics/::g" docs/DOCS.md || die
+}
+
+python_test() {
+ for TEST in "${S}"/tests/*.py; do
+ "${EPYTHON}" "${TEST}" || die
+ done
+}
diff --git a/games-engines/scummvm-tools/Manifest b/games-engines/scummvm-tools/Manifest
index 46d781ead79e..04fcb1ff0575 100644
--- a/games-engines/scummvm-tools/Manifest
+++ b/games-engines/scummvm-tools/Manifest
@@ -1,2 +1,4 @@
-DIST scummvm-tools-2.1.0.tar.xz 710124 BLAKE2B e6985c2e12a31aa9b11a80193186b101e663ce7eaf95de68639482bc82e104c879518f253c40e733c829ceb75b62d4905314cf7ad959766c4b7b49c1ee9e0136 SHA512 40e0b1a545257922dd1846d520ef0c18ef7a2682a3d7bb1709bcd49b1338ed7cefea438958941586329271d84e01bf189a14e31f5758e500df607d162ee9cc15
DIST scummvm-tools-2.2.0.tar.xz 712048 BLAKE2B bb5307ee25476c9b4042fa0704f8b9bbfc4a57c09670bc699c83b9d5ebb0a7b9cda55f7267aafa6ae57e3ce53993740a1523616e39cf0a2c0c7249b23208372e SHA512 97d23a94772809b6fe6dcfc4d1bde9e1a12c124cb49b0a465456adbbd56358a1612b9797abb9577dc350e1150fb4a70d4b7451e794c436c8e91692b4a83deb89
+DIST scummvm-tools-2.7.0.tar.xz 1286572 BLAKE2B bcb58267a9c04849ab3145f2d5a657b9e1ec6c2bb9e59bbf47ae6aae842385e70d0417f92ca4018786cf91f8c607a5fe1246f846dc496318b01ec51bd059358b SHA512 0f6541f86814a089b10969e8e0cc8c985ac4d3b5f15daf91869a9b9cc748d7b6c668ffd428c1f0726ff9a1fb5cc7b496098481778cbf41203a7eb3077a189ce7
+DIST scummvm-tools_2.7.0-1.debian.tar.xz 10212 BLAKE2B 9805222166f30d1535642958ac74984968dd19bfa3b7a159b61509215fd29d370a9393d0a25e4dfd041ee83feb9fffb55f5f705d76ac03de95d925718166c263 SHA512 f7234e58312f7979b9f87940020d9815429a24be6083e8ed61ef14c342c83edfb00f2f9d130e2a18b34099c3a20df3093556b017f28a40a1f8d8037ad8d99bed
+DIST scummvm-tools_512.png 56989 BLAKE2B 8173b580a542d78a4dcb859f8ba008af8f5dcd707c6213a3fc961dc5f8bbe02f3e67beafbaceff8ffb75a26d0a1c441642a103c1607b7c776b6da6c803545a47 SHA512 94d0cd2ccb7ac7ea1ca20ba208908ac05e064470f260e3347aec2aa457f1cf281c6bc88056e14001a1f93422f9cdfb732c53262d8067a4c487a57396b510fd7f
diff --git a/games-engines/scummvm-tools/files/scummvm-tools-2.2.0-strings.patch b/games-engines/scummvm-tools/files/scummvm-tools-2.2.0-strings.patch
new file mode 100644
index 000000000000..1bd3f9f399dc
--- /dev/null
+++ b/games-engines/scummvm-tools/files/scummvm-tools-2.2.0-strings.patch
@@ -0,0 +1,17 @@
+Fix build without native symlinks
+https://bugs.gentoo.org/744424
+
+--- a/configure
++++ b/configure
+@@ -1026,9 +1026,9 @@ void _ebcdic() { char* s = (char*) ebcdi
+ int main() { _ascii (); _ebcdic (); return 0; }
+ EOF
+ $CXX $CXXFLAGS -c -o $TMPO.o tmp_endianness_check.cpp
+-if strings $TMPO.o | grep BIGenDianSyS >/dev/null; then
++if ${STRINGS} $TMPO.o | grep BIGenDianSyS >/dev/null; then
+ _endian=big
+-elif strings $TMPO.o | grep LiTTleEnDian >/dev/null; then
++elif ${STRINGS} $TMPO.o | grep LiTTleEnDian >/dev/null; then
+ _endian=little
+ fi
+ echo $_endian;
diff --git a/games-engines/scummvm-tools/files/scummvm-tools-2.7.0-endianess.patch b/games-engines/scummvm-tools/files/scummvm-tools-2.7.0-endianess.patch
new file mode 100644
index 000000000000..6752914d2c2b
--- /dev/null
+++ b/games-engines/scummvm-tools/files/scummvm-tools-2.7.0-endianess.patch
@@ -0,0 +1,27 @@
+# https://src.fedoraproject.org/rpms/scummvm-tools/raw/rawhide/f/configure.patch
+diff -uNr scummvm-tools-2.5.0.old/configure scummvm-tools-2.5.0/configure
+--- scummvm-tools-2.5.0.old/configure 2021-10-01 13:59:48.000000000 +0200
++++ scummvm-tools-2.5.0/configure 2021-12-14 23:01:39.604582839 +0100
+@@ -1047,15 +1047,15 @@
+ #
+ echo_n "Checking endianness... "
+ cat > tmp_endianness_check.cpp << EOF
+-unsigned short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+-unsigned short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+-void _ascii() { char* s = (char*) ascii_mm; s = (char*) ascii_ii; }
+-unsigned short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+-unsigned short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+-void _ebcdic() { char* s = (char*) ebcdic_mm; s = (char*) ebcdic_ii; }
++__attribute__ ((used)) unsigned short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
++__attribute__ ((used)) unsigned short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
++__attribute__ ((used)) void _ascii() { char* s = (char*) ascii_mm; s = (char*) ascii_ii; }
++__attribute__ ((used)) unsigned short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
++__attribute__ ((used)) unsigned short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
++__attribute__ ((used)) void _ebcdic() { char* s = (char*) ebcdic_mm; s = (char*) ebcdic_ii; }
+ int main() { _ascii (); _ebcdic (); return 0; }
+ EOF
+-$CXX $CXXFLAGS -c -o $TMPO.o tmp_endianness_check.cpp
++$CXX $CXXFLAGS -ffat-lto-objects -c -o $TMPO.o tmp_endianness_check.cpp
+ if $_strings $TMPO.o | grep BIGenDianSyS >/dev/null; then
+ _endian=big
+ elif $_strings $TMPO.o | grep LiTTleEnDian >/dev/null; then
diff --git a/games-engines/scummvm-tools/metadata.xml b/games-engines/scummvm-tools/metadata.xml
index 801e2cc48963..798292735601 100644
--- a/games-engines/scummvm-tools/metadata.xml
+++ b/games-engines/scummvm-tools/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
@@ -8,4 +8,7 @@
<upstream>
<remote-id type="sourceforge">scummvm</remote-id>
</upstream>
+ <use>
+ <flag name="tremor">Enable tremor, a fixed-point version of the Ogg Vorbis decoder</flag>
+ </use>
</pkgmetadata>
diff --git a/games-engines/scummvm-tools/scummvm-tools-2.1.0.ebuild b/games-engines/scummvm-tools/scummvm-tools-2.1.0.ebuild
deleted file mode 100644
index 9920a02a2c51..000000000000
--- a/games-engines/scummvm-tools/scummvm-tools-2.1.0.ebuild
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-WX_GTK_VER=3.0-gtk3
-inherit wxwidgets
-
-DESCRIPTION="utilities for the SCUMM game engine"
-HOMEPAGE="http://scummvm.sourceforge.net/"
-SRC_URI="http://scummvm.org/frs/scummvm-tools/${PV}/${P}.tar.xz"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
-IUSE="flac iconv mad png vorbis"
-RESTRICT="test" # some tests require external files
-
-RDEPEND="
- >=dev-libs/boost-1.32:=
- sys-libs/zlib
- x11-libs/wxGTK:${WX_GTK_VER}
- flac? ( media-libs/flac )
- iconv? ( virtual/libiconv media-libs/freetype:2 )
- mad? ( media-libs/libmad )
- png? ( media-libs/libpng:0= )
- vorbis? ( media-libs/libvorbis )
-"
-DEPEND="
- ${RDEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.8.0-binprefix.patch"
-)
-
-src_prepare() {
- default
-
- rm -rf *.bat dists/win32 || die
- sed -ri -e '/^(CC|CXX)\b/d' Makefile || die
-}
-
-src_configure() {
- setup-wxwidgets
-
- # Not an autoconf script
- ./configure \
- --prefix=/usr \
- --disable-tremor \
- --enable-verbose-build \
- --mandir=/usr/share/man \
- $(use_enable flac) \
- $(use_enable iconv) \
- $(use_enable iconv freetype) \
- $(use_enable mad) \
- $(use_enable png) \
- $(use_enable vorbis) || die
-}
-
-src_install() {
- EXEPREFIX="${PN}-" default
-}
diff --git a/games-engines/scummvm-tools/scummvm-tools-2.2.0.ebuild b/games-engines/scummvm-tools/scummvm-tools-2.2.0-r1.ebuild
index c514a09b8b71..a11f5da1293a 100644
--- a/games-engines/scummvm-tools/scummvm-tools-2.2.0.ebuild
+++ b/games-engines/scummvm-tools/scummvm-tools-2.2.0-r1.ebuild
@@ -1,14 +1,14 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
WX_GTK_VER=3.0-gtk3
inherit wxwidgets toolchain-funcs
-DESCRIPTION="utilities for the SCUMM game engine"
-HOMEPAGE="http://scummvm.sourceforge.net/"
-SRC_URI="http://scummvm.org/frs/scummvm-tools/${PV}/${P}.tar.xz"
+DESCRIPTION="Utilities for the SCUMM game engine"
+HOMEPAGE="https://www.scummvm.org/"
+SRC_URI="https://www.scummvm.org/frs/scummvm-tools/${PV}/${P}.tar.xz"
LICENSE="GPL-2+"
SLOT="0"
@@ -17,13 +17,13 @@ IUSE="flac iconv mad png vorbis"
RESTRICT="test" # some tests require external files
RDEPEND="
- >=dev-libs/boost-1.32:=
+ dev-libs/boost:=
sys-libs/zlib
x11-libs/wxGTK:${WX_GTK_VER}
- flac? ( media-libs/flac )
+ flac? ( media-libs/flac:= )
iconv? ( virtual/libiconv media-libs/freetype:2 )
mad? ( media-libs/libmad )
- png? ( media-libs/libpng:0= )
+ png? ( media-libs/libpng:= )
vorbis? ( media-libs/libvorbis )
"
DEPEND="
@@ -35,17 +35,18 @@ BDEPEND="
PATCHES=(
"${FILESDIR}/${PN}-1.8.0-binprefix.patch"
+ "${FILESDIR}/${PN}-2.2.0-strings.patch"
)
src_prepare() {
default
- rm -rf *.bat dists/win32 || die
- sed -ri -e '/^(CC|CXX)\b/d' Makefile || die
+ rm -r *.bat dists/win32 || die
}
src_configure() {
setup-wxwidgets
+ tc-export CXX STRINGS
# Not an autoconf script
./configure \
@@ -61,10 +62,6 @@ src_configure() {
$(use_enable vorbis) || die
}
-src_compile() {
- emake STRINGS="$(tc-getSTRINGS)"
-}
-
src_install() {
EXEPREFIX="${PN}-" default
}
diff --git a/games-engines/scummvm-tools/scummvm-tools-2.7.0_p1.ebuild b/games-engines/scummvm-tools/scummvm-tools-2.7.0_p1.ebuild
new file mode 100644
index 000000000000..a07c2c9e3434
--- /dev/null
+++ b/games-engines/scummvm-tools/scummvm-tools-2.7.0_p1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+WX_GTK_VER="3.2-gtk3"
+
+inherit desktop flag-o-matic toolchain-funcs wxwidgets xdg
+
+DESCRIPTION="Utilities for the SCUMM game engine"
+HOMEPAGE="https://www.scummvm.org/"
+SRC_URI="https://www.scummvm.org/frs/scummvm-tools/${PV/_p*}/${P/_p*}.tar.xz
+ mirror://debian/pool/main/${PN:0:1}/${PN}/${PN}_${PV/_p*}-${PV/*_p}.debian.tar.xz
+ https://dev.gentoo.org/~pacho/${PN}/${PN}_512.png"
+S="${WORKDIR}/${P/_p*}"
+
+LICENSE="GPL-3+ LGPL-2+ MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="flac iconv mad png tremor vorbis"
+
+RDEPEND="
+ dev-libs/boost:=
+ sys-libs/zlib
+ x11-libs/wxGTK:${WX_GTK_VER}
+ flac? ( media-libs/flac:= )
+ iconv? (
+ virtual/libiconv
+ media-libs/freetype:2 )
+ mad? ( media-libs/libmad )
+ png? ( media-libs/libpng:= )
+ tremor? ( media-libs/tremor )
+ vorbis? ( media-libs/libvorbis )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ # Endianess patch synced with Fedora
+ "${FILESDIR}/${PN}-2.7.0-endianess.patch"
+)
+
+src_prepare() {
+ default
+
+ # Debian patches
+ for p in $(<"${WORKDIR}"/debian/patches/series) ; do
+ eapply -p1 "${WORKDIR}/debian/patches/${p}"
+ done
+}
+
+src_configure() {
+ # -Werror=strict-aliasing, -Werror=odr
+ # https://bugs.gentoo.org/926081
+ # https://bugs.scummvm.org/ticket/15039
+ append-flags -fno-strict-aliasing
+ filter-lto
+
+ setup-wxwidgets
+ tc-export CXX STRINGS
+
+ # Not an autoconf script
+ ./configure \
+ --enable-verbose-build \
+ --mandir="${EPREFIX}/usr/share/man" \
+ --prefix="${EPREFIX}/usr" \
+ $(use_enable flac) \
+ $(use_enable iconv) \
+ $(use_enable iconv freetype2) \
+ $(use_enable mad) \
+ $(use_enable png) \
+ $(use_enable tremor) \
+ $(use_enable vorbis) || die
+}
+
+src_install() {
+ default
+ cd "${ED}"/usr/bin || die
+ for i in $(ls * | grep -v scummvm-tools) ; do
+ mv ${i} ${PN}-${i} || die
+ done
+
+ make_desktop_entry ${PN} "ScummVM Tools" ${PN} "Game;AdventureGame;"
+ newicon -s 128 "${S}"/gui/media/scummvmtools_128.png ${PN}.png
+ newicon -s 512 "${DISTDIR}"/${PN}_512.png ${PN}.png
+}
diff --git a/games-engines/scummvm/Manifest b/games-engines/scummvm/Manifest
index 7dda4a664151..98935df3170b 100644
--- a/games-engines/scummvm/Manifest
+++ b/games-engines/scummvm/Manifest
@@ -1 +1,2 @@
-DIST scummvm-2.2.0.tar.xz 63652348 BLAKE2B b44a07d7ad6747b136465f81122464f02e5cc655c205d6f4424555311563f8ceaa8072972d05512af85d18fabba78d5ea9396ea314581776c1ef8d88ca6ab81b SHA512 001f884b9689386ef5b69ab8f5fa2362e1e4dc5e8273f96dc8dce1963be354a2fad95e724ff33d65008be7591519f0e2bac530ba3c44a449b8b7cac862f4f81e
+DIST scummvm-2.8.0.tar.xz 207362400 BLAKE2B 2e0354189bfa50b5af87c9019400c114c7fd3072afeb6cee50c230d27171ae109552c855b07f027769c10f6f325dafd77c56fa17b1c5a61b11ece3c1f54efe53 SHA512 e4e728a668fe3c1b161b56ff788011673766e7429bc27bafb2b4a7f724093b719f7fd47f0995f1db5dad42ecf3ee260fe51d549f85eb2a68862b799962c34632
+DIST scummvm-2.8.1.tar.xz 207711376 BLAKE2B 716503fbbd736e522918203400ccf777bc24a8e43c8c030c0e86d9c4f3c3da3f0c580269781fe030901e06854d43e2ed2f6ec9bc4e269c4d4dde8d3e08f494f2 SHA512 aef6c7b83f087cf0742dcd1f896f5706e2408e54c4c902e75f03e69f4c5475b1d33a2149246646afb96c02aa2e85ba93995dff732b3aa84338b7bc96c62b802c
diff --git a/games-engines/scummvm/files/scummvm-2.2.0-fluidsynth-2.2.patch b/games-engines/scummvm/files/scummvm-2.2.0-fluidsynth-2.2.patch
deleted file mode 100644
index 8bb94ec6ab6e..000000000000
--- a/games-engines/scummvm/files/scummvm-2.2.0-fluidsynth-2.2.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-diff --git a/audio/softsynth/fluidsynth.cpp b/audio/softsynth/fluidsynth.cpp
-index e0d7c4e3df..d8e82c24f5 100644
---- a/audio/softsynth/fluidsynth.cpp
-+++ b/audio/softsynth/fluidsynth.cpp
-@@ -46,6 +46,14 @@
- #include "backends/platform/ios7/ios7_common.h"
- #endif
-
-+// We assume here Fluidsynth minor will never be above 255 and
-+// that micro versions won't break API compatibility
-+#if defined(FLUIDSYNTH_VERSION_MAJOR) && defined(FLUIDSYNTH_VERSION_MINOR)
-+#define FS_API_VERSION ((FLUIDSYNTH_VERSION_MAJOR << 8) | FLUIDSYNTH_VERSION_MINOR)
-+#else
-+#define FS_API_VERSION 0
-+#endif
-+
- class MidiDriver_FluidSynth : public MidiDriver_Emulated {
- private:
- MidiChannel_MPU401 _midiChannels[16];
-@@ -75,7 +83,7 @@ public:
-
- void setEngineSoundFont(Common::SeekableReadStream *soundFontData) override;
- bool acceptsSoundFontData() override {
--#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
-+#if FS_API_VERSION >= 0x0200
- return true;
- #else
- return false;
-@@ -134,7 +142,7 @@ void MidiDriver_FluidSynth::setStr(const char *name, const char *val) {
-
- // Soundfont memory loader callback functions.
-
--#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
-+#if FS_API_VERSION >= 0x0200
- static void *SoundFontMemLoader_open(const char *filename) {
- void *p;
- if (filename[0] != '&') {
-@@ -144,11 +152,19 @@ static void *SoundFontMemLoader_open(const char *filename) {
- return p;
- }
-
-+#if FS_API_VERSION >= 0x0202
-+static int SoundFontMemLoader_read(void *buf, fluid_long_long_t count, void *handle) {
-+#else
- static int SoundFontMemLoader_read(void *buf, int count, void *handle) {
-+#endif
- return ((Common::SeekableReadStream *) handle)->read(buf, count) == (uint32)count ? FLUID_OK : FLUID_FAILED;
- }
-
-+#if FS_API_VERSION >= 0x0202
-+static int SoundFontMemLoader_seek(void *handle, fluid_long_long_t offset, int origin) {
-+#else
- static int SoundFontMemLoader_seek(void *handle, long offset, int origin) {
-+#endif
- return ((Common::SeekableReadStream *) handle)->seek(offset, origin) ? FLUID_OK : FLUID_FAILED;
- }
-
-@@ -157,7 +173,11 @@ static int SoundFontMemLoader_close(void *handle) {
- return FLUID_OK;
- }
-
-+#if FS_API_VERSION >= 0x0202
-+static fluid_long_long_t SoundFontMemLoader_tell(void *handle) {
-+#else
- static long SoundFontMemLoader_tell(void *handle) {
-+#endif
- return ((Common::SeekableReadStream *) handle)->pos();
- }
- #endif
-@@ -166,7 +186,8 @@ int MidiDriver_FluidSynth::open() {
- if (_isOpen)
- return MERR_ALREADY_OPEN;
-
--#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
-+
-+#if FS_API_VERSION >= 0x0200
- // When provided with in-memory SoundFont data, only use the configured
- // SoundFont instead if it's explicitly configured on the current game.
- bool isUsingInMemorySoundFontData = _engineSoundFontData && !ConfMan.getActiveDomain()->contains("soundfont");
-@@ -195,7 +216,11 @@ int MidiDriver_FluidSynth::open() {
- _synth = new_fluid_synth(_settings);
-
- if (ConfMan.getBool("fluidsynth_chorus_activate")) {
-+#if FS_API_VERSION >= 0x0202
-+ fluid_synth_chorus_on(_synth, -1, 1);
-+#else
- fluid_synth_set_chorus_on(_synth, 1);
-+#endif
-
- int chorusNr = ConfMan.getInt("fluidsynth_chorus_nr");
- double chorusLevel = (double)ConfMan.getInt("fluidsynth_chorus_level") / 100.0;
-@@ -210,22 +235,49 @@ int MidiDriver_FluidSynth::open() {
- chorusType = FLUID_CHORUS_MOD_TRIANGLE;
- }
-
-+#if FS_API_VERSION >= 0x0202
-+ fluid_synth_set_chorus_group_nr(_synth, -1, chorusNr);
-+ fluid_synth_set_chorus_group_level(_synth, -1, chorusLevel);
-+ fluid_synth_set_chorus_group_speed(_synth, -1, chorusSpeed);
-+ fluid_synth_set_chorus_group_depth(_synth, -1, chorusDepthMs);
-+ fluid_synth_set_chorus_group_type(_synth, -1, chorusType);
-+#else
- fluid_synth_set_chorus(_synth, chorusNr, chorusLevel, chorusSpeed, chorusDepthMs, chorusType);
-+#endif
- } else {
-+#if FS_API_VERSION >= 0x0202
-+ fluid_synth_chorus_on(_synth, -1, 0);
-+#else
- fluid_synth_set_chorus_on(_synth, 0);
-+#endif
- }
-
- if (ConfMan.getBool("fluidsynth_reverb_activate")) {
-+#if FS_API_VERSION >= 0x0202
-+ fluid_synth_reverb_on(_synth, -1, 1);
-+#else
- fluid_synth_set_reverb_on(_synth, 1);
-+#endif
-
- double reverbRoomSize = (double)ConfMan.getInt("fluidsynth_reverb_roomsize") / 100.0;
- double reverbDamping = (double)ConfMan.getInt("fluidsynth_reverb_damping") / 100.0;
- int reverbWidth = ConfMan.getInt("fluidsynth_reverb_width");
- double reverbLevel = (double)ConfMan.getInt("fluidsynth_reverb_level") / 100.0;
-
-+#if FS_API_VERSION >= 0x0202
-+ fluid_synth_set_reverb_group_roomsize(_synth, -1, reverbRoomSize);
-+ fluid_synth_set_reverb_group_damp(_synth, -1, reverbDamping);
-+ fluid_synth_set_reverb_group_width(_synth, -1, reverbWidth);
-+ fluid_synth_set_reverb_group_level(_synth, -1, reverbLevel);
-+#else
- fluid_synth_set_reverb(_synth, reverbRoomSize, reverbDamping, reverbWidth, reverbLevel);
-+#endif
- } else {
-+#if FS_API_VERSION >= 0x0202
-+ fluid_synth_reverb_on(_synth, -1, 0);
-+#else
- fluid_synth_set_reverb_on(_synth, 0);
-+#endif
- }
-
- Common::String interpolation = ConfMan.get("fluidsynth_misc_interpolation");
-@@ -246,7 +298,7 @@ int MidiDriver_FluidSynth::open() {
- const char *soundfont = !isUsingInMemorySoundFontData ?
- ConfMan.get("soundfont").c_str() : Common::String::format("&%p", (void *)_engineSoundFontData).c_str();
-
--#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
-+#if FS_API_VERSION >= 0x0200
- if (isUsingInMemorySoundFontData) {
- fluid_sfloader_t *soundFontMemoryLoader = new_fluid_defsfloader(_settings);
- fluid_sfloader_set_callbacks(soundFontMemoryLoader,
diff --git a/games-engines/scummvm/files/scummvm-2.2.0-ultima_engine_lua_dep.patch b/games-engines/scummvm/files/scummvm-2.2.0-ultima_engine_lua_dep.patch
deleted file mode 100644
index d73ad03820ea..000000000000
--- a/games-engines/scummvm/files/scummvm-2.2.0-ultima_engine_lua_dep.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-From d546389b10518eabd34fd5b4e22265069b25a966 Mon Sep 17 00:00:00 2001
-From: Paul Gilbert <dreammaster@scummvm.org>
-Date: Wed, 23 Sep 2020 19:10:17 -0700
-Subject: [PATCH] ULTIMA: Add lua as an engine dependency
-
----
- engines/ultima/configure.engine | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/engines/ultima/configure.engine b/engines/ultima/configure.engine
-index 6447e3eb7f96..704a79d1f61f 100644
---- a/engines/ultima/configure.engine
-+++ b/engines/ultima/configure.engine
-@@ -1,3 +1,3 @@
- # This file is included from the main "configure" script
- # add_engine [name] [desc] [build-by-default] [subengines] [base games] [deps]
--add_engine ultima "Ultima" yes "" "" "highres 16bit freetype2"
-+add_engine ultima "Ultima" yes "" "" "highres 16bit freetype2 lua"
diff --git a/games-engines/scummvm/metadata.xml b/games-engines/scummvm/metadata.xml
index dd278d4911d0..1e66116903bf 100644
--- a/games-engines/scummvm/metadata.xml
+++ b/games-engines/scummvm/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
@@ -12,10 +12,9 @@
<use>
<flag name="fluidsynth">compile with support for fluidsynth</flag>
<flag name="fribidi">Support for right-to-left languages via <pkg>dev-libs/fribidi</pkg></flag>
- <flag name="glew">enable support for OpenGL Extension Wrangler Library (<pkg>media-libs/glew</pkg>)</flag>
<flag name="mpeg2">enable mpeg2 codec for cutscenes</flag>
<flag name="net">enable cloud support via <pkg>media-libs/sdl2-net</pkg></flag>
- <flag name="speech">enable text-to-speech support through <pkg>app-accessibility/speech-dispatcher</pkg></flag>
+ <flag name="sndio">Enable support for MIDI music using <pkg>media-sound/sndio</pkg></flag>
<flag name="unsupported">enable unsupported and/or broken game engines (you're on your own)</flag>
</use>
<upstream>
diff --git a/games-engines/scummvm/scummvm-2.2.0-r1.ebuild b/games-engines/scummvm/scummvm-2.8.0.ebuild
index f4ab2f0515e9..4f5504d6ddf4 100644
--- a/games-engines/scummvm/scummvm-2.2.0-r1.ebuild
+++ b/games-engines/scummvm/scummvm-2.8.0.ebuild
@@ -1,41 +1,59 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit desktop flag-o-matic toolchain-funcs xdg
DESCRIPTION="Reimplementation of the SCUMM game engine used in Lucasarts adventures"
HOMEPAGE="https://www.scummvm.org/"
-SRC_URI="https://scummvm.org/frs/scummvm/${PV}/${P}.tar.xz"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/scummvm/scummvm"
+else
+ SRC_URI="https://downloads.scummvm.org/frs/scummvm/${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+ S=${WORKDIR}/${P/_/}
+fi
LICENSE="GPL-2+ LGPL-2.1 BSD GPL-3-with-font-exception"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86"
-IUSE="a52 aac alsa debug flac fluidsynth fribidi +gtk jpeg lua mpeg2 mp3 +net opengl png speech theora truetype unsupported vorbis zlib"
+IUSE="
+ a52 aac alsa debug flac fluidsynth fribidi gif +gtk jpeg lua mpeg2
+ mp3 +net opengl png sndio speech theora truetype unsupported vorbis
+ zlib
+"
RESTRICT="test" # it only looks like there's a test there #77507
-RDEPEND="
+DEPEND="
>=media-libs/libsdl2-2.0.0[sound,joystick,video]
a52? ( media-libs/a52dec )
aac? ( media-libs/faad2 )
alsa? ( media-libs/alsa-lib )
- flac? ( media-libs/flac )
+ flac? ( media-libs/flac:= )
fluidsynth? ( media-sound/fluidsynth:= )
fribidi? ( dev-libs/fribidi )
+ gif? ( media-libs/giflib )
gtk? (
dev-libs/glib:2
x11-libs/gtk+:3
)
- jpeg? ( virtual/jpeg:0 )
+ jpeg? ( media-libs/libjpeg-turbo:= )
mp3? ( media-libs/libmad )
mpeg2? ( media-libs/libmpeg2 )
- net? ( media-libs/sdl2-net )
- opengl? ( || (
- virtual/opengl
- media-libs/mesa[gles2]
- media-libs/mesa[gles1]
- ) )
+ net? (
+ media-libs/sdl2-net
+ net-misc/curl
+ )
+ opengl? (
+ || (
+ virtual/opengl
+ media-libs/mesa[gles2]
+ media-libs/mesa[gles1]
+ )
+ )
png? ( media-libs/libpng:0 )
+ sndio? ( media-sound/sndio:= )
speech? ( app-accessibility/speech-dispatcher )
truetype? ( media-libs/freetype:2 )
theora? ( media-libs/libtheora )
@@ -45,22 +63,17 @@ RDEPEND="
)
zlib? ( sys-libs/zlib:= )
"
-DEPEND="${RDEPEND}"
+RDEPEND="
+ ${DEPEND}
+"
BDEPEND="
app-arch/xz-utils
truetype? ( virtual/pkgconfig )
x86? ( dev-lang/nasm )
"
-S="${WORKDIR}/${P/_/}"
-
-PATCHES=(
- "${FILESDIR}/${P}-ultima_engine_lua_dep.patch"
- "${FILESDIR}/${P}-fluidsynth-2.2.patch"
-)
-
src_prepare() {
- xdg_src_prepare
+ default
# -g isn't needed for nasm here
sed -i \
@@ -75,6 +88,7 @@ src_prepare() {
src_configure() {
use x86 && append-ldflags -Wl,-z,noexecstack
+ tc-export STRINGS
local myconf=(
--backend=sdl
@@ -92,13 +106,16 @@ src_configure() {
$(use_enable flac)
$(usex fluidsynth '' --disable-fluidsynth)
$(use_enable fribidi)
+ $(use_enable gif)
$(use_enable gtk)
$(use_enable jpeg)
$(use_enable lua)
$(use_enable mp3 mad)
$(use_enable mpeg2)
+ $(use_enable net libcurl)
$(use_enable net sdlnet)
$(use_enable png)
+ $(use_enable sndio)
$(use_enable speech tts)
$(use_enable theora theoradec)
$(use_enable truetype freetype2)
@@ -108,16 +125,15 @@ src_configure() {
$(use_enable x86 nasm)
)
echo "configure ${myconf[@]}"
- # NOT AN AUTOCONF SCRIPT SO DONT CALL ECONF
+ # not an autoconf script, so don't call econf
SDL_CONFIG="sdl2-config" \
- ./configure "${myconf[@]}" "${EXTRA_ECONF}" || die
+ ./configure "${myconf[@]}" ${EXTRA_ECONF} || die
}
src_compile() {
emake \
AR="$(tc-getAR) cru" \
- RANLIB="$(tc-getRANLIB)" \
- STRINGS="$(tc-getSTRINGS)"
+ RANLIB="$(tc-getRANLIB)"
}
src_install() {
diff --git a/games-engines/scummvm/scummvm-2.8.1.ebuild b/games-engines/scummvm/scummvm-2.8.1.ebuild
new file mode 100644
index 000000000000..3690afa59cdb
--- /dev/null
+++ b/games-engines/scummvm/scummvm-2.8.1.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit desktop flag-o-matic toolchain-funcs xdg
+
+DESCRIPTION="Reimplementation of the SCUMM game engine used in Lucasarts adventures"
+HOMEPAGE="https://www.scummvm.org/"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/scummvm/scummvm"
+else
+ SRC_URI="https://downloads.scummvm.org/frs/scummvm/${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+ S=${WORKDIR}/${P/_/}
+fi
+
+LICENSE="GPL-2+ LGPL-2.1 BSD GPL-3-with-font-exception"
+SLOT="0"
+IUSE="
+ a52 aac alsa debug flac fluidsynth fribidi gif +gtk jpeg lua mpeg2
+ mp3 +net opengl png sndio speech theora truetype unsupported vorbis
+ zlib
+"
+RESTRICT="test" # it only looks like there's a test there #77507
+
+DEPEND="
+ >=media-libs/libsdl2-2.0.0[sound,joystick,video]
+ a52? ( media-libs/a52dec )
+ aac? ( media-libs/faad2 )
+ alsa? ( media-libs/alsa-lib )
+ flac? ( media-libs/flac:= )
+ fluidsynth? ( media-sound/fluidsynth:= )
+ fribidi? ( dev-libs/fribidi )
+ gif? ( media-libs/giflib )
+ gtk? (
+ dev-libs/glib:2
+ x11-libs/gtk+:3
+ )
+ jpeg? ( media-libs/libjpeg-turbo:= )
+ mp3? ( media-libs/libmad )
+ mpeg2? ( media-libs/libmpeg2 )
+ net? (
+ media-libs/sdl2-net
+ net-misc/curl
+ )
+ opengl? (
+ || (
+ virtual/opengl
+ media-libs/mesa[gles2]
+ media-libs/mesa[gles1]
+ )
+ )
+ png? ( media-libs/libpng:0 )
+ sndio? ( media-sound/sndio:= )
+ speech? ( app-accessibility/speech-dispatcher )
+ truetype? ( media-libs/freetype:2 )
+ theora? ( media-libs/libtheora )
+ vorbis? (
+ media-libs/libogg
+ media-libs/libvorbis
+ )
+ zlib? ( sys-libs/zlib:= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ app-arch/xz-utils
+ truetype? ( virtual/pkgconfig )
+ x86? ( dev-lang/nasm )
+"
+
+src_prepare() {
+ default
+
+ # -g isn't needed for nasm here
+ sed -i \
+ -e '/NASMFLAGS/ s/-g//' \
+ configure || die
+ sed -i \
+ -e '/INSTALL.*doc/d' \
+ -e '/INSTALL.*\/pixmaps/d' \
+ -e 's/-s //' \
+ ports.mk || die
+}
+
+src_configure() {
+ use x86 && append-ldflags -Wl,-z,noexecstack
+ tc-export STRINGS
+
+ local myconf=(
+ --backend=sdl
+ --host=${CHOST}
+ --enable-verbose-build
+ --prefix="${EPREFIX}/usr"
+ --libdir="${EPREFIX}/usr/$(get_libdir)"
+ --opengl-mode=$(usex opengl auto none)
+ --with-sdl-prefix="${EPREFIX}/usr"
+ $(use_enable a52)
+ $(use_enable aac faad)
+ $(use_enable alsa)
+ $(use_enable debug)
+ $(use_enable !debug release-mode)
+ $(use_enable flac)
+ $(usex fluidsynth '' --disable-fluidsynth)
+ $(use_enable fribidi)
+ $(use_enable gif)
+ $(use_enable gtk)
+ $(use_enable jpeg)
+ $(use_enable lua)
+ $(use_enable mp3 mad)
+ $(use_enable mpeg2)
+ $(use_enable net libcurl)
+ $(use_enable net sdlnet)
+ $(use_enable png)
+ $(use_enable sndio)
+ $(use_enable speech tts)
+ $(use_enable theora theoradec)
+ $(use_enable truetype freetype2)
+ $(usex unsupported --enable-all-engines '')
+ $(use_enable vorbis)
+ $(use_enable zlib)
+ $(use_enable x86 nasm)
+ )
+ echo "configure ${myconf[@]}"
+ # not an autoconf script, so don't call econf
+ SDL_CONFIG="sdl2-config" \
+ ./configure "${myconf[@]}" ${EXTRA_ECONF} || die
+}
+
+src_compile() {
+ emake \
+ AR="$(tc-getAR) cru" \
+ RANLIB="$(tc-getRANLIB)"
+}
+
+src_install() {
+ default
+ doicon -s scalable icons/scummvm.svg
+}
diff --git a/games-engines/scummvm/scummvm-9999.ebuild b/games-engines/scummvm/scummvm-9999.ebuild
index 22e410bbb259..d678e3432dbb 100644
--- a/games-engines/scummvm/scummvm-9999.ebuild
+++ b/games-engines/scummvm/scummvm-9999.ebuild
@@ -1,44 +1,59 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-inherit desktop flag-o-matic git-r3 toolchain-funcs xdg
+EAPI=8
+inherit desktop flag-o-matic toolchain-funcs xdg
DESCRIPTION="Reimplementation of the SCUMM game engine used in Lucasarts adventures"
HOMEPAGE="https://www.scummvm.org/"
-EGIT_REPO_URI="https://github.com/scummvm/scummvm"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/scummvm/scummvm"
+else
+ SRC_URI="https://downloads.scummvm.org/frs/scummvm/${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+ S=${WORKDIR}/${P/_/}
+fi
LICENSE="GPL-2+ LGPL-2.1 BSD GPL-3-with-font-exception"
SLOT="0"
-KEYWORDS=""
-IUSE="a52 aac alsa debug flac fluidsynth fribidi glew +gtk jpeg lua mpeg2 mp3 +net opengl png speech theora truetype unsupported vorbis zlib"
+IUSE="
+ a52 aac alsa debug flac fluidsynth fribidi gif +gtk jpeg lua mpeg2
+ mp3 +net opengl png sndio speech theora truetype unsupported vorbis
+ zlib
+"
RESTRICT="test" # it only looks like there's a test there #77507
-RDEPEND="
+DEPEND="
>=media-libs/libsdl2-2.0.0[sound,joystick,video]
a52? ( media-libs/a52dec )
aac? ( media-libs/faad2 )
alsa? ( media-libs/alsa-lib )
- flac? ( media-libs/flac )
- fluidsynth? ( media-sound/fluidsynth )
+ flac? ( media-libs/flac:= )
+ fluidsynth? ( media-sound/fluidsynth:= )
fribidi? ( dev-libs/fribidi )
+ gif? ( media-libs/giflib )
gtk? (
dev-libs/glib:2
x11-libs/gtk+:3
)
- jpeg? ( virtual/jpeg:0 )
+ jpeg? ( media-libs/libjpeg-turbo:= )
mp3? ( media-libs/libmad )
mpeg2? ( media-libs/libmpeg2 )
- net? ( media-libs/sdl2-net )
+ net? (
+ media-libs/sdl2-net
+ net-misc/curl
+ )
opengl? (
|| (
virtual/opengl
media-libs/mesa[gles2]
media-libs/mesa[gles1]
)
- glew? ( media-libs/glew:0= )
)
png? ( media-libs/libpng:0 )
+ sndio? ( media-sound/sndio:= )
speech? ( app-accessibility/speech-dispatcher )
truetype? ( media-libs/freetype:2 )
theora? ( media-libs/libtheora )
@@ -48,17 +63,17 @@ RDEPEND="
)
zlib? ( sys-libs/zlib:= )
"
-DEPEND="${RDEPEND}"
+RDEPEND="
+ ${DEPEND}
+"
BDEPEND="
app-arch/xz-utils
truetype? ( virtual/pkgconfig )
x86? ( dev-lang/nasm )
"
-S="${WORKDIR}/${P/_/}"
-
src_prepare() {
- xdg_src_prepare
+ default
# -g isn't needed for nasm here
sed -i \
@@ -73,6 +88,7 @@ src_prepare() {
src_configure() {
use x86 && append-ldflags -Wl,-z,noexecstack
+ tc-export STRINGS
local myconf=(
--backend=sdl
@@ -90,14 +106,16 @@ src_configure() {
$(use_enable flac)
$(usex fluidsynth '' --disable-fluidsynth)
$(use_enable fribidi)
- $(use opengl && use_enable glew)
+ $(use_enable gif)
$(use_enable gtk)
$(use_enable jpeg)
$(use_enable lua)
$(use_enable mp3 mad)
$(use_enable mpeg2)
+ $(use_enable net libcurl)
$(use_enable net sdlnet)
$(use_enable png)
+ $(use_enable sndio)
$(use_enable speech tts)
$(use_enable theora theoradec)
$(use_enable truetype freetype2)
@@ -107,7 +125,7 @@ src_configure() {
$(use_enable x86 nasm)
)
echo "configure ${myconf[@]}"
- # NOT AN AUTOCONF SCRIPT SO DONT CALL ECONF
+ # not an autoconf script, so don't call econf
SDL_CONFIG="sdl2-config" \
./configure "${myconf[@]}" ${EXTRA_ECONF} || die
}
@@ -115,8 +133,7 @@ src_configure() {
src_compile() {
emake \
AR="$(tc-getAR) cru" \
- RANLIB="$(tc-getRANLIB)" \
- STRINGS="$(tc-getSTRINGS)"
+ RANLIB="$(tc-getRANLIB)"
}
src_install() {
diff --git a/games-engines/solarus/Manifest b/games-engines/solarus/Manifest
index 5a040945b687..1e80834dfb69 100644
--- a/games-engines/solarus/Manifest
+++ b/games-engines/solarus/Manifest
@@ -1 +1 @@
-DIST solarus-1.3.1-src.tar.gz 2450599 BLAKE2B e8aefa36d48753b1362283c8818b6efdc82c2d6ed7612c15d5e45b035a131ec6fd5792f85e4b956afa3e1d51e0dc311d7d6fabb5750b7b8781c69169b61fe1d9 SHA512 f52a46add1432a98931db8d26496371b5ff843151c8ac0fdaf1e774be37399d9be6c401f263a65aa08b96f3eebda367b4ccb07ef6cb9740b3112b01e4763556b
+DIST solarus-v1.6.5.tar.gz 15010899 BLAKE2B 96a67c7210c70d23d3fa08e24ee2c4cfbeb6e95dce7236ab860695bf4fc57aaa5d54b02e25ad2f10dfc498cc836bf83753d99cbeca1ff7bf496f7d589accbbf5 SHA512 3fc7473f1b7dd80cbcb0a7a639701f8b12bd40ee918a7853805bd54f877e752b4c31c26828e62248ca4594b3aed41a8c61a16be3b14b293f08d9ba938a723e91
diff --git a/games-engines/solarus/metadata.xml b/games-engines/solarus/metadata.xml
index e9b337da9ffb..16d609b36b2d 100644
--- a/games-engines/solarus/metadata.xml
+++ b/games-engines/solarus/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
@@ -9,6 +9,6 @@
<flag name="doc">Install doxygen developer documentation.</flag>
</use>
<upstream>
- <remote-id type="github">christopho/solarus</remote-id>
+ <remote-id type="gitlab">solarus-games/solarus</remote-id>
</upstream>
</pkgmetadata>
diff --git a/games-engines/solarus/solarus-1.3.1-r100.ebuild b/games-engines/solarus/solarus-1.3.1-r100.ebuild
deleted file mode 100644
index 7d865fec4101..000000000000
--- a/games-engines/solarus/solarus-1.3.1-r100.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-1 luajit )
-
-inherit cmake lua-single
-
-DESCRIPTION="An open-source Zelda-like 2D game engine"
-HOMEPAGE="https://www.solarus-games.org/"
-SRC_URI="http://www.zelda-solarus.com/downloads/${PN}/${P}-src.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="doc"
-
-REQUIRED_USE="${LUA_REQUIRED_USE}"
-
-RDEPEND="${LUA_DEPS}
- dev-games/physfs
- media-libs/libmodplug
- >=media-libs/libsdl2-2.0.1[X,joystick,video]
- media-libs/libvorbis
- media-libs/openal
- media-libs/sdl2-image[png]
- >=media-libs/sdl2-ttf-2.0.12"
-DEPEND="${RDEPEND}"
-BDEPEND="doc? ( app-doc/doxygen )"
-
-src_prepare() {
- cmake_src_prepare
-}
-
-src_configure() {
- local mycmakeargs=(
- -DSOLARUS_INSTALL_DESTINATION="/usr/bin"
- -DSOLARUS_USE_LUAJIT="$(usex lua_single_target_luajit)"
- )
- cmake_src_configure
-}
-
-src_compile() {
- cmake_src_compile
- if use doc ; then
- cd doc || die
- doxygen || die
- fi
-}
-
-src_install() {
- cmake_src_install
- doman solarus.6
- use doc && dodoc -r doc/${PV%.*}/html/*
-}
diff --git a/games-engines/solarus/solarus-1.6.5.ebuild b/games-engines/solarus/solarus-1.6.5.ebuild
new file mode 100644
index 000000000000..28ba18e83b78
--- /dev/null
+++ b/games-engines/solarus/solarus-1.6.5.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-1 luajit )
+
+inherit cmake lua-single optfeature virtualx
+
+DESCRIPTION="An open-source Zelda-like 2D game engine"
+HOMEPAGE="https://www.solarus-games.org/"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.com/solarus-games/solarus.git"
+ EGIT_BRANCH="dev"
+ inherit git-r3
+else
+ SRC_URI="https://gitlab.com/solarus-games/solarus/-/archive/v${PV}/solarus-v${PV}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="doc"
+
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+RDEPEND="
+ ${LUA_DEPS}
+ dev-games/physfs
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ media-libs/libmodplug
+ >=media-libs/libsdl2-2.0.1[X,joystick,video]
+ media-libs/libvorbis
+ media-libs/openal
+ media-libs/sdl2-image[png]
+ >=media-libs/sdl2-ttf-2.0.12
+"
+
+DEPEND="
+ ${RDEPEND}
+"
+
+BDEPEND="
+ doc? ( app-text/doxygen )
+"
+
+if ! [[ ${PV} == 9999 ]]; then
+ S="${WORKDIR}/solarus-v${PV}"
+fi
+
+src_configure() {
+ local mycmakeargs=( -DSOLARUS_USE_LUAJIT="$(usex lua_single_target_luajit)" )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ if use doc ; then
+ cd doc && doxygen || die
+ fi
+}
+
+src_test() {
+ # lua/bugs-{1200,1210} are GUI tests that require X
+ # With EAPI 8, one of the last tests hangs with >= j3
+ virtx cmake_src_test -j1
+}
+
+src_install() {
+ cmake_src_install
+ use doc && dodoc -r doc/${PV%.*}/html/*
+}
+
+pkg_postinst() {
+ optfeature "the Solarus Quest Editor" games-misc/solarus-quest-editor
+}
diff --git a/games-engines/solarus/solarus-9999.ebuild b/games-engines/solarus/solarus-9999.ebuild
new file mode 100644
index 000000000000..28ba18e83b78
--- /dev/null
+++ b/games-engines/solarus/solarus-9999.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-1 luajit )
+
+inherit cmake lua-single optfeature virtualx
+
+DESCRIPTION="An open-source Zelda-like 2D game engine"
+HOMEPAGE="https://www.solarus-games.org/"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.com/solarus-games/solarus.git"
+ EGIT_BRANCH="dev"
+ inherit git-r3
+else
+ SRC_URI="https://gitlab.com/solarus-games/solarus/-/archive/v${PV}/solarus-v${PV}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="doc"
+
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+RDEPEND="
+ ${LUA_DEPS}
+ dev-games/physfs
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ media-libs/libmodplug
+ >=media-libs/libsdl2-2.0.1[X,joystick,video]
+ media-libs/libvorbis
+ media-libs/openal
+ media-libs/sdl2-image[png]
+ >=media-libs/sdl2-ttf-2.0.12
+"
+
+DEPEND="
+ ${RDEPEND}
+"
+
+BDEPEND="
+ doc? ( app-text/doxygen )
+"
+
+if ! [[ ${PV} == 9999 ]]; then
+ S="${WORKDIR}/solarus-v${PV}"
+fi
+
+src_configure() {
+ local mycmakeargs=( -DSOLARUS_USE_LUAJIT="$(usex lua_single_target_luajit)" )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ if use doc ; then
+ cd doc && doxygen || die
+ fi
+}
+
+src_test() {
+ # lua/bugs-{1200,1210} are GUI tests that require X
+ # With EAPI 8, one of the last tests hangs with >= j3
+ virtx cmake_src_test -j1
+}
+
+src_install() {
+ cmake_src_install
+ use doc && dodoc -r doc/${PV%.*}/html/*
+}
+
+pkg_postinst() {
+ optfeature "the Solarus Quest Editor" games-misc/solarus-quest-editor
+}
diff --git a/games-engines/stratagus/Manifest b/games-engines/stratagus/Manifest
index 85594b2e5562..17d966383ec7 100644
--- a/games-engines/stratagus/Manifest
+++ b/games-engines/stratagus/Manifest
@@ -1,2 +1 @@
-DIST stratagus-2.4.3.tar.gz 1123537 BLAKE2B 90e40b2b277b5c52977f3c0ae2ae8f2e65d940d765e2ca4f7def4f8cf903399350f5e46f6dc6fbc38f3a53c7ca9ecaf5cf38025ec69154972869f28da37865d4 SHA512 16271c4fed3fb75fb8fb08e363e72713ede7979ea7e25b7c83db2fa9a0688fb7927cad3379e3b23e172c409cf0f6db18f7c6557d19a693c9a7f24109b56d2a56
-DIST stratagus-3.0.0.tar.gz 1149659 BLAKE2B 62a14bdc84462f22867b836b9a83f58ba31c7793c20f25cd8a0ca58adf7e5a38ee4559e96dddf8eb61dd1572dac55e08b16c95f8b7590644da0d0ffd040e0360 SHA512 baef3636471134c53ae0a60471f217daf694c20f439db125cf31cc33a510be456486aa905950aec15f28acada1af39a245e97fc85045d849b10532939a8f3a83
+DIST stratagus-3.3.2.tar.gz 1582937 BLAKE2B c39a9f009693c8c6dc7e62b885851a707a25c039b66765ce42dbd851643650b287bd45d0c0ea6fb03a2ddde01a41bf156a1d018ad4f06e0d39e9435a24c79672 SHA512 0e5d0127ba4e1025ceb7f46c91d90b82dc7c1b194030738abf95bd2c9cadc04d7431f333a514fc6d6b300ea3a1f5c7405bea735471f72fa547031634a23b01d1
diff --git a/games-engines/stratagus/metadata.xml b/games-engines/stratagus/metadata.xml
index db8692f5803f..71d1a3fd8617 100644
--- a/games-engines/stratagus/metadata.xml
+++ b/games-engines/stratagus/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>mgorny@gentoo.org</email>
@@ -9,9 +9,6 @@
<email>games@gentoo.org</email>
<name>Gentoo Games Project</name>
</maintainer>
- <use>
- <flag name="fluidsynth">compile with support for fluidsynth</flag>
- </use>
<upstream>
<remote-id type="github">Wargus/stratagus</remote-id>
</upstream>
diff --git a/games-engines/stratagus/stratagus-2.4.3-r100.ebuild b/games-engines/stratagus/stratagus-2.4.3-r100.ebuild
deleted file mode 100644
index 5b096ccea6d1..000000000000
--- a/games-engines/stratagus/stratagus-2.4.3-r100.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-1 )
-
-inherit cmake lua-single
-
-DESCRIPTION="A realtime strategy game engine"
-HOMEPAGE="https://wargus.github.io/stratagus.html
- https://github.com/Wargus/stratagus"
-SRC_URI="https://github.com/Wargus/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="bzip2 debug doc fluidsynth mikmod mng theora vorbis"
-REQUIRED_USE="${LUA_REQUIRED_USE}
- theora? ( vorbis )"
-
-RDEPEND="${LUA_DEPS}
- dev-db/sqlite:3
- dev-lua/toluapp[${LUA_SINGLE_USEDEP}]
- media-libs/libpng:0
- virtual/opengl
- x11-libs/libX11
- media-libs/libsdl[sound,opengl,video]
- sys-libs/zlib
- bzip2? ( app-arch/bzip2 )
- fluidsynth? ( media-sound/fluidsynth )
- mikmod? ( media-libs/libmikmod )
- mng? ( media-libs/libmng )
- vorbis? (
- media-libs/libogg
- media-libs/libvorbis
- theora? ( media-libs/libtheora )
- )"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
- doc? ( app-doc/doxygen )"
-
-PATCHES=(
- "${FILESDIR}/${PN}"-2.3.0-doc.patch
-)
-
-src_prepare() {
- sed -i -e 's:-Werror::' CMakeLists.txt || die
- cmake_src_prepare
-}
-
-src_configure() {
- # there are in-source switches
- use debug && CMAKE_BUILD_TYPE=Debug
-
- local mycmakeargs=(
- -DGAMEDIR="/usr/bin"
- -DDOCDIR="/usr/share/doc/${PF}"
- -DWITH_BZIP2=$(usex bzip2)
- -DWITH_FLUIDSYNTH=$(usex fluidsynth)
- -DWITH_MIKMOD=$(usex mikmod)
- -DWITH_MNG=$(usex mng)
- -DWITH_OGGVORBIS=$(usex vorbis)
- -DWITH_THEORA=$(usex theora)
- -DENABLE_DOC=$(usex doc)
- -DENABLE_DEV=ON
- )
-
- cmake_src_configure
-}
diff --git a/games-engines/stratagus/stratagus-3.0.0-r100.ebuild b/games-engines/stratagus/stratagus-3.3.2-r1.ebuild
index 5af50ed30834..b6dc099614a2 100644
--- a/games-engines/stratagus/stratagus-3.0.0-r100.ebuild
+++ b/games-engines/stratagus/stratagus-3.3.2-r1.ebuild
@@ -1,16 +1,20 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
LUA_COMPAT=( lua5-1 )
-
inherit cmake lua-single optfeature
DESCRIPTION="A realtime strategy game engine"
-HOMEPAGE="https://wargus.github.io/stratagus.html
- https://github.com/Wargus/stratagus"
-SRC_URI="https://github.com/Wargus/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+HOMEPAGE="
+ https://stratagus.com/stratagus.html
+ https://github.com/Wargus/stratagus/
+"
+SRC_URI="
+ https://github.com/Wargus/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz
+"
LICENSE="GPL-2"
SLOT="0/3"
@@ -18,9 +22,10 @@ KEYWORDS="~amd64 ~x86"
IUSE="bzip2 debug doc mng theora vorbis"
REQUIRED_USE="
${LUA_REQUIRED_USE}
- theora? ( vorbis )"
+ theora? ( vorbis )
+"
-RDEPEND="
+DEPEND="
${LUA_DEPS}
dev-db/sqlite:3
dev-lua/toluapp[${LUA_SINGLE_USEDEP}]
@@ -36,28 +41,27 @@ RDEPEND="
media-libs/libogg
media-libs/libvorbis
theora? ( media-libs/libtheora )
- )"
-DEPEND="${RDEPEND}"
+ )
+"
+RDEPEND="
+ ${DEPEND}
+"
BDEPEND="
virtual/pkgconfig
- doc? ( app-doc/doxygen )"
+ doc? ( app-text/doxygen )
+"
PATCHES=(
"${FILESDIR}/${PN}"-2.3.0-doc.patch
)
-src_prepare() {
- sed -i -e 's:-Werror::' CMakeLists.txt || die
- cmake_src_prepare
-}
-
src_configure() {
# there are in-source switches
- use debug && CMAKE_BUILD_TYPE=Debug
+ use debug && local -x CPPFLAGS="${CPPFLAGS} -DDEBUG"
local mycmakeargs=(
- -DGAMEDIR="/usr/bin"
- -DDOCDIR="/usr/share/doc/${PF}"
+ -DGAMEDIR="${EPREFIX}/usr/bin"
+ -DDOCDIR="${EPREFIX}/usr/share/doc/${PF}"
-DWITH_BZIP2=$(usex bzip2)
-DWITH_MNG=$(usex mng)
-DWITH_OGGVORBIS=$(usex vorbis)
diff --git a/games-engines/xzip/files/xzip-1.8.2-clang16.patch b/games-engines/xzip/files/xzip-1.8.2-clang16.patch
new file mode 100644
index 000000000000..ce702ba3e86e
--- /dev/null
+++ b/games-engines/xzip/files/xzip-1.8.2-clang16.patch
@@ -0,0 +1,9 @@
+Ideally belongs in xio.h, but using requires including more headers.
+https://bugs.gentoo.org/874906
+--- a/osdepend.c
++++ b/osdepend.c
+@@ -13,2 +13,4 @@
+
++void xio_bell();
++
+ /* File names will be O/S dependent */
diff --git a/games-engines/xzip/metadata.xml b/games-engines/xzip/metadata.xml
index 78274e0fa550..1c3ba213c494 100644
--- a/games-engines/xzip/metadata.xml
+++ b/games-engines/xzip/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
diff --git a/games-engines/xzip/xzip-1.8.2-r3.ebuild b/games-engines/xzip/xzip-1.8.2-r4.ebuild
index b961ce3ca312..04394c46e036 100644
--- a/games-engines/xzip/xzip-1.8.2-r3.ebuild
+++ b/games-engines/xzip/xzip-1.8.2-r4.ebuild
@@ -1,16 +1,17 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
+
+inherit toolchain-funcs
DESCRIPTION="X interface to Z-code based text games"
-HOMEPAGE="http://www.eblong.com/zarf/xzip.html"
-SRC_URI="http://www.eblong.com/zarf/ftp/xzip182.tar.Z"
+HOMEPAGE="https://www.eblong.com/zarf/xzip.html"
+SRC_URI="https://www.eblong.com/zarf/ftp/xzip$(ver_rs 1-3 '').tar.Z"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE=""
RESTRICT="test"
DEPEND="x11-libs/libX11"
@@ -18,7 +19,12 @@ RDEPEND=${DEPEND}
S="${WORKDIR}/xzip"
+PATCHES=(
+ "${FILESDIR}"/${P}-clang16.patch
+)
+
src_compile() {
+ tc-export CC
emake \
CFLAGS="${CFLAGS} -DAUTO_END_MODE" \
LDFLAGS="${LDFLAGS}"
diff --git a/games-engines/zoom/metadata.xml b/games-engines/zoom/metadata.xml
index 78274e0fa550..1c3ba213c494 100644
--- a/games-engines/zoom/metadata.xml
+++ b/games-engines/zoom/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
diff --git a/games-engines/zoom/zoom-1.1.5-r1.ebuild b/games-engines/zoom/zoom-1.1.5-r1.ebuild
index ceda3c08f833..f0d98a233a0e 100644
--- a/games-engines/zoom/zoom-1.1.5-r1.ebuild
+++ b/games-engines/zoom/zoom-1.1.5-r1.ebuild
@@ -1,16 +1,15 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
-DESCRIPTION="A fast, clean, modern Z-code interpreter for X"
-HOMEPAGE="http://www.logicalshift.co.uk/unix/zoom/"
-SRC_URI="http://www.logicalshift.co.uk/unix/zoom/${P}.tar.gz"
+DESCRIPTION="Fast, clean, modern Z-code interpreter for X"
+HOMEPAGE="https://www.logicalshift.co.uk/unix/zoom/"
+SRC_URI="https://www.logicalshift.co.uk/unix/zoom/${P}.tar.gz"
-LICENSE="GPL-2"
+LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE=""
RDEPEND="!net-im/zoom
media-libs/fontconfig