spacebar-client-git
The PKGBUILD runs 'npm install -g serve' during the package() function, which installs the 'serve' npm package globally into the build environment (and potentially the system) at package-build time rather than declaring it as a proper dependency. This is a real supply-chain concern: the 'serve' package is fetched from the npm registry at build time without any version pinning or integrity verification, meaning a compromised or malicious version of 'serve' could execute arbitrary code during packaging. Additionally, 'npm install -g' during package() is architecturally wrong — it installs into the live system rather than $pkgdir, so the package won't cleanly track or uninstall this dependency. The 'serve' package itself is a well-known npm package (by Vercel), so the risk is moderate rather than high, but the pattern of pulling an unpinned external npm package and installing it globally during packaging is a genuine supply-chain concern that warrants medium severity. The second git source from a personal maintainer repo (0xGingi/spacebarchat-client-aur) is used only for a systemd service file, which is lower risk but still worth noting as an unofficial source for installed system files.
Triggered rules
npm_install_external
Runs `npm/yarn/pnpm install <package>` for a package not in source=(), pulling unpinned, unreviewed code at build time. Severity downgraded: the package declares/looks like a Node.js consumer, where build-time installs are expected.
-
PKGBUILD:36
npm install -g serve
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): The PKGBUILD runs 'npm install -g serve' during the package() function, which installs the 'serve' npm package globally into the build environment (and potentially the system) at package-build time rather than declaring it as a proper dependency. This is a real supply-chain concern: the 'serve' package is fetched from the npm registry at build time without any version pinning or integrity verification, meaning a compromised or malicious version of 'serve' could execute arbitrary code during packaging. Additionally, 'npm install -g' during package() is architecturally wrong — it installs into the live system rather than $pkgdir, so the package won't cleanly track or uninstall this dependency. The 'serve' package itself is a well-known npm package (by Vercel), so the risk is moderate rather than high, but the pattern of pulling an unpinned external npm package and installing it globally during packaging is a genuine supply-chain concern that warrants medium severity. The second git source from a personal maintainer repo (0xGingi/spacebarchat-client-aur) is used only for a systemd service file, which is lower risk but still worth noting as an unofficial source for installed system files.
PKGBUILD
1 offending line(s) highlighted# Maintainer: 0xGingi <0xgingi@0xgingi.com>
pkgname=('spacebar-client-git')
pkgver=r415.79345f7
pkgrel=1
pkgdesc="Open source, themeable and extendable discord-compatible native Spacebar client"
arch=('any')
url="https://github.com/spacebarchat/client"
license=('AGPL3')
makedepends=('git' 'nodejs' 'npm')
provides=('spacebar-client')
conflicts=('spacebar-client')
source=("git+https://github.com/spacebarchat/client.git" "git+https://github.com/0xGingi/spacebarchat-client-aur.git")
md5sums=('SKIP' 'SKIP')
pkgver() {
cd client
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
}
prepare() {
cd spacebarchat-client-aur
sed -i "s|^User=.*\$|User=$USER|" spacebar-client.service
}
build() {
cd client
npm install
npm run build linux
}
package() {
cd client
install -d ${pkgdir}/opt/spacebar-client
cp -r build/* ${pkgdir}/opt/spacebar-client
npm install -g serve
cd ${srcdir}/spacebarchat-client-aur
install -Dm0644 "spacebar-client.service" "${pkgdir}/etc/systemd/system/spacebar-client.service"
echo
echo
echo -------------------------------------------------------------
echo 'Spacebar-Client is now installed!'
echo 'Install location - /opt/spacebar-client'
echo 'Systemd Service - /etc/systemd/system/spacebar-client.service'
echo
echo 'Start the client with sudo systemctl start spacebar-client'
echo 'Spacebar-Client will start at http://localhost:3000'
echo -------------------------------------------------------------
echo
echo
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 00:10:31 | Medium | 2 |
| 2026-10-19 00:03:55 | Medium | 2 |
| 2026-10-18 00:06:55 | Medium | 2 |
| 2026-10-17 00:21:55 | Medium | 2 |
| 2026-10-16 00:12:47 | Medium | 2 |
| 2026-10-15 00:28:05 | Medium | 2 |
| 2026-10-14 00:06:47 | Medium | 2 |
| 2026-10-13 00:23:45 | Medium | 2 |