spiritfarer-appimage
This PKGBUILD downloads a prebuilt AppImage of the commercial game Spiritfarer from linuxgame.cn (de.linuxgame.cn), which is a third-party Chinese Linux gaming site, not the official Thunder Lotus Games distribution channel. Spiritfarer is a paid commercial game (available on Steam, GOG, etc.), and distributing it via an unofficial host without authorization constitutes piracy. The AppImage is also executed during the prepare() phase (--appimage-extract) to unpack its contents, meaning arbitrary code from this unofficial binary runs on the build system. The sha256sum provides integrity but not authenticity — if the host is controlled by a bad actor or the file was placed there without the developer's consent, users get a pirated and potentially tampered binary. The piracy flag applies regardless of malware presence since this is clearly unauthorized redistribution of a commercial game.
Triggered rules
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:11
source=("${_pkgname}-${pkgver}.appimage::https://de.linuxgame.cn/%E7%81%B5%E9%AD%82%E6%91%86%E6%B8%A1%E4%BA%BA/Spiritfarer_32138b_amd64.appimage"
llm_review
The static rules found a suspicious pattern they could not resolve, so an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed it and judged it HIGH (confidence 82%): This PKGBUILD downloads a prebuilt AppImage of the commercial game Spiritfarer from linuxgame.cn (de.linuxgame.cn), which is a third-party Chinese Linux gaming site, not the official Thunder Lotus Games distribution channel. Spiritfarer is a paid commercial game (available on Steam, GOG, etc.), and distributing it via an unofficial host without authorization constitutes piracy. The AppImage is also executed during the prepare() phase (--appimage-extract) to unpack its contents, meaning arbitrary code from this unofficial binary runs on the build system. The sha256sum provides integrity but not authenticity — if the host is controlled by a bad actor or the file was placed there without the developer's consent, users get a pirated and potentially tampered binary. The piracy flag applies regardless of malware presence since this is clearly unauthorized redistribution of a commercial game.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Clarence <xjh.azzbcc@gmail.com>
_pkgname=spiritfarer
pkgname="${_pkgname}"-appimage
pkgver=1.0
pkgrel=1
pkgdesc="Spiritfarer (AppImage version)"
arch=('x86_64')
url='https://www.linuxgame.cn/%e7%81%b5%e9%ad%82%e6%91%86%e6%b8%a1%e4%ba%ba-spiritfarer'
provides=("${_pkgname}=${pkgver}")
source=("${_pkgname}-${pkgver}.appimage::https://de.linuxgame.cn/%E7%81%B5%E9%AD%82%E6%91%86%E6%B8%A1%E4%BA%BA/Spiritfarer_32138b_amd64.appimage"
'spiritfarer.sh')
sha256sums=('182e14e8bc64db4f505365ec5d88e1481ea7bcd0f4a8691b3a827c948e6e8b03'
'237e093d8fc27a48d65e337a4bb56f17308f8b28271d173a4e8295b34385ecf3')
options=(!strip)
prepare() {
cd "${srcdir}"
chmod +x "${_pkgname}-${pkgver}.appimage"
./"${_pkgname}-${pkgver}.appimage" --appimage-extract
}
package() {
install -Dm755 "${srcdir}/${_pkgname}-${pkgver}.appimage" "${pkgdir}/opt/appimages/${_pkgname}.AppImage"
install -Dm755 "${srcdir}/${_pkgname}.sh" "${pkgdir}/usr/bin/${_pkgname}"
install -Dm755 "${srcdir}/squashfs-root/usr/bin/support/icon.png" "${pkgdir}/usr/share/icons/${_pkgname}.png"
install -Dm644 "${srcdir}/squashfs-root/Spiritfarer.desktop" "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
sed -i 's|^Exec=start.sh|Exec=spiritfarer|' "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
sed -i 's|^Icon=UnityPlayer|Icon=spiritfarer|' "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
}
# vim:set ts=2 sw=2 et:
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | High | 2 |
| 2026-09-16 00:03:17 | High | 2 |
| 2026-09-15 00:25:31 | High | 2 |
| 2026-09-14 00:27:57 | High | 2 |
| 2026-09-13 00:19:54 | High | 2 |
| 2026-09-12 00:25:17 | High | 2 |
| 2026-09-11 00:19:22 | High | 2 |
| 2026-09-10 00:22:44 | High | 2 |
| 2026-09-09 00:04:09 | High | 2 |
| 2026-09-08 00:18:08 | High | 2 |
| 2026-09-07 00:30:15 | High | 2 |
| 2026-09-06 00:17:06 | High | 2 |
| 2026-09-05 00:16:27 | High | 2 |
| 2026-09-04 00:03:13 | High | 2 |
| 2026-09-03 00:15:47 | High | 2 |
| 2026-09-02 00:02:31 | High | 2 |
| 2026-09-01 00:11:19 | High | 2 |
| 2026-08-31 00:19:57 | High | 2 |
| 2026-08-30 00:04:14 | High | 2 |
| 2026-08-29 00:29:17 | High | 2 |