gnome-shell-extension-mosaic

maintainer yochananmarqos · 0 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged This PKGBUILD is a legitimate GNOME Shell extension that uses nvm to install a specific Node.js version and npm to fetch typescript@5.7.3 as a build-time dependency for compiling TypeScript source. The pattern is common for GNOME extensions using TypeScript. The source tarball is fetched from the official GitHub repository with a pinned version tag and a sha256 checksum. The npm cache is sandboxed to srcdir. The only real concern is that typescript@5.7.3 is fetched without a lockfile or checksum verification, which is sloppy packaging but not malicious - typescript is a well-known Microsoft package from the official npm registry. No obfuscation, no exfiltration, no payload execution, no source substitution. The cheaper model's HIGH rating is a false positive; the actual risk is low (non-standard but not dangerous packaging practice).

Triggered rules

LOW AI review downgraded a static finding llm_review

The static rules flagged this HIGH, but an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed the full PKGBUILD and judged it LOW (confidence 85%): This PKGBUILD is a legitimate GNOME Shell extension that uses nvm to install a specific Node.js version and npm to fetch typescript@5.7.3 as a build-time dependency for compiling TypeScript source. The pattern is common for GNOME extensions using TypeScript. The source tarball is fetched from the official GitHub repository with a pinned version tag and a sha256 checksum. The npm cache is sandboxed to srcdir. The only real concern is that typescript@5.7.3 is fetched without a lockfile or checksum verification, which is sloppy packaging but not malicious - typescript is a well-known Microsoft package from the official npm registry. No obfuscation, no exfiltration, no payload execution, no source substitution. The cheaper model's HIGH rating is a false positive; the actual risk is low (non-standard but not dangerous packaging practice).

1 higher static finding superseded - not the current verdict (shown for transparency)
HIGH 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.

  • PKGBUILD:49 npm install typescript@5.7.3

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Mark Wagie <mark dot wagie at proton dot me>
2pkgname=gnome-shell-extension-mosaic
3pkgver=1.6.3
4pkgrel=1
5_nodeversion=20
6pkgdesc="GNOME window tiling extension"
7arch=('any')
8url="https://github.com/jardon/gnome-mosaic"
9license=('GPL-3.0-or-later')
10depends=(
11 'gnome-shell'
12 'xorg-xprop'
13)
14makedepends=(
15 'jq'
16 'nvm'
17)
18optdepends=('gnome-shell-extensions: for Native Window Placment extension')
19source=("gnome-mosaic-$pkgver.tar.gz::$url/archive/refs/tags/$pkgver.tar.gz"
20 '50_org.gnome.desktop.wm.keybindings.gnome-mosiac.gschema.override'
21 '50_org.gnome.mutter.keybindings.gnome-mosaic.gschema.override'
22 '50_org.gnome.mutter.wayland.keybindings.gnome-mosaic.gschema.override'
23 '50_org.gnome.settings-daemon.plugins.media-keys.gnome-mosaic.gschema.override'
24 '50_org.gnome.shell.keybindings.gnome-mosaic.gschema.override')
25sha256sums=('cf9045bfc7fadd52b9f750fabd525786af082f44d4001330facf24b29c126607'
26 '484bf48f12d2fa503c27ed34f6d190edb94ec844a0b49c6ff1bda872081e6b64'
27 'f98115fbf502394ffb2eb2a38452a743ab087eadef7e009c62e93ee15c9f3849'
28 'd3a4ac86303c9065fd76dace64283573079c3bdce4b9a2ca18be5f103eb6fd4c'
29 'a6ed6eed9fba7ab0668caa5cb93f56152cd90e1047b4bdfd76dc5b5f8862b6fd'
30 '7ebe94923b20c2bfc2382945ad635620f1b460c06e01694bb57074625414547e')
31
32_ensure_local_nvm() {
33 # let's be sure we are starting clean
34 which nvm >/dev/null 2>&1 && nvm deactivate && nvm unload
35 export NVM_DIR="${srcdir}/.nvm"
36
37 # The init script returns 3 if version specified
38 # in ./.nvmrc is not (yet) installed in $NVM_DIR
39 # but nvm itself still gets loaded ok
40 source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
41}
42
43prepare() {
44 cd "gnome-mosaic-$pkgver"
45 _ensure_local_nvm
46 nvm install "${_nodeversion}"
47
48 export npm_config_cache="$srcdir/npm_cache"
49 npm install typescript@5.7.3
50}
51
52build() {
53 cd "gnome-mosaic-$pkgver"
54 export npm_config_cache="$srcdir/npm_cache"
55 export PATH="node_modules/.bin:${PATH}"
56 _ensure_local_nvm
57 make compile
58}
59
60package() {
61 cd "gnome-mosaic-$pkgver"
62 _uuid=$(jq -r .uuid metadata.json)
63
64 install -d "$pkgdir/usr/share/gnome-shell/extensions/${_uuid}"
65 cp -rv _build/* "$pkgdir/usr/share/gnome-shell/extensions/${_uuid}/"
66
67 install -Dvm644 schemas/*.xml -t "$pkgdir/usr/share/glib-2.0/schemas/"
68 rm -rfv "$pkgdir/usr/share/gnome-shell/extensions/${_uuid}/schemas"
69
70 install -Dvm644 SHORTCUTS.md -t "$pkgdir/usr/share/doc/$pkgname/"
71
72 install -Dvm644 "$srcdir"/*.gnome-mosaic.gschema.override -t \
73 "$pkgdir/usr/share/glib-2.0/schemas/"
74}
75

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