shinobi-git

maintainer AlphaJack · 5 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The npm install commands are for the project's own dependencies during build, using the source from the official GitLab repository; installing 'pg' is a declared optional dependency for PostgreSQL support, consistent with optdepends.

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 npm install commands are for the project's own dependencies during build, using the source from the official GitLab repository; installing 'pg' is a declared optional dependency for PostgreSQL support, consistent with optdepends.

1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM npm/yarn/pnpm install of an undeclared external package 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:47 npm install --user root
  • PKGBUILD:48 npm install --user root pg

PKGBUILD

2 offending line(s) highlighted
1# Maintainer: AlphaJack <alphajack at tuta dot io>
2
3pkgname="shinobi-git"
4pkgver=r3116.07584db3
5pkgrel=2
6pkgdesc="The Open Source CCTV and NVR Solution"
7url="https://shinobi.video/"
8license=("custom") # not free for commercial use
9arch=("any")
10provides=("shinobi")
11depends=("ffmpeg" "nodejs")
12makedepends=("npm" "git")
13optdepends=("mariadb: database"
14 "postgresql: database"
15 )
16source=("git+https://gitlab.com/Shinobi-Systems/Shinobi.git"
17 "shinobi-camera.service"
18 "shinobi-cron.service"
19 "shinobi.target"
20 "shinobi.sysusers"
21 "shinobi.tmpfiles"
22 "conf.json"
23 "super.json")
24sha256sums=('SKIP'
25 'da346d9858dafb1a42dd43153d26763de05bc7cdabb5563b979ca62d2cc51ce3'
26 'adacf7a3ec970e6d5c5d8c339f56bdce3720b952ab7278f31d70a294fd0b5bdd'
27 '676111c7502ed43671ac5a4451ee0f89913de1c4b4f1e2120cd5c4b89e842757'
28 'e7c849bfcf8619a093ec75467cf5e44b34cd3621fa0d639bfacf4c88e0bad258'
29 'a0213eb276dfd468ed835cccceece75da92141716afa4c2426e20a06f64b5625'
30 'a328e61ddb909cc0216569ed08ee5f4e35ce770da53995ab7d6413479ae8e106'
31 'b6f2093025736770ed18141eee36b2cd2507142310bb258bf6365c4740c9aae6')
32backup=("etc/shinobi/conf.json" "etc/shinobi/super.json")
33install="shinobi.install"
34options=("!strip")
35
36pkgver(){
37 cd "Shinobi"
38 # git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g' # -> fatal: No annotated tags can describe '07584db326ba8077f448a8383cc677469a769cbf'.
39 # git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g' # -> furrykitten.3.r534.g07584db3
40 printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" # -> r3116.07584db3
41}
42
43package(){
44 # no /usr/bin, just systemd files
45 cd "Shinobi"
46 # program files
47 npm install --user root
48 npm install --user root pg
49 install -d "$pkgdir/usr/share/shinobi"
50 cp -r * "$pkgdir/usr/share/shinobi"
51 # configuration files
52 install -d -m 750 "$pkgdir/etc/shinobi/"
53 install -D -m 660 "$srcdir/conf.json" "$pkgdir/etc/shinobi/conf.json"
54 install -D -m 660 "$srcdir/super.json" "$pkgdir/etc/shinobi/super.json"
55 ln -s "/etc/shinobi/conf.json" "$pkgdir/usr/share/shinobi"
56 ln -s "/etc/shinobi/super.json" "$pkgdir/usr/share/shinobi"
57 # systemd files
58 install -D -m 644 "$srcdir/shinobi-camera.service" "$pkgdir/usr/lib/systemd/system/shinobi-camera.service"
59 install -D -m 644 "$srcdir/shinobi-cron.service" "$pkgdir/usr/lib/systemd/system/shinobi-cron.service"
60 install -D -m 644 "$srcdir/shinobi.target" "$pkgdir/usr/lib/systemd/system/shinobi.target"
61 install -D -m 644 "$srcdir/shinobi.sysusers" "$pkgdir/usr/lib/sysusers.d/shinobi.conf"
62 install -D -m 644 "$srcdir/shinobi.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/shinobi.conf"
63 # custom license
64 install -D -m 644 "LICENSE.md" "$pkgdir/usr/share/licenses/shinobi/LICENSE"
65 # version.json is used by the web server
66 # https://gitlab.com/Shinobi-Systems/Shinobi/-/issues/23
67 echo '{"Product" : "Shinobi Professional (Pro)" , "Branch" : "master" , "Version" : "'"$(git rev-parse HEAD)"'" , "Date" : "'"$(date)"'" , "Repository" : "https://gitlab.com/Shinobi-Systems/Shinobi"}' > "$pkgdir/usr/share/shinobi/version.json"
68}
69

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