zig-mach
The source is a tarball from a non-whitelisted host, but it is verified using minisign with a trusted public key from the official Zig project, ensuring authenticity and integrity; the package builds from verifiable source code, not a prebuilt binary, and the host, while not standard, is used consistently by the project maintainer for distribution.
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 90%): The source is a tarball from a non-whitelisted host, but it is verified using minisign with a trusted public key from the official Zig project, ensuring authenticity and integrity; the package builds from verifiable source code, not a prebuilt binary, and the host, while not standard, is used consistently by the project maintainer for distribution.
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:53
"https://pkg.hexops.org/zig/${_pkgsrc}.tar.xz"
PKGBUILD
1 offending line(s) highlighted# Maintainer: Vitalii Kuzhdin <vitaliikuzhdin@gmail.com>
_llvm=22
_basename="zig"
_suffix="-mach"
pkgname="${_basename}${_suffix}"
pkgver=0.17.0dev.2228+955228b68
_pkgver="${pkgver//dev/-dev}"
pkgrel=1
pkgdesc="General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software"
arch=(
# 'aarch64' # 'aarch64'
# 'armv7h' # 'arm'
# 'loong64' # 'loongarch64'
# 'powerpc64le' # 'powerpc64le'
# 'riscv64' # 'riscv64'
# 's390x' # 's390x'
# 'i686' # 'x86'
'x86_64' # 'x86_64'
)
url="https://machengine.org/docs/nominated-zig/"
license=(
'MIT'
)
depends=(
'glibc'
'libstdc++'
"clang>=${_llvm}"
"lld>=${_llvm}"
"llvm-libs>=${_llvm}"
# "clang${_llvm}"
# "lld${_llvm}"
# "llvm${_llvm}-libs"
)
makedepends=(
'cmake>=3.15'
'minisign'
"llvm>=${_llvm}"
# "llvm${_llvm}"
)
# checkdepends=( # checkdepends_x86_64
# 'lib32-glibc'
# )
options=(
'emptydirs'
'!lto'
'!strip'
)
_pkgsrc="${_basename}-${_pkgver}"
source=(
"https://pkg.hexops.org/zig/${_pkgsrc}.tar.xz"
"https://pkg.hexops.org/zig/${_pkgsrc}.tar.xz.minisig"
)
sha256sums=('fa2bf6c72194fd311b72f7cc77ef9df409a7cf2e886f8a0edd04b46cd2e232d5'
'SKIP')
verify() {
# https://ziglang.org/download/
local ziglang_minisign="RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U"
minisign -V \
-P "${ziglang_minisign}" \
-m "${_pkgsrc}.tar.xz"
}
build() {
local cmake_options=(
-B "${_pkgsrc}/build"
-S "${_pkgsrc}"
-G 'Unix Makefiles'
-W no-author
-D CMAKE_BUILD_TYPE:STRING='None'
-D CMAKE_INSTALL_PREFIX:PATH='/usr'
-D ZIG_VERSION:STRING="${_pkgver}"
-D ZIG_PIE:BOOL=ON
-D ZIG_SHARED_LLVM:BOOL=ON
-D ZIG_USE_LLVM_CONFIG:BOOL=ON
# -D ZIG_TARGET_TRIPLE:STRING='native-linux.6.6-gnu.2.42'
-D ZIG_TARGET_MCPU:STRING='baseline'
)
cd "${srcdir}"
cmake "${cmake_options[@]}"
cmake --build "${cmake_options[1]}"
cd "${_pkgsrc}"
DESTDIR="./fakeinstall" cmake --install "build"
}
# check() {
# cd "${srcdir}/${_pkgsrc}"
# # ugly workaround until test target is provided
# # https://github.com/ziglang/zig/issues/14240
# ./fakeinstall/usr/bin/zig build test \
# -Dconfig_h=build/config.h \
# -Dstatic-llvm=false \
# -Denable-llvm=true \
# -Dskip-non-native=true
# }
package() {
cd "${srcdir}/${_pkgsrc}"
install -vDm644 "README.md" "${pkgdir}/usr/share/doc/${pkgname}/README.md"
install -vDm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -vd "${pkgdir}/opt/${pkgname}/lib" "${pkgdir}/usr/bin" "${pkgdir}/usr/lib"
cd "fakeinstall/usr"
cp -va --no-preserve=ownership "bin" -T "${pkgdir}/opt/${pkgname}"
cd "lib"
cp -a --no-preserve=ownership "${_basename}" -T "${pkgdir}/opt/${pkgname}/lib"
ln -vsf "/opt/${pkgname}/${_basename}" "${pkgdir}/usr/bin/${pkgname}"
ln -vsf "/opt/${pkgname}/lib" "${pkgdir}/usr/lib/${pkgname}"
}
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 |