throne
The flagged pattern involves installing Go tools (protoc-gen-go, protoc-gen-go-grpc) during prepare(), which is a normal part of building Go-based projects and does not execute untrusted remote code; the source is the official Go modules and the build is self-contained.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The flagged pattern involves installing Go tools (protoc-gen-go, protoc-gen-go-grpc) during prepare(), which is a normal part of building Go-based projects and does not execute untrusted remote code; the source is the official Go modules and the build is self-contained.
1 higher static finding superseded - not the current verdict (shown for transparency)
alt_pkg_manager_install
A non-pip/npm package manager (pipx, uv, poetry, cargo install, go install, gem, conda…) fetches and builds an external package at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:41
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest -
PKGBUILD:42
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
PKGBUILD
2 offending line(s) highlighted# Maintainer: Mahdi Sarikhani <mahdisarikhani@outlook.com>
# Maintainer: parhelia
pkgname=throne
pkgver=1.3.0
pkgrel=1
pkgdesc="Cross-platform GUI proxy utility (Empowered by sing-box)"
arch=('i686' 'pentium4' 'x86_64' 'armv7h' 'aarch64' 'loongarch64' 'riscv64')
url="https://throneproj.github.io"
license=('GPL-3.0-or-later')
conflicts=(throne-bin throne-git throne-sysqt-bin)
depends=('glibc' 'qt6-base')
makedepends=('cmake' 'gendesk' 'git' 'go' 'lld' 'protobuf' 'qt6-tools' 'vulkan-headers')
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/throneproj/Throne/archive/${pkgver}.tar.gz"
"${pkgname}.sh"
"git+https://github.com/throneproj/routeprofiles.git#branch=rule-set")
sha256sums=('93e6ff175a8fe2402ff91db0b9ac640f00c49a9a94e58d99a221e984f610cbb8'
'3bb765a93afa8c4f3b4fbf4440507c79ba32e4e4600e94706ccd7705209e0c34'
'SKIP')
prepare() {
mkdir -p build
cp routeprofiles/srslist.h build
gendesk -f -n \
--pkgname "${pkgname}" \
--pkgdesc "${pkgdesc}" \
--name "${pkgname^}" \
--categories 'Network'
cd "${pkgname^}-${pkgver}/core"
# Fix stale replace directives for cronet-go (commit removed from parhelia512/cronet-go)
# and stale checksums in go.sum
sed -i '/parhelia512\/cronet-go/d' go.mod
: > go.sum
GONOSUMDB=* GONOSUMCHECK=* GOFLAGS=-mod=mod go mod tidy
export GOBIN="${srcdir}/bin"
export PATH="${PATH}:${GOBIN}"
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
cd gen
protoc -I . --go_out=. --go-grpc_out=. libcore.proto
}
build() {
export INPUT_VERSION="${pkgver}"
cmake -B build -S "${pkgname^}-${pkgver}" \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr \
-W no-dev
cmake --build build
cd "${pkgname^}-${pkgver}/core"
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS} -fno-lto"
export CGO_CXXFLAGS="${CXXFLAGS} -fno-lto"
export CGO_LDFLAGS="${LDFLAGS} -fuse-ld=lld -fno-lto"
VERSION_SINGBOX=$(go list -m -f '{{.Version}}' github.com/sagernet/sing-box)
go build -o "${srcdir}/build" \
-trimpath \
-buildmode=pie \
-mod=readonly \
-modcacherw \
-ldflags="-linkmode=external -w -s -X 'github.com/sagernet/sing-box/constant.Version=${VERSION_SINGBOX}' -X 'internal/godebug.defaultGODEBUG=multipathtcp=0' -checklinkname=0" \
-tags="with_clash_api,with_gvisor,with_quic,with_wireguard,with_utls,with_dhcp,with_tailscale,badlinkname,tfogo_checklinkname0,with_naive_outbound"
}
package() {
install -Dm755 build/Throne{,Core} -t "${pkgdir}/usr/lib/${pkgname}"
install -Dm755 "${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}"
install -Dm644 "${pkgname}.desktop" -t "${pkgdir}/usr/share/applications"
cd "${pkgname^}-${pkgver}"
install -Dm644 res/public/Throne.png "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |
| 2026-10-13 00:23:45 | Low | 2 |