riptide-browser
The CEF binary tarball is downloaded from cef-builds.spotifycdn.com (Spotify's official CEF distribution CDN, a well-known legitimate source), has a SHA-1 checksum, and is used only as a build-time dependency to compile the project's own Rust source; the git source has SKIP'd checksum but is pinned to a specific tag from the project's own GitHub repo, which is normal AUR practice for git sources.
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 flagged this MEDIUM, but an AI model (anthropic/claude-sonnet-4.6) reviewed the full PKGBUILD and judged it LOW (confidence 70%): The CEF binary tarball is downloaded from cef-builds.spotifycdn.com (Spotify's official CEF distribution CDN, a well-known legitimate source), has a SHA-1 checksum, and is used only as a build-time dependency to compile the project's own Rust source; the git source has SKIP'd checksum but is pinned to a specific tag from the project's own GitHub repo, which is normal AUR practice for git sources.
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:19
"https://cef-builds.spotifycdn.com/cef_binary_${_cef}_linux64_minimal.tar.bz2")
PKGBUILD
1 offending line(s) highlighted# Maintainer: Joshua Cold <joshzcold@gmail.com>
# riptide-browser: built from the release tag, against the CEF build its cef crate pins.
# The versions and checksum are updated at each release.
pkgname=riptide-browser
pkgver=0.4.0
pkgrel=1
_cef=154.0.33+ga03e714+chromium-154.0.8037.94
pkgdesc="Keyboard-driven web browser with vim-like bindings, built on CEF"
arch=('x86_64')
url="https://joshzcold.github.io/riptide/"
license=('GPL-3.0-or-later')
depends=('alsa-lib' 'at-spi2-core' 'cairo' 'dbus' 'expat' 'glib2' 'gtk3' 'hicolor-icon-theme'
'libcups' 'libdrm' 'libxcomposite' 'libxdamage' 'libxkbcommon' 'libxrandr' 'mesa'
'nspr' 'nss' 'pango' 'systemd-libs')
makedepends=('cargo' 'cmake' 'git' 'ninja')
conflicts=('riptide-browser-bin' 'riptide' 'riptide-bin')
options=('!strip' '!debug' '!lto')
source=("riptide::git+https://github.com/joshzcold/riptide.git#tag=v${pkgver}"
"https://cef-builds.spotifycdn.com/cef_binary_${_cef}_linux64_minimal.tar.bz2")
# The CEF index publishes SHA-1 checksums only.
sha1sums=('SKIP'
'9794ecf85ccd4dfcca42bfaac7a7666004f051e8')
prepare() {
# Lay CEF out the way the cef-dll-sys build script expects it in CEF_PATH.
local dist="cef_binary_${_cef}_linux64_minimal"
rm -rf cef
mkdir cef
cp -a "$dist"/Release/. "$dist"/Resources/. cef/
cp -a "$dist"/{CMakeLists.txt,cmake,include,libcef_dll,CREDITS.html} cef/
printf '{"type":"minimal","name":"%s.tar.bz2","sha1":"%s"}\n' "$dist" "${sha1sums[1]}" > cef/archive.json
cd riptide
export RUSTUP_TOOLCHAIN=stable
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}
build() {
cd riptide
export RUSTUP_TOOLCHAIN=stable
export CARGO_TARGET_DIR=target
export CEF_PATH="$srcdir/cef"
cargo build --frozen --release --bin riptide
# Stages the runtime files, as for the release tarball, and unpacks them.
scripts/package-linux.sh "$pkgver"
tar -xzf "dist/riptide-${pkgver}-linux-x86_64.tar.gz" -C "$srcdir"
}
package() {
cd "riptide-${pkgver}-linux-x86_64" || return 1
install -d "$pkgdir/opt/riptide" "$pkgdir/usr/bin"
cp -a . "$pkgdir/opt/riptide/"
# The sandbox helper must be setuid root when the kernel doesn't allow
# unprivileged user namespaces; Arch allows them, so this is a fallback.
chmod 4755 "$pkgdir/opt/riptide/chrome-sandbox"
ln -s /opt/riptide/riptide "$pkgdir/usr/bin/riptide"
install -Dm644 riptide.desktop "$pkgdir/usr/share/applications/riptide.desktop"
install -Dm644 riptide.svg "$pkgdir/usr/share/icons/hicolor/scalable/apps/riptide.svg"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-21 00:12:50 | Low | 3 |
| 2026-10-20 23:31:35 | Low | 3 |
| 2026-10-20 23:29:39 | Medium | 2 |