summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-server')
-rw-r--r--games-server/minecraft-server/files/README.gentoo-r126
-rw-r--r--games-server/minecraft-server/files/minecraft-server.confd-r112
-rw-r--r--games-server/minecraft-server/files/minecraft-server.initd-r462
-rw-r--r--games-server/minecraft-server/metadata.xml14
-rw-r--r--games-server/minecraft-server/minecraft-server-1.16.2-r1.ebuild49
5 files changed, 162 insertions, 1 deletions
diff --git a/games-server/minecraft-server/files/README.gentoo-r1 b/games-server/minecraft-server/files/README.gentoo-r1
new file mode 100644
index 000000000000..903ef5a7d9d7
--- /dev/null
+++ b/games-server/minecraft-server/files/README.gentoo-r1
@@ -0,0 +1,26 @@
+This package provides an init script and a conf file.
+You don't have to modify those files directly,
+but instead you can make a symlink of that init script
+and a copy of that conf file.
+You would do this for every server, you want to setup.
+
+For example, you wan't to setup an world called 'gentoo',
+you would do:
+
+cd /etc/init.d
+ln -s minecraft-server minecraft-server.gentoo
+
+cd /etc/conf.d
+cp minecraft-server minecraft-server.gentoo
+
+After that, make your settings in
+/etc/conf.d/minecraft-server.gentoo.
+
+If you don't make a symlink, but use the default scripts,
+your world will be called 'main'.
+
+To interact with the console of the corresponding world,
+you can use the extra command attach:
+
+rc-service minecraft-server attach
+rc-service minecraft-server.gentoo attach
diff --git a/games-server/minecraft-server/files/minecraft-server.confd-r1 b/games-server/minecraft-server/files/minecraft-server.confd-r1
new file mode 100644
index 000000000000..8b380349e9ac
--- /dev/null
+++ b/games-server/minecraft-server/files/minecraft-server.confd-r1
@@ -0,0 +1,12 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Dtach options, which will used, when the `attach` extra command is called.
+# By default, CTRL+D is used, and no redraw is done,
+# when you want to detach from the attached console.
+DTACH_OPTS="-e '^D' -r none"
+
+# Java options for your started server
+# You should at least define some memory settings (-Xms, -Xmx),
+# for maximum memory, as the java default is far to low for Minecraft
+MINECRAFT_OPTS="-Xms1024m -Xmx1024m"
diff --git a/games-server/minecraft-server/files/minecraft-server.initd-r4 b/games-server/minecraft-server/files/minecraft-server.initd-r4
new file mode 100644
index 000000000000..e81337a7d19f
--- /dev/null
+++ b/games-server/minecraft-server/files/minecraft-server.initd-r4
@@ -0,0 +1,62 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+if [ "${SVCNAME}" = "minecraft-server" ]; then
+ instance="main"
+else
+ instance="${SVCNAME#minecraft-server.}"
+fi
+
+dtach_tmpfile="$(mktemp -u)"
+minecraft_command="/usr/bin/minecraft-server"
+minecraft_logs="/var/log/minecraft-server"
+minecraft_logs_instance="${minecraft_logs}/${instance}"
+minecraft_path="/var/lib/minecraft-server"
+minecraft_path_instance="${minecraft_path}/${instance}"
+name="Minecraft Server (World: ${instance})"
+pidfile="/run/minecraft-server.${instance}.pid"
+start_stop_daemon_args="--chdir ${minecraft_path_instance} --env JAVA_OPTS='${MINECRAFT_OPTS}'"
+
+description_attach="Attaches to the session (interactive console) of the Minecraft server"
+extra_started_commands="attach"
+
+command="/usr/bin/dtach"
+command_background="true"
+command_args="-N ${dtach_tmpfile} ${minecraft_command}"
+command_group="minecraft"
+command_user="minecraft"
+
+depend() {
+ use net
+}
+
+start_pre() {
+ checkpath -d -o "${command_user}:${command_group}" -q "${minecraft_path}" "${minecraft_path_instance}"
+
+ checkpath -f -o "${command_user}:${command_group}" -q "${minecraft_path_instance}"/eula.txt
+ echo "eula=true" > "${minecraft_path_instance}"/eula.txt
+
+ checkpath -d -o "${command_user}:${command_group}" -q "${minecraft_logs}" "${minecraft_logs_instance}"
+
+ if [ ! -L "${minecraft_path_instance}"/logs ]; then
+ cd "${minecraft_path_instance}" && ln -s ../../../log/minecraft-server/"${instance}" logs
+ fi
+
+ if [ -z "${MINECRAFT_OPTS}" ]; then
+ eerror "You must define 'MINECRAFT_OPTS' in '/etc/conf.d/${SVCNAME}'!"
+ return 1
+ fi
+}
+
+attach() {
+ pidnumber="$(cat ${pidfile})"
+ dtach_tmpfile="$(cat /proc/${pidnumber}/cmdline | tr '\0' ' ' | awk '{print $3}')"
+
+ if [ -S "${dtach_tmpfile}" ]; then
+ eval "${command}" -a "${dtach_tmpfile}" "${DTACH_OPTS}"
+ else
+ eerror "The determined socket file for dtach could not be found!"
+ eerror "Did the process crash?"
+ fi
+}
diff --git a/games-server/minecraft-server/metadata.xml b/games-server/minecraft-server/metadata.xml
index 8c681902aca6..c3b4c421bb12 100644
--- a/games-server/minecraft-server/metadata.xml
+++ b/games-server/minecraft-server/metadata.xml
@@ -5,10 +5,22 @@
<email>conikost@gentoo.org</email>
<name>Conrad Kostecki</name>
</maintainer>
- <longdescription>
+ <longdescription lang="en">
Minecraft is a sandbox video game created and designed
by Swedish game designer Markus "Notch" Persson,
and later fully developed and published by Mojang.
This is the headless server for Minecraft.
</longdescription>
+ <longdescription lang="fr">
+ Minecraft est un jeu vidéo bac à sable créé et conçu par
+ le développeur Markus Person (alias "Notch"), et plus
+ tard, pleinement maintenu et édité par Mojang.
+ Ceci est le serveur "headless" pour Minecraft.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://bugs.mojang.com/projects/MC/issues</bugs-to>
+ <maintainer status="active">
+ <name>Mojang</name>
+ </maintainer>
+ </upstream>
</pkgmetadata>
diff --git a/games-server/minecraft-server/minecraft-server-1.16.2-r1.ebuild b/games-server/minecraft-server/minecraft-server-1.16.2-r1.ebuild
new file mode 100644
index 000000000000..e219f3882840
--- /dev/null
+++ b/games-server/minecraft-server/minecraft-server-1.16.2-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+EGIT_COMMIT="c5f6fb23c3876461d46ec380421e42b289789530"
+README_GENTOO_SUFFIX="-r1"
+
+inherit readme.gentoo-r1 java-pkg-2
+
+DESCRIPTION="The official server for the sandbox video game"
+HOMEPAGE="https://www.minecraft.net/"
+SRC_URI="https://launcher.mojang.com/v1/objects/${EGIT_COMMIT}/server.jar -> ${P}.jar"
+
+LICENSE="Mojang"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ acct-group/minecraft
+ acct-user/minecraft
+ app-misc/dtach
+ || (
+ >=virtual/jre-1.8
+ >=virtual/jdk-1.8
+ )
+"
+
+RESTRICT="bindist mirror"
+
+S="${WORKDIR}"
+
+src_unpack() {
+ cp "${DISTDIR}/${A}" "${WORKDIR}" || die
+}
+
+src_install() {
+ java-pkg_newjar minecraft-server-${PV}.jar minecraft-server.jar
+ java-pkg_dolauncher minecraft-server --jar minecraft-server.jar --java_args "\${JAVA_OPTS}"
+
+ newinitd "${FILESDIR}"/minecraft-server.initd-r4 minecraft-server
+ newconfd "${FILESDIR}"/minecraft-server.confd-r1 minecraft-server
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}