openbazaar-git
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed the full PKGBUILD and judged it LOW (confidence 75%): The PKGBUILD pulls from the official GitHub repository of OpenBazaar (a known open-source project) and runs npm install from the standard npm registry. The 'npm install --save node-sass@5.0.0' installs a well-known, widely-used npm package (node-sass) at a pinned version from the official npm registry — this is a standard pattern for fixing build-time dependency compatibility issues. While npm installs do carry inherent supply-chain risk (no checksums on transitive deps), this is a common and accepted AUR pattern for Node.js/Electron applications. The node-sass package itself is a legitimate, popular package. There is no unofficial or personal host involved, no binary blobs from untrusted sources, and no obfuscation. The main concern is the general lack of lockfile/checksum verification for npm dependencies, which is a low-severity sloppy packaging issue rather than a genuine supply-chain attack vector.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:24
npm install --save node-sass@5.0.0
PKGBUILD
1 offending line(s) highlighted# Maintainer: robertfoster
pkgname=openbazaar-git
pkgver=v2.4.10.r0.gf724cf15
pkgrel=1
pkgdesc="Front-end Electron application for talking with the OpenBazaar daemon (Latest devel version)"
arch=(i686 x86_64)
url="https://github.com/OpenBazaar/openbazaar-desktop"
license=('MIT')
depends=('electron6')
optdepends=('openbazaard-git: server daemon occasionally needed by front-end')
makedepends=('git' 'npm')
conflicts=('openbazaar')
source=("${pkgname%%-git}::git+https://github.com/OpenBazaar/openbazaar-desktop.git"
"${pkgname%%-git}.js"
"${pkgname%%-git}.desktop"
)
install=${pkgname%%-git}.install
options=('!strip')
prepare() {
cd $srcdir/${pkgname%%-git}
sed -i '/electron/d' package.json
npm install --save node-sass@5.0.0
npm install --silent
}
build() {
cd $srcdir/${pkgname%%-git}
npm run build
}
package() {
cd $srcdir
appdir="usr/lib/${pkgname%%-git}"
install -d $pkgdir/${appdir%%/${pkgname%%-git}}
cp -rf ${pkgname%%-git} $pkgdir/$appdir
install -Dm755 ${pkgname%%-git}.js $pkgdir/usr/bin/${pkgname%%-git}
install -Dm644 ${pkgname%%-git}/imgs/icon.png $pkgdir/usr/share/pixmaps/${pkgname%%-git}2.png
install -Dm644 ${pkgname%%-git}.desktop $pkgdir/usr/share/applications/${pkgname%%-git}.desktop
cd $pkgdir/$appdir
rm -rf .git*
rm -rf .travis
cp -rf prod/* js/
find "${pkgdir}"/${appdir} \
-name "bin" -prune -exec rm -r '{}' \; \
-or -name "example" -prune -exec rm -r '{}' \; \
-or -name "examples" -prune -exec rm -r '{}' \; \
-or -name "test" -prune -exec rm -r '{}' \;
pathtoreplace=$(echo ${srcdir}/ | sed 's:/:\\\/:g')
find "$pkgdir/$appdir/node_modules/" -name "*.json" -exec \
sed -i "s/$pathtoreplace//g" {} +
}
pkgver() {
cd $srcdir/${pkgname%%-git}
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
md5sums=('SKIP'
'8359716a04cff2fd8499406408b6c590'
'a278f17aa965510cadb534df49b245dd')
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 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 |