radicle-desktop-git
The source is a Git repository from a project-owned host (radicle.xyz), used to build the application from source; this is normal AUR packaging behavior despite the non-whitelisted domain.
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 source is a Git repository from a project-owned host (radicle.xyz), used to build the application from source; this is normal AUR packaging behavior despite the non-whitelisted domain.
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:38
source=("radicle-desktop::git+https://seed.radicle.xyz/z4D5UCArafTzTQpDZNQRuqswh3ury.git")
PKGBUILD
1 offending line(s) highlighted# Maintainer: Ivan Shapovalov <intelfx@intelfx.name>
# Contributor: Thomas Scholtes <geigerzaehler@axiom.fm>
pkgname=radicle-desktop-git
pkgver=0.9.0.r20.gcf40e86a
pkgrel=1
pkgdesc='Radicle desktop app (Git version)'
arch=('x86_64')
url='https://radicle.xyz/desktop'
license=('GPL-3.0-only')
depends=(
'libgit2' 'libgit2.so'
# See https://v2.tauri.app/distribute/aur/#building-from-source
'cairo'
'desktop-file-utils'
'gdk-pixbuf2'
'glib2'
'gtk3'
'hicolor-icon-theme'
'libsoup'
'pango'
'webkit2gtk-4.1'
)
makedepends=(
'git'
'jq'
# See https://v2.tauri.app/distribute/aur/#building-from-source
'openssl'
'appmenu-gtk-module'
'libappindicator-gtk3'
'librsvg'
'cargo'
'cargo-tauri'
'npm'
'pnpm'
'nodejs'
)
source=("radicle-desktop::git+https://seed.radicle.xyz/z4D5UCArafTzTQpDZNQRuqswh3ury.git")
sha256sums=('SKIP')
pkgver() {
cd radicle-desktop
# this project does not use git tags for versioning; sunrise by hand
local version tag count rev
version="$(jq -r '.version' crates/radicle-tauri/tauri.conf.json)"
tag="$(git log -1 --format=%H -G '"version"' -- crates/radicle-tauri/tauri.conf.json)"
count="$(git rev-list --count "$tag..")"
rev="$(git rev-parse --short HEAD)"
if (( count > 0 )); then
printf "%s.r%s.g%s\n" "$version" "$count" "$rev"
else
printf "%s\n" "$version"
fi
}
prepare() {
cd radicle-desktop
# use cargo-tauri rather than downloading random blobs off Internet
sed -r '\|@tauri-apps/cli|d' \
-i package.json
pnpm import
pnpm install \
--dangerously-allow-all-builds
cargo fetch --locked --target "$(rustc --print host-tuple)"
# disable ad-hoc pre-build script (we do it by hand in build(), see below)
# inject version (transform $pkgver to be valid semver, as required by Tauri)
# FIXME: we're transforming post-releases to pre-releases, this is not exactly right
local semver="$pkgver"
semver="${semver/.r/-dev.}"
semver="${semver/.g/+}"
jq -n '{}
| (.build.beforeBuildCommand |= "")
| (.version |= $semver)
' \
--arg semver "$semver" \
>tauri.conf.arch.json
}
build() {
cd radicle-desktop
# _Disable_ cross-toolchain LTO because we are using different toolchains
# for C/C++ and Rust code (i.e., LLVM LTO is incompatible with GCC LTO).
# In this project, C/C++ code is linked into Rust code. Therefore, apply
# a workaround to force generation of normal object code on C side:
CFLAGS+=" -ffat-lto-objects"
CXXFLAGS+=" -ffat-lto-objects"
export LIBGIT2_NO_VENDOR=1
pnpm run build -- --mode production
cargo tauri build \
--bundles deb \
--config tauri.conf.arch.json
}
package() {
depends+=(
radicle-node
)
cd radicle-desktop
cp -vdR --preserve=mode,timestamps \
target/release/bundle/deb/*/data \
-T "$pkgdir"
}
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 |