moonbit-bin
The package downloads prebuilt binaries and core assets from a non-whitelisted but project-associated host (cli.moonbitlang.cn); while the host is not standard, it is plausibly official, checksums are provided, and the installed files are runtime components and assets, not obfuscated or executable scripts.
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 prebuilt binaries and core assets from a non-whitelisted but project-associated host (cli.moonbitlang.cn); while the host is not standard, it is plausibly official, checksums are provided, and the installed files are runtime components and assets, not obfuscated or executable scripts.
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:16
source=("https://cli.moonbitlang.cn/binaries/latest/moonbit-linux-x86_64.tar.gz#filename=${pkgname}-${pkgver}-linux-x86_64.tar.gz"
PKGBUILD
1 offending line(s) highlightedpkgname=moonbit-bin
pkgver=0.1.20260330
pkgrel=1
pkgdesc="Intelligent developer platform for Cloud and Edge using WASM"
arch=('x86_64')
url="https://www.moonbitlang.com/"
license=('unknown')
depends=('tar' 'glibc' 'gcc-libs' 'git')
provides=("moonbit")
conflicts=("moonbit")
options=('!debug')
_origin="https://cli.moonbitlang.com"
# Save downloads with a versioned local filename to avoid reusing an older
# file that happens to have the same remote name (e.g. "latest/*.tar.gz").
# This uses the URL fragment "#filename=" supported by makepkg.
source=("https://cli.moonbitlang.cn/binaries/latest/moonbit-linux-x86_64.tar.gz#filename=${pkgname}-${pkgver}-linux-x86_64.tar.gz"
"https://cli.moonbitlang.cn/cores/core-latest.tar.gz#filename=moonbit-core-${pkgver}.tar.gz"
"moon.sh")
# NOTE: After updating `pkgver`, update the corresponding `sha256sums`.
# If a cached file with the old name exists in the build `src/` directory,
# remove it (or run `makepkg -C`) so makepkg downloads the new file.
package() {
# Install main runtime binary (kept under /usr/lib so the wrapper can live in /usr/bin)
install -Dm 755 "${srcdir}/bin/moon" "${pkgdir}/usr/lib/moon"
# Install wrapper CLI (moon.sh) as the user-facing /usr/bin/moon
install -Dm 755 "${srcdir}/moon.sh" "${pkgdir}/usr/bin/moon"
# Install all top-level executables from src/bin (except the main runtime and internal/)
mkdir -p "${pkgdir}/usr/bin"
for _f in "${srcdir}/bin/"*; do
case "$(basename "$_f")" in
moon) continue ;; # already installed to /usr/lib
internal) continue ;; # packaged under share
*.wasm) continue ;; # handled separately
esac
if [ -f "$_f" ]; then
install -Dm 755 "$_f" "${pkgdir}/usr/bin/$(basename "$_f")"
fi
done
# Place wasm/runtime assets and the language core into /usr/share/moonbit/lib
mkdir -p "${pkgdir}/usr/share/moonbit/lib"
# copy any wasm helpers from bin (if present)
if compgen -G "${srcdir}/bin/*.wasm" >/dev/null 2>&1; then
cp -a "${srcdir}/bin/"*.wasm "${pkgdir}/usr/share/moonbit/lib/"
fi
# copy the language core tree
cp -a "${srcdir}/core" "${pkgdir}/usr/share/moonbit/lib/"
# Install headers for developers who may build against the runtime
if [ -d "${srcdir}/include" ]; then
mkdir -p "${pkgdir}/usr/include/moonbit"
cp -a "${srcdir}/include/"* "${pkgdir}/usr/include/moonbit/"
fi
# Install raw libs/objects into /usr/lib/moonbit (for debugging or embedding)
if [ -d "${srcdir}/lib" ]; then
mkdir -p "${pkgdir}/usr/lib/moonbit"
cp -a "${srcdir}/lib/"* "${pkgdir}/usr/lib/moonbit/" || true
fi
# Internal tooling and packaged node assets go under /usr/share/moonbit/internal
if [ -d "${srcdir}/bin/internal" ]; then
mkdir -p "${pkgdir}/usr/share/moonbit/internal"
cp -a "${srcdir}/bin/internal" "${pkgdir}/usr/share/moonbit/internal/"
fi
}
sha256sums=('4d9f811fce8b10de29292f1b7606b8acf2adf0e84d42ea62ace8ca8600783c84'
'1900367fef9d09f1e7dc6b0a5226daaf8ceaecaa84d0e3fa2bb66b0aba47f139'
'a7ba404eb6995d8573e81fbe6c302fa5de96081585dc0420d29e4b419056c6a3')
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 |