nmgui-git
maintainer mattkavs
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The pip install is a fallback for an optional dependency (python-nmcli) only if not already present; the package otherwise builds from source via git and uses standard Python tooling in a venv, posing minimal risk.
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 pip install is a fallback for an optional dependency (python-nmcli) only if not already present; the package otherwise builds from source via git and uses standard Python tooling in a venv, posing minimal risk.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
pip install of an external package
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:38
pip install nmcli
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Matthew Kavanagh (https://github.com/mkavanagh-23)
2
# Original Author: Aditya Singh (https://github.com/s-adi-dev)
3
4
pkgname=nmgui-git
5
pkgver=r7.5e12fd0 # Will be overwritten by pkgver()
6
pkgrel=3
7
pkgdesc="A simple and lightweight GTK4-based GUI for managing Wi-Fi and network connections using NetworkManager (nmcli) under the hood."
8
arch=('x86_64')
9
url="https://github.com/s-adi-dev/nmgui"
10
license=('GPL3')
11
depends=('gtk4' 'networkmanager' 'python-gobject')
12
makedepends=('git' 'nuitka' 'python-pip' 'python-virtualenv')
13
optdepends=('python-nmcli: for enhanced NetworkManager integration')
14
options=('!strip' '!debug') # Keep all symbols
15
provides=('nmgui')
16
conflicts=('nmgui' 'nmgui-bin')
17
source=("git+${url}.git#branch=main")
18
sha256sums=('SKIP')
19
20
# Dynamic version based on git commit
21
pkgver() {
22
cd "$srcdir/nmgui"
23
printf "r%s.%s" \
24
"$(git rev-list --count HEAD)" \
25
"$(git rev-parse --short HEAD)"
26
}
27
28
build() {
29
cd "$srcdir/nmgui/build"
30
31
# Set up the python build environment (include system packages)
32
python -m venv --system-site-packages build_env
33
source build_env/bin/activate
34
35
# Check for system-installed python-nmcli
36
if ! python -c "import nmcli" 2>/dev/null; then
37
echo "Package python-nmcli not found. Installing via pip"
38
pip install nmcli
39
else
40
echo "Package python-nmcli found. Using system package"
41
fi
42
export PYTHONPATH="$(python -c 'import site; print(site.getsitepackages()[0])'):$PYTHONPATH"
43
44
# Build the executable
45
chmod +x build.bin
46
./build.bin
47
48
# Deactivate the venv
49
deactivate
50
}
51
52
package() {
53
cd "$srcdir/nmgui"
54
55
# Install the compiled binary
56
install -Dm755 dist/main.bin "$pkgdir/usr/bin/nmgui"
57
58
# Install desktop file
59
if [ -f "nmgui.desktop" ]; then
60
install -Dm644 nmgui.desktop "$pkgdir/usr/share/applications/nmgui.desktop"
61
fi
62
63
# Install documentation
64
if [ -f "README.md" ]; then
65
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
66
fi
67
if [ -f "LICENSE" ]; then
68
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
69
fi
70
}
71
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 |