astrobox-creator-console
The package downloads a prebuilt Arch Linux package from GitHub releases via multiple proxy mirrors, which introduces a supply-chain risk if any mirror or the source is compromised, despite checksum verification.
Triggered rules
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
llm_review
The static rules found a suspicious pattern they could not resolve, so an AI model (qwen/qwen3-235b-a22b-2507) reviewed it and judged it MEDIUM (confidence 95%): The package downloads a prebuilt Arch Linux package from GitHub releases via multiple proxy mirrors, which introduces a supply-chain risk if any mirror or the source is compromised, despite checksum verification.
PKGBUILD
# Maintainer: WaiJade <waijade@outlook.com>
pkgname=astrobox-creator-console
pkgver=0.3.0
pkgrel=1
pkgdesc="AstroBox CreatorConsole - all-in-one creator console for the AstroBox ecosystem"
arch=('x86_64')
url="https://github.com/AstralSightStudios/AstroBoxCreatorConsole"
license=('AGPL-3.0')
options=('!debug')
depends=(
'webkit2gtk-4.1'
'gtk3'
'libx11'
'gcc-libs'
'glibc'
'zlib'
'bzip2'
'libxcb'
'libxkbcommon'
'dbus'
'libsecret'
'libsoup3'
'gstreamer'
'gst-plugins-base'
'libepoxy'
'atk'
'at-spi2-core'
'cairo'
'pango'
'gdk-pixbuf2'
'harfbuzz'
'hicolor-icon-theme'
'desktop-file-utils'
'shared-mime-info'
)
makedepends=('curl')
prepare() {
local _base="AstralSightStudios/AstroBoxCreatorConsole/releases/download/v${pkgver}/AstroBoxCreatorConsole-${pkgver}-x86_64.pkg.tar.zst"
local _file="AstroBoxCreatorConsole-${pkgver}-x86_64.pkg.tar.zst"
local _expected="32bba98eb4ad3e7d8e748f4db837e236d3b2d62c745273af2b8a722dfb5073e6"
local _mirrors=(
"https://github.com/${_base}|GitHub"
"https://ghfast.top/https://github.com/${_base}|ghfast"
"https://ghproxy.com/https://github.com/${_base}|ghproxy"
"https://gh-proxy.com/https://github.com/${_base}|ghproxy2"
"https://ghproxy.net/https://github.com/${_base}|ghproxy3"
"https://ghgo.xyz/https://github.com/${_base}|ghgo"
"https://gh.ddlc.top/https://github.com/${_base}|ghddl"
)
echo "==> Testing download mirrors..."
local _best_url="" _best_time="999" _best_name=""
local _tmpdir
_tmpdir=$(mktemp -d)
for i in "${!_mirrors[@]}"; do
local _entry="${_mirrors[$i]}"
local _url="${_entry%%|*}"
local _name="${_entry##*|}"
(
local _result
_result=$(curl -sI --max-time 5 -o /dev/null -w "%{time_total} %{http_code}" "$_url" 2>/dev/null) || true
echo "${_result} ${_name} ${_url}" > "$_tmpdir/$i"
) &
done
wait
for i in "${!_mirrors[@]}"; do
local _time _code _name _url
read _time _code _name _url < "$_tmpdir/$i" 2>/dev/null || continue
if [[ "$_code" =~ ^(200|301|302) ]]; then
printf " %-12s % 6ss (%s)\n" "$_name" "$_time" "$_code"
if awk "BEGIN{exit !($_time < $_best_time)}" 2>/dev/null; then
_best_time="$_time"
_best_url="$_url"
_best_name="$_name"
fi
else
printf " %-12s failed (%s)\n" "$_name" "$_code"
fi
done
rm -rf "$_tmpdir"
if [ -z "$_best_url" ]; then
error "All mirrors failed"
return 1
fi
msg "Best mirror: $_best_name (${_best_time}s)"
msg "Downloading $_file..."
curl -L --progress-bar -o "$srcdir/$_file" "$_best_url"
msg "Verifying checksum..."
local _real
_real=$(sha256sum "$srcdir/$_file" | awk '{print $1}')
if [ "$_real" != "$_expected" ]; then
error "Checksum mismatch: got $_real"
return 1
fi
msg "Checksum OK"
msg "Extracting..."
bsdtar -xf "$srcdir/$_file" -C "$srcdir"
rm -f "$srcdir/$_file"
rm -f "$srcdir/.BUILDINFO" "$srcdir/.MTREE" "$srcdir/.PKGINFO"
}
package() {
cd "$srcdir"
cp -a . "$pkgdir"
rm -f "$pkgdir/.BUILDINFO" "$pkgdir/.MTREE" "$pkgdir/.PKGINFO"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-30 15:43:17 | Medium | 2 |