jsettlers-git
The package downloads a Gradle distribution from services.gradle.org, a legitimate and official source, which is used to build the project from its own GitHub repository; the build process is transparent and uses pinned checksums, posing no supply-chain risk.
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 Gradle distribution from services.gradle.org, a legitimate and official source, which is used to build the project from its own GitHub repository; the build process is transparent and uses pinned checksums, posing no supply-chain risk.
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:23
"https://services.gradle.org/distributions/gradle-${_gradlever}-all.zip"
PKGBUILD
1 offending line(s) highlighted# Maintainer: aligator <aligator at-symbol aligator.dev>
pkgrel=1
_pkgname='jsettlers'
pkgname=${_pkgname}'-git'
pkgver=0.6.0.8.alpha.r0.g990134459
pkgver() {
cd ${_pkgname}
git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
_gradlever='7.4.2'
arch=('any')
pkgdesc='A Remake of "The Settlers III" for Windows, Linux, Mac and Android - forked by paulwedeck'
url='https://github.com/paulwedeck/settlers-remake'
license=('MIT')
provides=(${_pkgname})
depends=('java-runtime>=11' 'sh')
optdepends=('settlers3-demo-data')
makedepends=('jdk11-openjdk' 'unzip' 'git')
install=${pkgname}'.install'
source=("jsettlers::git+https://github.com/paulwedeck/settlers-remake.git"
"https://services.gradle.org/distributions/gradle-${_gradlever}-all.zip"
"jsettlers-mapcreator.desktop"
"jsettlers.desktop")
noextract=("gradle-${_gradlever}-all.zip")
sha512sums=('SKIP'
'2e1d05486baa9661d5c8ffead2df87874a66f6cfc958ee6840432b89d221d8b0af9e3cad3675766f5413d12aa61c5b5fb0dd82f4164e5da3022865eba9ceadbf'
'67d61b580daeb1dd098f10af99dccf81986732d9c6720432ec78cdfc093681b8f1a537c13b7460520ab0ae7443c1dc8da765f49cc8e90c27d59d14e6ee260179'
'0c875bb6eb384867d46048054679ca555ff0600cbf197d170f9afda2b4a6c5e7bb275a08dad903cbf499508e2a96906a0f0267b4122f7cde8b42ed668ec17cc0')
prepare() {
# prepare gradle to use downloaded zip
sed -i "/distributionUrl=/c\distributionUrl=gradle-${_gradlever}-all.zip" ${srcdir}/${_pkgname}/gradle/wrapper/gradle-wrapper.properties
mv gradle-${_gradlever}-all.zip ${srcdir}/${_pkgname}/gradle/wrapper
}
build() {
cd ${srcdir}/${_pkgname}
# build game (without android)
JAVA_HOME="/usr/lib/jvm/java-11-openjdk" ANDROID_HOME="" ./gradlew --gradle-user-home=. releaseJSettlers || return 1
# build server
JAVA_HOME="/usr/lib/jvm/java-11-openjdk" ANDROID_HOME="" ./gradlew --gradle-user-home=. releaseDedicatedServer || return 1
}
package() {
_jarDest=${pkgdir}/usr/share/java/${_pkgname}
_dataDest=${pkgdir}/usr/share/${_pkgname}
_licenseDest=${pkgdir}/usr/share/licenses/${pkgname}
bin=${pkgdir}/usr/bin
_progName='JSettlers'
_mapCreatorName='MapCreator'
_mapCreatorScript=${_pkgname}'-'${_mapCreatorName,,}
_serverJar='DedicatedJSettlersServer.jar'
_serverName='Server'
_serverScript=${_pkgname}'-'${_serverName,,}
# create destination-dirs
mkdir -p ${_jarDest} ${_dataDest} ${_licenseDest}
# copy game-files
cd ${srcdir}/${_pkgname}/release
unzip -j ${_progName}'.zip' ${_progName}'/'${_progName}'.jar' -d ${_jarDest}
unzip -j ${_progName}'.zip' ${_progName}'/'${_mapCreatorName}'.jar' -d ${_jarDest}
unzip -j ${_progName}'.zip' ${_progName}'/maps/*' -d ${_dataDest}'/maps'
cp ${_serverJar} ${_jarDest}
# copy license
cd ${srcdir}
cp ${_pkgname}'/LICENSE.txt' ${_licenseDest}
# create launch-scripts
mkdir -p ${bin}
echo '#!/bin/sh' > ${bin}/${_pkgname}
echo 'mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/'${_pkgname}'"' >> ${bin}/${_pkgname}
echo 'cd "${XDG_DATA_HOME:-$HOME/.local/share}/'${_pkgname}'"' >> ${bin}/${_pkgname}
echo 'exec /usr/bin/java -jar /usr/share/java/'${_pkgname}'/'${_progName}'.jar --maps=/usr/share/'${_pkgname}'/maps "$@"' >> ${bin}/${_pkgname}
chmod +x ${bin}/${_pkgname}
echo '#!/bin/sh' > ${bin}/${_mapCreatorScript}
echo 'mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/'${_pkgname}'"' >> ${bin}/${_mapCreatorScript}
echo 'cd "${XDG_DATA_HOME:-$HOME/.local/share}/'${_pkgname}'"' >> ${bin}/${_mapCreatorScript}
echo 'exec /usr/bin/java -jar /usr/share/java/'${_pkgname}'/'${_mapCreatorName}'.jar --maps=/usr/share/'${_pkgname}'/maps "$@"' >> ${bin}/${_mapCreatorScript}
chmod +x ${bin}/${_mapCreatorScript}
echo '#!/bin/sh' > ${bin}/${_serverScript}
echo 'mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/'${_pkgname}'"' >> ${bin}/${_serverScript}
echo 'cd "${XDG_DATA_HOME:-$HOME/.local/share}/'${_pkgname}'"' >> ${bin}/${_serverScript}
echo 'exec /usr/bin/java -jar /usr/share/java/'${_pkgname}'/'${_serverJar}' "$@"' >> ${bin}/${_serverScript}
chmod +x ${bin}/${_serverScript}
install -Dm644 ../${_pkgname}.desktop "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
install -Dm644 ../${_mapCreatorScript}.desktop "${pkgdir}/usr/share/applications/${_mapCreatorScript}.desktop"
install -Dm644 ${srcdir}/jsettlers/jsettlers.main.swing/src/main/resources/jsettlers/main/swing/icon.png "${pkgdir}/usr/share/pixmaps/${_pkgname}.png"
install -Dm644 ${srcdir}/jsettlers/jsettlers.main.swing/src/main/resources/jsettlers/main/swing/icon.png "${pkgdir}/usr/share/pixmaps/${_mapCreatorScript}.png"
}
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 |