python-bluetooth-battery
The package installs a Python dependency via pip from PyPI, which is a normal and expected practice for Python packages; the action is transparent, targets a specific version, and installs only the declared project.
Triggered rules
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums. Severity reduced: python-* packages routinely use pip.
-
PKGBUILD:16
PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring pip install --no-deps --target="bluetooth-battery" bluetooth-battery==1.3.2
llm_review
An AI model (qwen/qwen3-235b-a22b-07-25) reviewed this and agrees it is LOW (confidence 95%): The package installs a Python dependency via pip from PyPI, which is a normal and expected practice for Python packages; the action is transparent, targets a specific version, and installs only the declared project.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Konstantin Köhring <konstantin.koehring@gmail.com>
# PKGBUILD generated by pipman
# Python package author: TheWeirdDev <alireza6677@gmail.com>
pkgname=python-bluetooth-battery
pkgver=1.3.2
pkgrel=4
pkgdesc="A python script to get battery level from Bluetooth headsets"
arch=(any)
url="https://pypi.org/project/bluetooth-battery"
license=(GPL-3.0)
depends=('python-pybluez')
makedepends=("python" "python-pip")
build() {
PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring pip install --no-deps --target="bluetooth-battery" bluetooth-battery==1.3.2
}
package() {
sitepackages=$(python -c "import site; print(site.getsitepackages()[0])")
mkdir -p $pkgdir/"$sitepackages"
cp -r $srcdir/bluetooth-battery/* $pkgdir/"$sitepackages"
mkdir -p $pkgdir/usr/bin/
cp $srcdir/bluetooth-battery/bin/bluetooth_battery $pkgdir/usr/bin/bluetooth_battery
}
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 |