nmgui-git
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
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)
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# Maintainer: Matthew Kavanagh (https://github.com/mkavanagh-23)
# Original Author: Aditya Singh (https://github.com/s-adi-dev)
pkgname=nmgui-git
pkgver=r7.5e12fd0 # Will be overwritten by pkgver()
pkgrel=3
pkgdesc="A simple and lightweight GTK4-based GUI for managing Wi-Fi and network connections using NetworkManager (nmcli) under the hood."
arch=('x86_64')
url="https://github.com/s-adi-dev/nmgui"
license=('GPL3')
depends=('gtk4' 'networkmanager' 'python-gobject')
makedepends=('git' 'nuitka' 'python-pip' 'python-virtualenv')
optdepends=('python-nmcli: for enhanced NetworkManager integration')
options=('!strip' '!debug') # Keep all symbols
provides=('nmgui')
conflicts=('nmgui' 'nmgui-bin')
source=("git+${url}.git#branch=main")
sha256sums=('SKIP')
# Dynamic version based on git commit
pkgver() {
cd "$srcdir/nmgui"
printf "r%s.%s" \
"$(git rev-list --count HEAD)" \
"$(git rev-parse --short HEAD)"
}
build() {
cd "$srcdir/nmgui/build"
# Set up the python build environment (include system packages)
python -m venv --system-site-packages build_env
source build_env/bin/activate
# Check for system-installed python-nmcli
if ! python -c "import nmcli" 2>/dev/null; then
echo "Package python-nmcli not found. Installing via pip"
pip install nmcli
else
echo "Package python-nmcli found. Using system package"
fi
export PYTHONPATH="$(python -c 'import site; print(site.getsitepackages()[0])'):$PYTHONPATH"
# Build the executable
chmod +x build.bin
./build.bin
# Deactivate the venv
deactivate
}
package() {
cd "$srcdir/nmgui"
# Install the compiled binary
install -Dm755 dist/main.bin "$pkgdir/usr/bin/nmgui"
# Install desktop file
if [ -f "nmgui.desktop" ]; then
install -Dm644 nmgui.desktop "$pkgdir/usr/share/applications/nmgui.desktop"
fi
# Install documentation
if [ -f "README.md" ]; then
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
fi
if [ -f "LICENSE" ]; then
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
fi
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |