mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-18 19:49:40 +00:00
- Functionality upgrade. Add in *.txt.sample files so that uninstall/pkg_delete won't delete users settings [1]
- Add mcserver user to GIDs/UIDs [1] - Added rc startup script [1] - Lots of PLIST_SUB/SUB_FILES patches to allow substitution, moved several pkg* files to files/*.in [1] - made USERS a ?= in case server had previously been running as a different user [2] PR: ports/163920 [1] Submitted by: maintainer [1] Reviewed by: scheidell [2] Approved by: maintainer, gabor (mentor)
This commit is contained in:
parent
8b7c5a93ea
commit
d9939c32b9
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=289019
1
GIDs
1
GIDs
@ -96,6 +96,7 @@ moinmoin:*:192:
|
|||||||
cups:*:193:
|
cups:*:193:
|
||||||
saned:*:194:
|
saned:*:194:
|
||||||
radns:*:195:
|
radns:*:195:
|
||||||
|
mcserver:*:199:
|
||||||
sympa:*:200:
|
sympa:*:200:
|
||||||
dspam:*:202:
|
dspam:*:202:
|
||||||
yate:*:204:
|
yate:*:204:
|
||||||
|
1
UIDs
1
UIDs
@ -102,6 +102,7 @@ moinmoin:*:192:192::0:0:MoinMoin User:/nonexistent:/usr/sbin/nologin
|
|||||||
cups:*:193:193::0:0:Cups Owner:/nonexistent:/usr/sbin/nologin
|
cups:*:193:193::0:0:Cups Owner:/nonexistent:/usr/sbin/nologin
|
||||||
saned:*:194:194::0:0:SANE Scanner Daemon:/nonexistent:/bin/sh
|
saned:*:194:194::0:0:SANE Scanner Daemon:/nonexistent:/bin/sh
|
||||||
radns:*:195:195::0:0:radns user:/nonexistent:/sbin/nologin
|
radns:*:195:195::0:0:radns user:/nonexistent:/sbin/nologin
|
||||||
|
mcserver:*:199:199::0:0:Minecraft Server:/nonexistent:/bin/sh
|
||||||
sympa:*:200:200::0:0:Sympa Owner:/nonexistent:/usr/sbin/nologin
|
sympa:*:200:200::0:0:Sympa Owner:/nonexistent:/usr/sbin/nologin
|
||||||
privoxy:*:201:201::0:0:Privoxy proxy user:/nonexistent:/usr/sbin/nologin
|
privoxy:*:201:201::0:0:Privoxy proxy user:/nonexistent:/usr/sbin/nologin
|
||||||
dspam:*:202:202::0:0:Dspam:/nonexistent:/usr/sbin/nologin
|
dspam:*:202:202::0:0:Dspam:/nonexistent:/usr/sbin/nologin
|
||||||
|
@ -6,28 +6,37 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
PORTNAME= minecraft-server
|
PORTNAME= minecraft-server
|
||||||
PORTVERSION= 1.0.0
|
PORTVERSION= 1.0.1
|
||||||
CATEGORIES= games java
|
CATEGORIES= games java
|
||||||
MASTER_SITES= http://s3.amazonaws.com/MinecraftDownload/launcher/:minecraft \
|
MASTER_SITES= http://s3.amazonaws.com/MinecraftDownload/launcher/:minecraft \
|
||||||
http://www.minecraftwiki.net/images/f/f7/:icon
|
http://www.minecraftwiki.net/images/f/f7/:icon
|
||||||
DISTNAME= minecraft_server
|
DISTNAME= minecraft_server
|
||||||
DISTFILES= minecraft_server.jar:minecraft \
|
DISTFILES= minecraft_server.jar:minecraft \
|
||||||
Bookshelf.png:icon
|
Bookshelf.png:icon
|
||||||
EXTRACT_ONLY=
|
EXTRACT_ONLY=
|
||||||
|
|
||||||
MAINTAINER= freebsd@rakor-net.de
|
MAINTAINER= freebsd@rakor-net.de
|
||||||
COMMENT= Server for the block building game
|
COMMENT= Server for the block building game
|
||||||
|
|
||||||
OPTIONS= X11 "Build with X11 support" On
|
RUN_DEPENDS= tmux:${PORTSDIR}/sysutils/tmux
|
||||||
|
|
||||||
|
OPTIONS= X11 "Build with X11 support" On
|
||||||
|
|
||||||
|
ETCDIR= ${PREFIX}/etc/minecraft
|
||||||
|
|
||||||
.include <bsd.port.options.mk>
|
.include <bsd.port.options.mk>
|
||||||
|
|
||||||
WRKSRC= ${WRKDIR}
|
WRKSRC= ${WRKDIR}
|
||||||
NO_BUILD= yes
|
NO_BUILD= yes
|
||||||
USE_JAVA= yes
|
USE_JAVA= yes
|
||||||
|
USERS?= mcserver
|
||||||
|
GROUPS?= ${USERS}
|
||||||
|
USE_RC_SUBR= minecraft
|
||||||
|
SUB_FILES= pkg-deinstall \
|
||||||
|
pkg-message
|
||||||
|
|
||||||
.if !defined(WITHOUT_X11)
|
.if !defined(WITHOUT_X11)
|
||||||
DESKTOP_ENTRIES= "Minecraft-Server" "Block building game (server)" "${DATADIR}/Bookshelf.png" "minecraft-server" "Application;Game;" false
|
DESKTOP_ENTRIES="Minecraft-Server" "Block building game (server)" "${DATADIR}/Bookshelf.png" "minecraft-server" "Application;Game;" false
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if !defined(WITHOUT_X11)
|
.if !defined(WITHOUT_X11)
|
||||||
@ -54,5 +63,51 @@ do-install:
|
|||||||
${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} ${PREFIX}/bin/
|
${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} ${PREFIX}/bin/
|
||||||
.endif
|
.endif
|
||||||
${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME}-nogui ${PREFIX}/bin/
|
${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME}-nogui ${PREFIX}/bin/
|
||||||
|
${MKDIR} ${ETCDIR}
|
||||||
|
${INSTALL_DATA} ${FILESDIR}/server.properties.sample ${DATADIR}/server.properties.sample
|
||||||
|
${INSTALL_DATA} ${FILESDIR}/ops.txt.sample ${DATADIR}/ops.txt.sample
|
||||||
|
${INSTALL_DATA} ${FILESDIR}/white-list.txt.sample ${DATADIR}/white-list.txt.sample
|
||||||
|
${INSTALL_DATA} ${FILESDIR}/banned-ips.txt.sample ${DATADIR}/banned-ips.txt.sample
|
||||||
|
${INSTALL_DATA} ${FILESDIR}/banned-players.txt.sample ${DATADIR}/banned-players.txt.sample
|
||||||
|
if [ ! -f ${ETCDIR}/server.properties ]; then \
|
||||||
|
${CP} -p ${DATADIR}/server.properties.sample ${ETCDIR}/server.properties ; \
|
||||||
|
fi
|
||||||
|
if [ ! -f ${ETCDIR}/ops.txt ]; then \
|
||||||
|
${CP} -p ${DATADIR}/ops.txt.sample ${ETCDIR}/ops.txt ; \
|
||||||
|
fi
|
||||||
|
if [ ! -f ${ETCDIR}/white-list.txt ]; then \
|
||||||
|
${CP} -p ${DATADIR}/white-list.txt.sample ${ETCDIR}/white-list.txt ; \
|
||||||
|
fi
|
||||||
|
if [ ! -f ${ETCDIR}/banned-ips.txt ]; then \
|
||||||
|
${CP} -p ${DATADIR}/banned-ips.txt.sample ${ETCDIR}/banned-ips.txt ; \
|
||||||
|
fi
|
||||||
|
if [ ! -f ${ETCDIR}/banned-players.txt ]; then \
|
||||||
|
${CP} -p ${DATADIR}/banned-players.txt.sample ${ETCDIR}/banned-players.txt ; \
|
||||||
|
fi
|
||||||
|
${LN} -s ${ETCDIR}/server.properties ${DATADIR}/server.properties
|
||||||
|
${LN} -s ${ETCDIR}/ops.txt ${DATADIR}/ops.txt
|
||||||
|
${LN} -s ${ETCDIR}/white-list.txt ${DATADIR}/white-list.txt
|
||||||
|
${LN} -s ${ETCDIR}/banned-ips.txt ${DATADIR}/banned-ips.txt
|
||||||
|
${LN} -s ${ETCDIR}/banned-players.txt ${DATADIR}/banned-players.txt
|
||||||
|
${CHOWN} -R ${USERS}:${GROUPS} ${DATADIR}
|
||||||
|
${CHOWN} -R ${USERS}:${GROUPS} ${ETCDIR}
|
||||||
|
${CHMOD} -R 644 ${DATADIR}/banned-ips.txt
|
||||||
|
${CHMOD} -R 644 ${DATADIR}/banned-players.txt
|
||||||
|
${CHMOD} -R 644 ${DATADIR}/ops.txt
|
||||||
|
${CHMOD} -R 644 ${DATADIR}/white-list.txt
|
||||||
|
${CHMOD} -R 644 ${DATADIR}/server.properties
|
||||||
|
${CHMOD} -R 644 ${DATADIR}/banned-ips.txt.sample
|
||||||
|
${CHMOD} -R 644 ${DATADIR}/banned-players.txt.sample
|
||||||
|
${CHMOD} -R 644 ${DATADIR}/ops.txt.sample
|
||||||
|
${CHMOD} -R 644 ${DATADIR}/white-list.txt.sample
|
||||||
|
${CHMOD} -R 644 ${DATADIR}/server.properties.sample
|
||||||
|
${CHMOD} -R 644 ${ETCDIR}/banned-ips.txt
|
||||||
|
${CHMOD} -R 644 ${ETCDIR}/banned-players.txt
|
||||||
|
${CHMOD} -R 644 ${ETCDIR}/ops.txt
|
||||||
|
${CHMOD} -R 644 ${ETCDIR}/white-list.txt
|
||||||
|
${CHMOD} -R 644 ${ETCDIR}/server.properties
|
||||||
|
|
||||||
|
post-install:
|
||||||
|
${CAT} ${PKGMESSAGE}
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
.include <bsd.port.mk>
|
||||||
|
1
games/minecraft-server/files/banned-ips.txt.sample
Normal file
1
games/minecraft-server/files/banned-ips.txt.sample
Normal file
@ -0,0 +1 @@
|
|||||||
|
# each line one ip.
|
1
games/minecraft-server/files/banned-players.txt.sample
Normal file
1
games/minecraft-server/files/banned-players.txt.sample
Normal file
@ -0,0 +1 @@
|
|||||||
|
# each line one name
|
120
games/minecraft-server/files/minecraft.in
Normal file
120
games/minecraft-server/files/minecraft.in
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# PROVIDE: minecraft
|
||||||
|
# REQUIRE: LOGIN
|
||||||
|
# KEYWORD: shutdown
|
||||||
|
|
||||||
|
. /etc/rc.subr
|
||||||
|
|
||||||
|
name="minecraft"
|
||||||
|
rcvar=`set_rcvar`
|
||||||
|
|
||||||
|
load_rc_config $name
|
||||||
|
|
||||||
|
extra_commands="clean killworld clearlog"
|
||||||
|
start_cmd="${name}_start"
|
||||||
|
stop_cmd="${name}_stop"
|
||||||
|
clean_cmd="${name}_clean"
|
||||||
|
killworld_cmd="${name}_killworld"
|
||||||
|
clearlog_cmd="${name}_clearlog"
|
||||||
|
|
||||||
|
eval "${rcvar}=\${${rcvar}:-'NO'}"
|
||||||
|
|
||||||
|
minecraft_start()
|
||||||
|
{
|
||||||
|
if [ -e %%DATADIR%%/server.log.lck ]; then
|
||||||
|
echo "Server already running."
|
||||||
|
else
|
||||||
|
echo "Starting Minecraft-Server..."
|
||||||
|
cd %%DATADIR%%
|
||||||
|
/usr/bin/su %%MC_USER%% -c "%%PREFIX%%/bin/tmux new-session -d -s minecraft \"java -Xmx1024M -Xms1024M -jar %%DATADIR%%/minecraft_server.jar nogui\""
|
||||||
|
|
||||||
|
i=0
|
||||||
|
while [ $i -lt 15 ]; do
|
||||||
|
i=$(($i + 1))
|
||||||
|
if [ -e %%DATADIR%%/server.log.lck ]; then
|
||||||
|
echo "Minecraft-Server running."
|
||||||
|
break
|
||||||
|
else
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $i -ge 10 ]; then
|
||||||
|
echo "ERROR: Server could not be startet."
|
||||||
|
/usr/bin/su mcserver -c "%%PREFIX%%/bin/tmux kill-session -t minecraft"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
minecraft_stop(){
|
||||||
|
if [ -e %%DATADIR%%/server.log.lck ]; then
|
||||||
|
echo "Halting Minecraft-Server."
|
||||||
|
/usr/bin/su mcserver -c "%%PREFIX%%/bin/tmux send -t minecraft:0.0 stop \"Enter\""
|
||||||
|
|
||||||
|
|
||||||
|
i=0
|
||||||
|
while [ $i -lt 15 ]; do
|
||||||
|
i=$(($i + 1))
|
||||||
|
if [ -e %%DATADIR%%/server.log.lck ]; then
|
||||||
|
sleep 1
|
||||||
|
else
|
||||||
|
echo "Minecraft-Server haltet."
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $i -ge 10 ];then
|
||||||
|
echo "ERROR: Server could not be haltet."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Minecraft-Server not running."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
minecraft_clean(){
|
||||||
|
echo "Giving a stop to the server..."
|
||||||
|
minecraft_stop
|
||||||
|
echo "Cleaning..."
|
||||||
|
if [ -e %%DATADIR%%/server.log.lck ]; then
|
||||||
|
rm %%DATADIR%%/server.log.lck
|
||||||
|
echo "Cleaning done."
|
||||||
|
else
|
||||||
|
echo "Nothing to do. No unclean sessions."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
minecraft_killworld(){
|
||||||
|
echo "Trying to delete World"
|
||||||
|
if [ -e %%DATADIR%%/server.log.lck ]; then
|
||||||
|
echo "Server seems to be running. Stop server before deletion."
|
||||||
|
else
|
||||||
|
rm -rf %%DATADIR%%/world
|
||||||
|
if [ -d %%DATADIR%%/world ]; then
|
||||||
|
echo "ERROR: World could not be deleted"
|
||||||
|
else
|
||||||
|
echo "World deleted. Next serverstart will generate a new one"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
minecraft_clearlog(){
|
||||||
|
echo "Trying to delete server.log"
|
||||||
|
if [ -e %%DATADIR%%/server.log.lck ]; then
|
||||||
|
echo "Server seems to be running. Stop server before deletion."
|
||||||
|
else
|
||||||
|
if [ -e %%DATADIR%%/server.log ]; then
|
||||||
|
rm %%DATADIR%%/server.log
|
||||||
|
if [ -e %%DATADIR%%/server.log ]; then
|
||||||
|
echo "ERROR: server.log could not be deleted"
|
||||||
|
else
|
||||||
|
echo "server.log deleted."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "No server.log found"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
run_rc_command "$1"
|
||||||
|
|
1
games/minecraft-server/files/ops.txt.sample
Normal file
1
games/minecraft-server/files/ops.txt.sample
Normal file
@ -0,0 +1 @@
|
|||||||
|
# each line one name
|
26
games/minecraft-server/files/pkg-deinstall.in
Normal file
26
games/minecraft-server/files/pkg-deinstall.in
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ "$2" != "POST-DEINSTALL" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d %%DATADIR%% ]; then
|
||||||
|
echo "There are some files (like your world and your server.log)"
|
||||||
|
echo "left in %%DATADIR%%."
|
||||||
|
echo "Use 'rm -rf %%DATADIR%%' to delete them."
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d %%ETCDIR%% ]; then
|
||||||
|
echo "There are some changed config files left in %%ETCDIR%%."
|
||||||
|
echo "Use 'rm -rf %%ETCDIR%%' to delete them."
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
USER=%%MC_USER%%
|
||||||
|
|
||||||
|
if pw usershow "${USER}" 2>/dev/null 1>&2; then
|
||||||
|
echo "To delete ${USER} user permanently, use 'rmuser ${USER}'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
40
games/minecraft-server/files/pkg-message.in
Normal file
40
games/minecraft-server/files/pkg-message.in
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
**************************************************
|
||||||
|
Daemon:
|
||||||
|
The user mcserver has been added to your system.
|
||||||
|
|
||||||
|
To run the server automativally with the system
|
||||||
|
add the following line to your /etc/rc.conf:
|
||||||
|
|
||||||
|
minecraft_enable="YES"
|
||||||
|
|
||||||
|
Serverfiles will be in
|
||||||
|
%%PREFIX%%/share/minecraft-server
|
||||||
|
|
||||||
|
Configuration can be done using the config-files
|
||||||
|
or as OP using the Client. Config files are in
|
||||||
|
%%PREFIX%%/etc/minecraft
|
||||||
|
|
||||||
|
If you have trouble starting or stopping the
|
||||||
|
server try to delete an unclean server.log.lck:
|
||||||
|
|
||||||
|
%%PREFIX%%/etc/rc.d/minecraft clean
|
||||||
|
|
||||||
|
If you don't like your generated world it can
|
||||||
|
be deleted (do generate a new one next time
|
||||||
|
the server starts) using:
|
||||||
|
|
||||||
|
%%PREFIX%%/etc/rc.d/minecraft killworld
|
||||||
|
|
||||||
|
You can delete the server.log (so it's not
|
||||||
|
getting to fat) using:
|
||||||
|
|
||||||
|
%%PREFIX%%/etc/rc.d/minecraft clearlog
|
||||||
|
|
||||||
|
Unprivileged users:
|
||||||
|
Running a server as unprivilieged user try
|
||||||
|
minecraft-server{-nogui}
|
||||||
|
|
||||||
|
The serverfiles will be in
|
||||||
|
~/.minecraft-server
|
||||||
|
|
||||||
|
**************************************************
|
24
games/minecraft-server/files/server.properties.sample
Normal file
24
games/minecraft-server/files/server.properties.sample
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#Minecraft server properties
|
||||||
|
#Thu Dec 22 00:12:43 CET 2011
|
||||||
|
|
||||||
|
#Do NOT change the Levelname or some Scripts will no longer worf for
|
||||||
|
#you!
|
||||||
|
level-name=world
|
||||||
|
|
||||||
|
allow-nether=true
|
||||||
|
allow-flight=false
|
||||||
|
enable-query=false
|
||||||
|
server-port=25565
|
||||||
|
enable-rcon=false
|
||||||
|
level-seed=
|
||||||
|
server-ip=
|
||||||
|
white-list=false
|
||||||
|
spawn-animals=true
|
||||||
|
online-mode=true
|
||||||
|
pvp=true
|
||||||
|
difficulty=1
|
||||||
|
gamemode=0
|
||||||
|
max-players=20
|
||||||
|
spawn-monsters=true
|
||||||
|
view-distance=10
|
||||||
|
motd=A FreeBSD Minecraft Server
|
1
games/minecraft-server/files/white-list.txt.sample
Normal file
1
games/minecraft-server/files/white-list.txt.sample
Normal file
@ -0,0 +1 @@
|
|||||||
|
# each line one name.
|
@ -1,5 +1,28 @@
|
|||||||
|
@stopdaemon minecraft
|
||||||
share/minecraft-server/minecraft_server.jar
|
share/minecraft-server/minecraft_server.jar
|
||||||
%%X11%%share/minecraft-server/Bookshelf.png
|
%%X11%%share/minecraft-server/Bookshelf.png
|
||||||
%%X11%%bin/minecraft-server
|
%%X11%%bin/minecraft-server
|
||||||
bin/minecraft-server-nogui
|
bin/minecraft-server-nogui
|
||||||
@dirrm share/minecraft-server
|
@exec mkdir -p %D/etc/minecraft
|
||||||
|
@unexec if cmp -s %D/share/minecraft-server/ops.txt.sample %D/etc/minecraft/ops.txt; then rm -f %D/etc/minecraft/ops.txt; fi
|
||||||
|
@unexec if cmp -s %D/share/minecraft-server/banned-ips.txt.sample %D/etc/minecraft/banned-ips.txt; then rm -f %D/etc/minecraft/banned-ips.txt; fi
|
||||||
|
@unexec if cmp -s %D/share/minecraft-server/banned-players.txt.sample %D/etc/minecraft/banned-players.txt; then rm -f %D/etc/minecraft/banned-players.txt; fi
|
||||||
|
@unexec if cmp -s %D/share/minecraft-server/white-list.txt.sample %D/etc/minecraft/white-list.txt; then rm -f %D/etc/minecraft/white-list.txt; fi
|
||||||
|
@unexec if cmp -s %D/share/minecraft-server/server.properties.sample %D/etc/minecraft/server.properties; then rm -f %D/etc/minecraft/server.properties; fi
|
||||||
|
share/minecraft-server/server.properties
|
||||||
|
share/minecraft-server/ops.txt
|
||||||
|
share/minecraft-server/white-list.txt
|
||||||
|
share/minecraft-server/banned-ips.txt
|
||||||
|
share/minecraft-server/banned-players.txt
|
||||||
|
share/minecraft-server/server.properties.sample
|
||||||
|
@exec if [ ! -f %D/etc/minecraft/server.properties ] ; then cp -p %D/%F %B/server.properties; fi
|
||||||
|
share/minecraft-server/ops.txt.sample
|
||||||
|
@exec if [ ! -f %D/etc/minecraft/ops.txt ] ; then cp -p %D/%F %B/ops.txt; fi
|
||||||
|
share/minecraft-server/white-list.txt.sample
|
||||||
|
@exec if [ ! -f %D/etc/minecraft/white-list.txt ] ; then cp -p %D/%F %B/white-list.txt; fi
|
||||||
|
share/minecraft-server/banned-ips.txt.sample
|
||||||
|
@exec if [ ! -f %D/etc/minecraft/banned-ips.txt ] ; then cp -p %D/%F %B/banned-ips.txt; fi
|
||||||
|
share/minecraft-server/banned-players.txt.sample
|
||||||
|
@exec if [ ! -f %D/etc/minecraft/banned-players.txt ] ; then cp -p %D/%F %B/banned-players.txt; fi
|
||||||
|
@dirrmtry share/minecraft-server
|
||||||
|
@dirrmtry etc/minecraft
|
||||||
|
Loading…
Reference in New Issue
Block a user