|
|
|
# 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
|
|
|
|
}
|