diff --git a/games/minecraft-server/Makefile b/games/minecraft-server/Makefile index 5838f53b667c..c709fe3e1c27 100644 --- a/games/minecraft-server/Makefile +++ b/games/minecraft-server/Makefile @@ -1,64 +1,65 @@ PORTNAME= minecraft-server -PORTVERSION= 1.20.4 +DISTVERSION= 1.20.6 CATEGORIES= games java -MASTER_SITES= https://piston-data.mojang.com/v1/objects/8dd1a28015f51b1803213892b50b7b4fc76e594d/ +MASTER_SITES= https://piston-data.mojang.com/v1/objects/145ff0858209bcfc164859ba735d4199aafa1eea/ DISTNAME= server EXTRACT_SUFX= .jar DIST_SUBDIR= ${PORTNAME}-${PORTVERSION} EXTRACT_ONLY= MAINTAINER= freebsd@jonathanprice.org COMMENT= Dedicated server for the game Minecraft WWW= http://www.minecraft.net/ LICENSE= minecraft LICENSE_NAME= Minecraft End User License Agreement LICENSE_TEXT= The license can be viewed at: https://account.mojang.com/documents/minecraft_eula LICENSE_PERMS= no-dist-mirror no-dist-sell no-pkg-mirror no-pkg-sell USE_JAVA= yes -JAVA_VERSION= 17 +JAVA_VERSION= 21 NO_ARCH= yes NO_BUILD= yes SUB_FILES= minecraft-server pkg-deinstall pkg-message -SUB_LIST= VERSION=${PORTVERSION} +SUB_LIST= JAVA_VERSION=${JAVA_VERSION} VERSION=${PORTVERSION} USERS= mcserver GROUPS= ${USERS} PLIST_SUB= VERSION=${PORTVERSION} CONFIG_FILES= banned-ips.json banned-players.json eula.txt ops.json \ server.properties usercache.json whitelist.json OPTIONS_DEFAULT= STANDALONE OPTIONS_SINGLE= RUN OPTIONS_SINGLE_RUN= DAEMON STANDALONE OPTIONS_SUB= yes DAEMON_DESC= Run as a service STANDALONE_DESC= Run the .jar file directly DAEMON_RUN_DEPENDS= tmux:sysutils/tmux DAEMON_VARS= USE_RC_SUBR=minecraft do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/${PORTNAME} ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${DISTFILES} \ ${STAGEDIR}${PREFIX}/${PORTNAME} ${MKDIR} ${STAGEDIR}${ETCDIR} ${MKDIR} ${STAGEDIR}/var/db/minecraft-server ${MKDIR} ${STAGEDIR}/var/log/minecraft-server + ${MKDIR} ${STAGEDIR}/var/log/minecraft-server/debug .for file in ${CONFIG_FILES} ${LN} -s ${ETCDIR}/${file} ${STAGEDIR}${PREFIX}/${PORTNAME}/${file} .endfor + ${LN} -sf /var/db/minecraft-server ${STAGEDIR}${PREFIX}/${PORTNAME}/world ${LN} -sf /var/log/minecraft-server ${STAGEDIR}${PREFIX}/${PORTNAME}/logs ${LN} -sf /var/log/minecraft-server/debug ${STAGEDIR}${PREFIX}/${PORTNAME}/debug - ${LN} -sf /var/db/minecraft-server ${STAGEDIR}${PREFIX}/${PORTNAME}/world post-install-STANDALONE-on: ${INSTALL_SCRIPT} ${WRKDIR}/minecraft-server \ ${STAGEDIR}${PREFIX}/bin ${CP} ${FILESDIR}/java-args.txt ${STAGEDIR}${ETCDIR} .include diff --git a/games/minecraft-server/distinfo b/games/minecraft-server/distinfo index 274aea17127d..eda4c31b11d3 100644 --- a/games/minecraft-server/distinfo +++ b/games/minecraft-server/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1708874498 -SHA256 (minecraft-server-1.20.4/server.jar) = c03fa6f39daa69ddf413c965a3a83084db746a7a138ce535a693293b5472d363 -SIZE (minecraft-server-1.20.4/server.jar) = 49150256 +TIMESTAMP = 1716300294 +SHA256 (minecraft-server-1.20.6/server.jar) = c6d01d018ca782e506f0ec60652d47fd565078be9122b625c1681bc86c29c7ec +SIZE (minecraft-server-1.20.6/server.jar) = 51420480 diff --git a/games/minecraft-server/files/minecraft-server.in b/games/minecraft-server/files/minecraft-server.in index 907ff1806c7d..959db1f0d617 100644 --- a/games/minecraft-server/files/minecraft-server.in +++ b/games/minecraft-server/files/minecraft-server.in @@ -1,10 +1,13 @@ #!/bin/sh if [ "$(id -u)" != "0" ]; then echo "$0 must be run as root" 1>&2 exit 1 fi -export JAVA_VERSION=17 +if [ -z "${JAVA_VERSION}" ]; then + JAVA_VERSION=%%JAVA_VERSION%% +fi +export JAVA_VERSION cd %%PREFIX%%/minecraft-server su -m mcserver -c "%%LOCALBASE%%/bin/java $(cat %%PREFIX%%/etc/minecraft-server/java-args.txt) -jar server.jar nogui" diff --git a/games/minecraft-server/files/minecraft.in b/games/minecraft-server/files/minecraft.in index 6eeaf0d09cae..ac2b0496f706 100644 --- a/games/minecraft-server/files/minecraft.in +++ b/games/minecraft-server/files/minecraft.in @@ -1,110 +1,110 @@ #!/bin/sh # PROVIDE: minecraft # REQUIRE: LOGIN # KEYWORD: shutdown # # rc.conf variables: # minecraft_enable (Default: NO) # minecraft_mems (Default: 1024M) # minecraft_memx (Default: 1024M) # minecraft_args (Default: "") . /etc/rc.subr name=minecraft rcvar=minecraft_enable desc="Dedicated server for the game Minecraft" load_rc_config $name minecraft_mems=${minecraft_mems:-"1024M"} minecraft_memx=${minecraft_memx:-"1024M"} minecraft_args=${minecraft_args:-""} extra_commands="console status kill" start_cmd="${name}_start" stop_cmd="${name}_stop" console_cmd="${name}_console" status_cmd="${name}_status" kill_cmd="${name}_kill" -export JAVA_VERSION=17 +export JAVA_VERSION=${minecraft_java_version:-"%%JAVA_VERSION%%"} is_running() { pgrep -qu mcserver java return $? } minecraft_start() { if is_running; then echo "${name} is already running." elif [ ${minecraft_mems%?} -gt ${minecraft_memx%?} ]; then echo "ERROR: minecraft_mems is set greater than minecraft_memx." echo "ERROR: Set minecraft_memx to be equal or greater than minecraft_mems in rc.conf." else if [ -n "${minecraft_mem}" ]; then echo "WARNING: minecraft_mem is deprecated. Please change this to minecraft_memx." minecraft_memx=${minecraft_mem} fi echo "Starting ${name}." cd %%PREFIX%%/minecraft-server su mcserver -c "%%LOCALBASE%%/bin/tmux new-session -s minecraft -d '%%LOCALBASE%%/bin/java -Xmx${minecraft_memx} -Xms${minecraft_mems} ${minecraft_args} -jar %%PREFIX%%/minecraft-server/server.jar nogui'" fi } minecraft_stop() { if is_running; then echo "Stopping ${name}." su mcserver -c "%%LOCALBASE%%/bin/tmux send-keys -t ${name} \"stop\" ENTER" i=0 while [ $i -lt 10 ]; do i=$(($i + 1)) if is_running; then sleep 1 else echo "${name} has been stopped." return fi done echo "WARN: ${name} could not be stopped or is taking longer than expected." echo "WARN: To view the console, type 'service ${name} console'" echo "WARN: To kill ${name}, type 'service ${name} kill'" else echo "${name} is not running." fi } minecraft_console() { if ! is_running; then echo "${name} is not running." else export TERM=xterm su mcserver -c "%%LOCALBASE%%/bin/tmux attach-session -t ${name}" fi } minecraft_status() { if is_running; then echo "${name} is running." else echo "${name} is not running." fi } minecraft_kill() { if ! is_running; then echo "${name} is not running." else pkill -KILL -u mcserver java echo "${name} has been killed." fi } run_rc_command "$1" diff --git a/games/minecraft-server/files/pkg-deinstall.in b/games/minecraft-server/files/pkg-deinstall.in index 12946b6a016a..e1c1656f2f1c 100644 --- a/games/minecraft-server/files/pkg-deinstall.in +++ b/games/minecraft-server/files/pkg-deinstall.in @@ -1,15 +1,15 @@ #!/bin/sh if [ "$2" != "POST-DEINSTALL" ]; then exit 0 fi find "%%PREFIX%%/minecraft-server/libraries" -type d -empty -delete find "%%PREFIX%%/minecraft-server/versions" -type d -empty -delete echo echo "NOTE: The game world has not been deleted. It is still in" echo "/var/db/minecraft-server. If it is no longer required, it will" echo "need to be manually deleted." echo "Also, you may wish to delete any remaining files in" -echo "%%PREFIX%%/minecraft-server and %%ETCDIR%%" +echo "%%PREFIX%%/minecraft-server, %%ETCDIR%% and /var/log/minecraft-server" diff --git a/games/minecraft-server/files/pkg-message.in b/games/minecraft-server/files/pkg-message.in index 390cf46ca947..4aecf4043c9f 100644 --- a/games/minecraft-server/files/pkg-message.in +++ b/games/minecraft-server/files/pkg-message.in @@ -1,25 +1,32 @@ [ { type: install message: <