games-engines/minetest: add 5.9.1 with improvements

- actually run tests
- remove dependencies on irrlicht-mt (code merged to main repo)

Signed-off-by: Filip Kobierski <fkobi@pm.me>
Closes: https://github.com/gentoo/gentoo/pull/38574
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Filip Kobierski
2024-09-19 11:01:11 +02:00
committed by Sam James
parent e72c855e6e
commit a4796f71b7
3 changed files with 164 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST minetest-5.8.0.tar.gz 10419348 BLAKE2B efe3edde2d3c57cc296b5f84359c24019583e4f70346eafd418da7cbfc334ecbb32c72df085052beaa28f8f4b4219d7431c150c20d511fc41c0809cdbad227f1 SHA512 0b376ecc051032ccb542f2f76e2b1f5c351b32f1c211027825b1538095f44cb1447cd0976cb85a4cde4ecb53873bcb9f3778799271ed65b038a031dc137c2aba
DIST minetest-5.9.1.tar.gz 11957091 BLAKE2B a4bffdeb8e77761fa156ba646b75c216517055031f8437fef7faeb7693d51e5356927383bdb934c30b4bf6f546b7e65ce46e517456c8d55973c64f7e94227635 SHA512 e4a03cd7f0a745f0571dd3e9701ddf48e079c59dc0bf0c59ecf756151d03a82422213e7198f359e93852b83111430e2db8c2f5f92020b3244f64e197fd51c93c

View File

@@ -0,0 +1,11 @@
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -847,7 +847,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\\.")

View File

@@ -0,0 +1,152 @@
# 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? (
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
)
spatial? ( sci-libs/libspatialindex:= )"
DEPEND="${RDEPEND}"
BDEPEND="
doc? (
app-text/doxygen
media-gfx/graphviz
)
nls? ( sys-devel/gettext )"
PATCHES=(
"${FILESDIR}"/${PN}-5.9.1-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_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_test() {
"${S}"/bin/./minetest --run-unittests || die
}
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
}