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:
|
||||
saned:*:194:
|
||||
radns:*:195:
|
||||
mcserver:*:199:
|
||||
sympa:*:200:
|
||||
dspam:*:202:
|
||||
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
|
||||
saned:*:194:194::0:0:SANE Scanner Daemon:/nonexistent:/bin/sh
|
||||
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
|
||||
privoxy:*:201:201::0:0:Privoxy proxy user:/nonexistent:/usr/sbin/nologin
|
||||
dspam:*:202:202::0:0:Dspam:/nonexistent:/usr/sbin/nologin
|
||||
|
@ -6,28 +6,37 @@
|
||||
#
|
||||
|
||||
PORTNAME= minecraft-server
|
||||
PORTVERSION= 1.0.0
|
||||
PORTVERSION= 1.0.1
|
||||
CATEGORIES= games java
|
||||
MASTER_SITES= http://s3.amazonaws.com/MinecraftDownload/launcher/:minecraft \
|
||||
http://www.minecraftwiki.net/images/f/f7/:icon
|
||||
DISTNAME= minecraft_server
|
||||
DISTFILES= minecraft_server.jar:minecraft \
|
||||
Bookshelf.png:icon
|
||||
http://www.minecraftwiki.net/images/f/f7/:icon
|
||||
DISTNAME= minecraft_server
|
||||
DISTFILES= minecraft_server.jar:minecraft \
|
||||
Bookshelf.png:icon
|
||||
EXTRACT_ONLY=
|
||||
|
||||
MAINTAINER= freebsd@rakor-net.de
|
||||
COMMENT= Server for the block building game
|
||||
MAINTAINER= freebsd@rakor-net.de
|
||||
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>
|
||||
|
||||
WRKSRC= ${WRKDIR}
|
||||
NO_BUILD= yes
|
||||
USE_JAVA= yes
|
||||
WRKSRC= ${WRKDIR}
|
||||
NO_BUILD= yes
|
||||
USE_JAVA= yes
|
||||
USERS?= mcserver
|
||||
GROUPS?= ${USERS}
|
||||
USE_RC_SUBR= minecraft
|
||||
SUB_FILES= pkg-deinstall \
|
||||
pkg-message
|
||||
|
||||
.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
|
||||
|
||||
.if !defined(WITHOUT_X11)
|
||||
@ -54,5 +63,51 @@ do-install:
|
||||
${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} ${PREFIX}/bin/
|
||||
.endif
|
||||
${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>
|
||||
|
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
|
||||
%%X11%%share/minecraft-server/Bookshelf.png
|
||||
%%X11%%bin/minecraft-server
|
||||
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