onionspray
The source is fetched from the official Tor Project GitLab instance, which is the legitimate and expected host for this project; building from a non-whitelisted but project-owned forge is normal for AUR packages and does not constitute a supply-chain risk.
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 source is fetched from the official Tor Project GitLab instance, which is the legitimate and expected host for this project; building from a non-whitelisted but project-owned forge is normal for AUR packages and does not constitute a supply-chain risk.
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:18
source=("git+https://gitlab.torproject.org/tpo/onion-services/onionspray.git#tag=v$pkgver")
PKGBUILD
1 offending line(s) highlighted# Maintainer: Nihal Kumar <2tv8xupqg at mozmail dot com>
# https://github.com/nihalxkumar/PKGBUILDs/tree/main/onionspray
pkgname=onionspray
pkgver=1.8.5
pkgrel=1
pkgdesc="A tool to setup Onion Services for existing websites."
arch=('any')
url="https://gitlab.torproject.org/tpo/onion-services/onionspray"
license=('GPL-3.0-or-later')
depends=('perl' 'bash' 'tor' 'openbsd-netcat' 'rsync' 'openssl')
makedepends=('git')
optdepends=(
'onionbalance: for load balancing onion services'
'python: for validate-onion-key helper script'
'ruby: for onion-csr helper script'
'mkcert: for generating local CA certificates for TLS'
)
source=("git+https://gitlab.torproject.org/tpo/onion-services/onionspray.git#tag=v$pkgver")
sha256sums=('SKIP')
prepare() {
cd "$srcdir/$pkgname"
# Prevent failure when non-root users run onionspray commands (e.g. onionspray --help)
sed -i 's/chmod 700 \$secrets_dir || exit 1/chmod 700 \$secrets_dir 2>\/dev\/null || true/' onionspray
# Fetch submodules here so build() stays offline and reproducible
git submodule update --init --recursive
}
build() {
cd "$srcdir/$pkgname"
:
}
package() {
cd "$srcdir/$pkgname"
# Install to /opt/onionspray since it expects to be in a directory structure
install -dm755 "$pkgdir/opt/onionspray"
# Copy entire directory structure
cp -r --preserve=mode . "$pkgdir/opt/onionspray/" 2>/dev/null || true
# Preserve .git directory for git operations
# (needed by onionspray scripts)
# Ensure executable scripts have proper execute permissions
chmod 755 "$pkgdir/opt/onionspray/onionspray" 2>/dev/null || true
find "$pkgdir/opt/onionspray" -name "*.sh" -exec chmod 755 {} \;
find "$pkgdir/opt/onionspray" -name "*.pl" -exec chmod 755 {} \;
find "$pkgdir/opt/onionspray/lib" -type f \( -name "*.sh" -o -name "*.pl" -o -name "*.py" \) -exec chmod 755 {} 2>/dev/null \; || true
chmod 755 "$pkgdir/opt/onionspray/vendors/onionmine/onionmine" 2>/dev/null || true
chmod 755 "$pkgdir/opt/onionspray/vendors/onionmine/bin/"* 2>/dev/null || true
# Create necessary directories with proper permissions
install -dm700 "$pkgdir/opt/onionspray/secrets"
install -dm700 "$pkgdir/opt/onionspray/projects"
install -dm755 "$pkgdir/opt/onionspray/onionbalance"
# Create wrapper script in /usr/bin (intercept self-update commands)
install -dm755 "$pkgdir/usr/bin"
cat >"$pkgdir/usr/bin/onionspray" <<'EOF'
#!/bin/sh
if [ "$1" = "update" ] || [ "$1" = "upgrade" ]; then
echo "error: 'onionspray $1' is disabled for package-managed installations." >&2
echo "Please update via: sudo pacman -Syu onionspray" >&2
exit 1
fi
exec /opt/onionspray/onionspray "$@"
EOF
chmod 755 "$pkgdir/usr/bin/onionspray"
# Install documentation
install -dm755 "$pkgdir/usr/share/doc/$pkgname"
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/" 2>/dev/null || true
install -Dm644 ChangeLog.md "$pkgdir/usr/share/doc/$pkgname/" 2>/dev/null || true
# Install license
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
Changes since previous scan
--- PKGBUILD @ 2026-10-10 00:11+++ PKGBUILD @ 2026-11-03 00:01@@ -1,7 +1,7 @@ # Maintainer: Nihal Kumar <2tv8xupqg at mozmail dot com> # https://github.com/nihalxkumar/PKGBUILDs/tree/main/onionspray pkgname=onionspray-pkgver=1.8.4+pkgver=1.8.5 pkgrel=1 pkgdesc="A tool to setup Onion Services for existing websites." arch=('any')Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-03 00:01:00 | Low | 2 |
| 2026-11-02 00:26:00 | Low | 2 |
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 17:56:37 | Medium | 1 |
| 2026-10-10 00:11:52 | Clean | 2 |
| 2026-10-09 18:12:17 | Medium | 1 |
| 2026-10-09 00:05:33 | Low | 2 |
| 2026-10-08 00:28:03 | Low | 2 |
| 2026-10-07 00:21:34 | Low | 2 |
| 2026-10-06 00:13:36 | Low | 2 |
| 2026-10-05 00:08:03 | Low | 2 |
| 2026-10-04 00:18:08 | Low | 2 |
| 2026-10-03 00:23:04 | Low | 2 |
| 2026-10-02 00:00:32 | Low | 2 |
| 2026-10-01 00:02:06 | Low | 2 |
| 2026-09-30 00:20:07 | Low | 2 |
| 2026-09-29 00:07:46 | Low | 2 |
| 2026-09-28 00:28:32 | Low | 2 |
| 2026-09-27 00:07:07 | Low | 2 |