summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2023-12-14 15:27:40 +0000
committerMarek Szuba <marecki@gentoo.org>2023-12-14 15:33:56 +0000
commit051d821b758a147e588d2d3cecbf0e3019b2dd62 (patch)
treea81a324ae6c83cea58fd39ba28765696ecbbf9e6 /games-engines
parentgames-action/minetest: add 5.8.0 (diff)
downloadgentoo-051d821b758a147e588d2d3cecbf0e3019b2dd62.tar.gz
gentoo-051d821b758a147e588d2d3cecbf0e3019b2dd62.tar.bz2
gentoo-051d821b758a147e588d2d3cecbf0e3019b2dd62.zip
games-engines/minetest: rename games-action/minetest
Bug: https://bugs.gentoo.org/919674 Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'games-engines')
-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/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.ebuild150
10 files changed, 455 insertions, 0 deletions
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/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..c34a0a5a97d6
--- /dev/null
+++ b/games-engines/minetest/minetest-5.7.0-r2.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2023 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-doc/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..dad33027e5a5
--- /dev/null
+++ b/games-engines/minetest/minetest-5.8.0.ebuild
@@ -0,0 +1,150 @@
+# Copyright 1999-2023 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-doc/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_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
+}