diff options
author | Mistreaper | 2022-10-22 16:03:30 +0700 |
---|---|---|
committer | Mistreaper | 2022-10-22 16:03:30 +0700 |
commit | b914b11fdec39674bd1ec3891242902a39fe210e (patch) | |
tree | 46bd4aaeb66e0beab6d76b404c17519d9ee68181 | |
download | aur-b914b11fdec39674bd1ec3891242902a39fe210e.tar.gz |
initial commit
-rw-r--r-- | .SRCINFO | 25 | ||||
-rw-r--r-- | PKGBUILD | 84 | ||||
-rw-r--r-- | forge-server.install | 28 |
3 files changed, 137 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..bd2ca80093f1 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,25 @@ +pkgbase = forge-server-1.19.2 + pkgdesc = Forge is a free, open-source modding API all of your favourite mods use! + pkgver = 43.1.47 + pkgrel = 2 + url = https://minecraftforge.net + install = forge-server.install + arch = any + license = custom + makedepends = jdk-openjdk + depends = jdk-openjdk + depends = tmux + depends = forge-hooks + optdepends = tar: needed in order to create world backups + optdepends = netcat: required in order to suspend an idle server + provides = forge-server=43.1.47 + noextract = forge-1.19.2-43.1.47-installer.jar + backup = etc/conf.d/forge + source = git+https://github.com/Edenhofer/minecraft-server + source = https://raw.githubusercontent.com/MinecraftForge/MinecraftForge/1.19.x/LICENSE.txt + source = https://maven.minecraftforge.net/net/minecraftforge/forge/1.19.2-43.1.47/forge-1.19.2-43.1.47-installer.jar + sha512sums = SKIP + sha512sums = SKIP + sha512sums = SKIP + +pkgname = forge-server-1.19.2 diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..b836b9131317 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,84 @@ +# Maintainer: Mistreaper <mistreaper-doge@proton.me> +# Contributor: Dominik Opyd <d.opyd@oad.earth> +# Contributor: thisischrys <thisischrys+aur@gmail.com> +# Contributor: Nitroretro <nitroretro@protonmail.com> + +# Based on the `minecraft-server` AUR package by: +## Maintainer: Gordian Edenhofer <gordian.edenhofer@gmail.com> +## Contributor: Philip Abernethy <chais.z3r0@gmail.com> +## Contributor: sowieso <sowieso@dukun.de> + +minver=1.19.2 +srvpath=/srv/forge-1.19.2 + +pkgver=43.1.47 +pkgrel=2 +pkgname=forge-server-1.19.2 +pkgdesc="Forge is a free, open-source modding API all of your favourite mods use!" +url="https://minecraftforge.net" +arch=('any') +license=("custom") +depends=("jdk-openjdk" "tmux" "forge-hooks") +makedepends=("jdk-openjdk") +optdepends=("tar: needed in order to create world backups" + "netcat: required in order to suspend an idle server") +provides=("forge-server=${pkgver}") +backup=("etc/conf.d/forge") +install=forge-server.install +source=(git+https://github.com/Edenhofer/minecraft-server + https://raw.githubusercontent.com/MinecraftForge/MinecraftForge/1.19.x/LICENSE.txt + https://maven.minecraftforge.net/net/minecraftforge/forge/1.19.2-43.1.47/forge-1.19.2-43.1.47-installer.jar) +noextract=(forge-${minver}-${pkgver}-installer.jar) +sha512sums=('SKIP' + 'SKIP' + 'SKIP') + +frgpath=${srvpath}/libraries/net/minecraftforge/forge/${minver}-${pkgver} + +prepare() { + mkdir -p forge-server && cd forge-server + + java -jar ../forge-${minver}-${pkgver}-installer.jar --installServer +} + +build() { + cd minecraft-server + + make \ + GAME=forge \ + INAME=forged \ + SERVER_ROOT=${srvpath} \ + SERVER_START_CMD="java @${frgpath}/user_jvm_args.txt @${frgpath}/unix_args.txt" \ + MAIN_EXECUTABLE=forge-${minver}-${pkgver}-server.jar \ + all +} + +package() { + cd minecraft-server + + make \ + GAME=forge \ + INAME=forged \ + DESTDIR=$pkgdir \ + install + + cd ../forge-server + + rm *.log *.bat + + rm libraries/net/minecraftforge/forge/${minver}-${pkgver}/win_args.txt + + find libraries -type f -print0 | xargs -0 -i@ install -Dm644 "@" "${pkgdir}${srvpath}/@" + + install -Dm 644 user_jvm_args.txt ${pkgdir}${frgpath}/user_jvm_args.txt + install -Dm 644 $srcdir/LICENSE.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE + + mkdir -p $pkgdir/var/log/ + + install -dm2755 $pkgdir$srvpath/logs + install -dm2755 $pkgdir$srvpath/mods + + ln -s ${srvpath}/logs $pkgdir/var/log/forge + + chmod g+ws $pkgdir$srvpath +} diff --git a/forge-server.install b/forge-server.install new file mode 100644 index 000000000000..5150eaf253fc --- /dev/null +++ b/forge-server.install @@ -0,0 +1,28 @@ +_game="forge" +_user="forge" +_server_root="/srv/forge" + +post_install() { + chown -R "${user}:${user}" "$_server_root" + + echo "The world data is stored under ${_server_root} and the server runs as ${_user} user to increase security." + echo "Use the ${_game} script under /usr/bin/${_game}d to start, stop or backup the server." + echo "Adjust the configuration file under /etc/conf.d/${_game} to your liking." + echo "For the server to start you have to accept the EULA in ${_server_root}/eula.txt !" + echo "The EULA file is generated after the first server start." +} + +post_upgrade() { + chown -R "${user}:${user}" "$_server_root" + + echo "The management script switched from GNU screen to tmux." + echo "Manual intervention is needed to close the previous GNU screen sessions:" + echo "Use \`sudo -u ${_user} screen -S ${_game} -rx\` to attach to the ${_game} session and stop it." + echo "Do the same for the \`idle_server_${_game}\` session if one is running." +} + +post_remove() { + [ -d "$_server_root" ] && echo "Game saves in ${_server_root} have been kept on your system." + echo "The configuration in /etc/conf.d/ has been kept on your system." + echo "The ${_forge_user} user has been kept on your system." +} |