grayjay-bin

maintainer nathanchere · 27 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The package downloads a prebuilt binary from the project's own update server, which is not on a standard forge but plausibly official; the binary is not executed directly during build/install and is instead copied to the user's home directory on first run, limiting supply-chain risk to post-install execution, which is typical for such applications.

Triggered rules

LOW AI review downgraded a static finding 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 package downloads a prebuilt binary from the project's own update server, which is not on a standard forge but plausibly official; the binary is not executed directly during build/install and is instead copied to the user's home directory on first run, limiting supply-chain risk to post-install execution, which is typical for such applications.

1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM source=() URL on a non-standard host 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:14 source=("${_filename}.zip::https://updater.grayjay.app/Apps/Grayjay.Desktop/${pkgver}/${_filename}.zip")

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Nathan Chere <aur@nathanchere.com.au>
2pkgname=grayjay-bin
3pkgver=17
4pkgrel=2
5pkgdesc="Grayjay Desktop - follow creators, not platforms (privacy- and freedom-respecting client for YouTube, Rumble, Twitch, Spotify etc)"
6arch=('x86_64')
7url="https://grayjay.app/desktop/"
8license=('Source First License 1.1')
9depends=('gtk3' 'unzip' 'libnotify' 'nss' 'libxss' 'libxtst' 'xdg-utils' 'at-spi2-core' 'libsecret' 'libappindicator-gtk3')
10provides=('grayjay')
11conflicts=('grayjay' 'grayjay-git')
12options=(!strip)
13_filename="Grayjay.Desktop-linux-x64-v${pkgver}"
14source=("${_filename}.zip::https://updater.grayjay.app/Apps/Grayjay.Desktop/${pkgver}/${_filename}.zip")
15sha256sums=('29a5b953a26c30af10dafa1727b588f19cea93c74073882fa7e1f2a9336757d4')
16
17prepare() {
18 mkdir -p "${srcdir}/grayjay"
19 unzip -q "${srcdir}/${_filename}.zip" -d "${srcdir}/grayjay"
20}
21
22package() {
23 cd "${srcdir}/grayjay/${_filename}"
24
25 # Create necessary directories
26 install -dm755 "${pkgdir}/usr/share/grayjay"
27 install -dm755 "${pkgdir}/usr/bin"
28 install -dm755 "${pkgdir}/usr/share/applications"
29 install -dm755 "${pkgdir}/usr/share/icons/hicolor/512x512/apps"
30
31 # Create launcher script that copies app to user directory on first run
32 cat > "${pkgdir}/usr/bin/grayjay" << 'EOF'
33#!/bin/sh
34APP_DIR="$HOME/.local/share/grayjay"
35
36# Check if app is already installed in user directory
37if [ ! -d "$APP_DIR" ]; then
38 echo "First run - installing Grayjay to $APP_DIR"
39 mkdir -p "$APP_DIR"
40 cp -r /usr/share/grayjay/* "$APP_DIR/"
41 chmod u+w -R "$APP_DIR"
42fi
43
44exec sh -c "cd '$APP_DIR' && exec ./Grayjay \"\$@\"" -- "$@"
45EOF
46 chmod 755 "${pkgdir}/usr/bin/grayjay"
47
48 # Copy application files to system directory (will be copied to user dir on first run)
49 cp -r ./* "${pkgdir}/usr/share/grayjay/"
50
51 # Create desktop entry
52 cat > "${pkgdir}/usr/share/applications/grayjay.desktop" << EOF
53[Desktop Entry]
54Name=Grayjay
55Comment=Privacy-respecting client for YouTube, Rumble, Twitch, Spotify etc
56Exec=/usr/bin/grayjay
57Icon=grayjay
58Terminal=false
59Type=Application
60Categories=Network;Video;AudioVideo;
61EOF
62
63 # Install icon
64 install -Dm644 "grayjay.png" \
65 "${pkgdir}/usr/share/icons/hicolor/512x512/apps/grayjay.png"
66}
67

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 LOW 2
2026-08-02 00:16:08 LOW 2
2026-08-01 00:11:18 LOW 2
2026-07-31 00:14:10 LOW 2
2026-07-30 00:17:23 LOW 2
2026-07-29 00:25:53 LOW 2
2026-07-28 00:07:28 LOW 2
2026-07-27 00:24:32 LOW 2
2026-07-26 00:07:32 LOW 2
2026-07-25 00:13:44 LOW 2
2026-07-24 00:02:28 LOW 2
2026-07-23 00:14:47 LOW 2
2026-07-22 00:29:32 LOW 2
2026-07-21 00:24:15 LOW 2
2026-07-20 00:19:49 LOW 2
2026-07-19 00:17:08 LOW 2
2026-07-18 00:14:48 LOW 2
2026-07-17 00:06:16 LOW 2
2026-07-16 00:05:41 LOW 2
2026-07-15 00:09:25 LOW 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion