neoforge-server
The package downloads a prebuilt installer JAR from the project's official Maven repository, which is a standard and trusted distribution method for Java-based projects; the source host, while not on a general whitelist, is specific to the project and the download is verified via checksum, making the risk low.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt installer JAR from the project's official Maven repository, which is a standard and trusted distribution method for Java-based projects; the source host, while not on a general whitelist, is specific to the project and the download is verified via checksum, making the risk low.
1 higher static finding superseded - not the current verdict (shown for transparency)
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:34
"https://maven.neoforged.net/releases/net/neoforged/neoforge/${pkgver}/neoforge-${pkgver}-installer.jar"
PKGBUILD
1 offending line(s) highlighted# Maintainer: Justin Kromlinger <hashworks@archlinux.org>
# Contributor: Brian Elder <gth747m@gmail.com>
pkgname=neoforge-server
pkgdesc="Neo Modding API for Minecraft, based on Forge"
url="https://neoforged.net"
# See https://projects.neoforged.net/neoforged/neoforge to select a version
pkgver=21.1.172 # Minecraft version 1.21.1
pkgrel=2
_licensever=1.21.x
_srvpath="/opt"
arch=("any")
license=("LGPL-2.1-or-later")
depends=("jdk-openjdk")
optdepends=("tar: needed in order to create world backups")
provides=("neoforge-server=${forge_major}.${forge_minor}.${forge_patch}")
backup=("opt/neoforge-server/banned-ips.json"
"opt/neoforge-server/banned-players.json"
"opt/neoforge-server/config"
"opt/neoforge-server/eula.txt"
"opt/neoforge-server/logs"
"opt/neoforge-server/mods"
"opt/neoforge-server/ops.json"
"opt/neoforge-server/server.properties"
"opt/neoforge-server/usercache.json"
"opt/neoforge-server/user_jvm_args.txt"
"opt/neoforge-server/whitelist.json"
"opt/neoforge-server/world")
install="neoforge-server.install"
source=("https://raw.githubusercontent.com/neoforged/NeoForge/refs/heads/${_licensever}/LICENSE.txt"
"https://maven.neoforged.net/releases/net/neoforged/neoforge/${pkgver}/neoforge-${pkgver}-installer.jar"
"neoforge-server.service"
"eula.txt")
noextract=("neoforge-${pkgver}-installer.jar")
sha512sums=('d5591535f567c0504f99ef81904646ef370608b6008feaca4310786adbeae06a402d9a283847172241bce679501c39af4c0b271facc6c6ea2d7b7edbc798c1f9'
'e6e0cd6d176e4c040229ef0df8150f92e3a916ad5663580f39e8ce7a32ca479efb418f99bed8228be89cfde4310301ee49a23f9216f0aaf672c2105321441166'
'51dd56ffa9d6f21f829cdee7f75602f14769ad5ffdd89e4c1700ad0bfd393224a179fcd6cb58a8f94015860d1113047f8058883ee8479a9147666da64576cf39'
'68205ffc60327c67a5ebe778598c3350d64b48aad9dacf52fcde435a535a074ba2056db30dff1b18e3c8e38510acd6ececa298b13cd4c4203636560fa4cf70cb')
prepare() {
mkdir -p neoforge-server || exit
}
build() {
java -jar "./neoforge-${pkgver}-installer.jar" --installServer ./neoforge-server
}
package() {
install -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -Dm444 "LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}"
install -d "${pkgdir}/${_srvpath}/${pkgname}"
install -Dm644 "eula.txt" "${pkgdir}/${_srvpath}/${pkgname}"
cp -r "./${pkgname}" "${pkgdir}/${_srvpath}"
rm "${pkgdir}/${_srvpath}/${pkgname}/run.bat"
install -Dm644 "${srcdir}/neoforge-server.service" "${pkgdir}/usr/lib/systemd/system/neoforge-server.service"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |