diff --git a/games/minecraft-server/Makefile b/games/minecraft-server/Makefile index 7059ef1e7fe8..580585f60577 100644 --- a/games/minecraft-server/Makefile +++ b/games/minecraft-server/Makefile @@ -1,63 +1,64 @@ PORTNAME= minecraft-server -PORTVERSION= 1.17.1 +PORTVERSION= 1.18.1 CATEGORIES= games java -MASTER_SITES= https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/ +MASTER_SITES= https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/ DISTNAME= server EXTRACT_SUFX= .jar DIST_SUBDIR= ${PORTNAME}-${PORTVERSION} EXTRACT_ONLY= MAINTAINER= freebsd@jonathanprice.org COMMENT= Dedicated server for the game Minecraft 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 OPTIONS_SINGLE= RUN OPTIONS_SINGLE_RUN= DAEMON STANDALONE DAEMON_DESC= Run as a service STANDALONE_DESC= Run the .jar file directly OPTIONS_SUB= yes OPTIONS_DEFAULT= STANDALONE USERS= mcserver GROUPS= ${USERS} NO_BUILD= yes USE_JAVA= yes +JAVA_VERSION= 17 SUB_FILES= minecraft-server pkg-deinstall pkg-message SUB_LIST= VERSION=${PORTVERSION} PLIST_SUB= VERSION=${PORTVERSION} CONFIG_FILES= banned-ips.json banned-players.json eula.txt ops.json \ server.properties usercache.json whitelist.json DAEMON_VARS= USE_RC_SUBR=minecraft DAEMON_RUN_DEPENDS= tmux:sysutils/tmux NO_ARCH= yes 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 .for file in ${CONFIG_FILES} ${LN} -s ${ETCDIR}/${file} ${STAGEDIR}${PREFIX}/${PORTNAME}/${file} .endfor ${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 7531f96bd4ab..4bdaff9f1088 100644 --- a/games/minecraft-server/distinfo +++ b/games/minecraft-server/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1626387031 -SHA256 (minecraft-server-1.17.1/server.jar) = e8c211b41317a9f5a780c98a89592ecb72eb39a6e475d4ac9657e5bc9ffaf55f -SIZE (minecraft-server-1.17.1/server.jar) = 43626592 +TIMESTAMP = 1639124790 +SHA256 (minecraft-server-1.18.1/server.jar) = ebcd120ad81480b968a548df6ffb83b88075e95195c8ff63d461c9df4df5dbdf +SIZE (minecraft-server-1.18.1/server.jar) = 46324407 diff --git a/games/minecraft-server/files/minecraft-server.in b/games/minecraft-server/files/minecraft-server.in index 44e8dfab8f5a..907ff1806c7d 100644 --- a/games/minecraft-server/files/minecraft-server.in +++ b/games/minecraft-server/files/minecraft-server.in @@ -1,9 +1,10 @@ #!/bin/sh if [ "$(id -u)" != "0" ]; then echo "$0 must be run as root" 1>&2 exit 1 fi +export JAVA_VERSION=17 cd %%PREFIX%%/minecraft-server -su -m mcserver -c "java $(cat %%PREFIX%%/etc/minecraft-server/java-args.txt) -jar server.jar nogui" +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 4745899af7e1..6eeaf0d09cae 100644 --- a/games/minecraft-server/files/minecraft.in +++ b/games/minecraft-server/files/minecraft.in @@ -1,108 +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 + 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 786763611306..12946b6a016a 100644 --- a/games/minecraft-server/files/pkg-deinstall.in +++ b/games/minecraft-server/files/pkg-deinstall.in @@ -1,12 +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%%" diff --git a/games/minecraft-server/pkg-plist b/games/minecraft-server/pkg-plist index 98953a4cc201..b5af99880ca4 100644 --- a/games/minecraft-server/pkg-plist +++ b/games/minecraft-server/pkg-plist @@ -1,21 +1,42 @@ %%STANDALONE%%bin/minecraft-server @owner mcserver @group mcserver %%STANDALONE%%%%ETCDIR%%/java-args.txt minecraft-server/banned-ips.json minecraft-server/banned-players.json minecraft-server/debug minecraft-server/eula.txt minecraft-server/logs minecraft-server/server.jar minecraft-server/ops.json minecraft-server/server.properties minecraft-server/usercache.json minecraft-server/whitelist.json minecraft-server/world @dir %%ETCDIR%% @dir minecraft-server @dir /var/db/minecraft-server @dir /var/log/minecraft-server +@rmtry minecraft-server/libraries/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar +@rmtry minecraft-server/libraries/it/unimi/dsi/fastutil/8.5.6/fastutil-8.5.6.jar +@rmtry minecraft-server/libraries/org/slf4j/slf4j-api/1.8.0-beta4/slf4j-api-1.8.0-beta4.jar +@rmtry minecraft-server/libraries/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar +@rmtry minecraft-server/libraries/org/apache/logging/log4j/log4j-core/2.14.1/log4j-core-2.14.1.jar +@rmtry minecraft-server/libraries/org/apache/logging/log4j/log4j-slf4j18-impl/2.14.1/log4j-slf4j18-impl-2.14.1.jar +@rmtry minecraft-server/libraries/org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1.jar +@rmtry minecraft-server/libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar +@rmtry minecraft-server/libraries/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar +@rmtry minecraft-server/libraries/net/java/dev/jna/jna-platform/5.9.0/jna-platform-5.9.0.jar +@rmtry minecraft-server/libraries/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar +@rmtry minecraft-server/libraries/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar +@rmtry minecraft-server/libraries/com/google/code/gson/gson/2.8.8/gson-2.8.8.ja +@rmtry minecraft-server/libraries/com/google/code/gson/gson/2.8.8/gson-2.8.8.jar +@rmtry minecraft-server/libraries/com/mojang/datafixerupper/4.0.26/datafixerupper-4.0.26.jar +@rmtry minecraft-server/libraries/com/mojang/brigadier/1.0.18/brigadier-1.0.18.jar +@rmtry minecraft-server/libraries/com/mojang/authlib/3.2.38/authlib-3.2.38.jar +@rmtry minecraft-server/libraries/com/mojang/javabridge/1.2.24/javabridge-1.2.24.jar +@rmtry minecraft-server/libraries/com/github/oshi/oshi-core/5.8.2/oshi-core-5.8.2.jar +@rmtry minecraft-server/libraries/io/netty/netty-all/4.1.68.Final/netty-all-4.1.68.Final.jar +@rmtry minecraft-server/versions/1.18.1/server-1.18.1.jar @owner @group