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-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |
| 2026-10-13 00:23:45 | Low | 2 |