vpinfe
maintainer RobseRob
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The pip install is for the project's own requirements.txt within a contained venv, part of normal Python application installation from the project's source, which is hosted on its official GitHub repository.
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-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The pip install is for the project's own requirements.txt within a contained venv, part of normal Python application installation from the project's source, which is hosted on its official GitHub repository.
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:25
pip install -r requirements.txt
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: robserob <robin at robserob.dk>
2
pkgname=vpinfe
3
pkgver=2.5.2
4
pkgrel=1
5
epoch=33
6
pkgdesc="A vpinball frontend for Linux, Mac, and Windows"
7
arch=('any')
8
url="https://github.com/superhac/vpinfe"
9
depends=('python-pip' 'chromium')
10
provides=('vpinfe')
11
conflicts=('vpinfe')
12
source=("${pkgname}-${pkgver}.zip::https://github.com/superhac/vpinfe/archive/refs/tags/v${pkgver}.zip"
13
'vpinfe.desktop'
14
'vpinfe.png')
15
sha256sums=('ba728cb49618d5db513c5879970ad3dcb78195cec3b92a373a0f243b8be9286d'
16
'd0c22bc258c3fbee04a31378454246f25a3360cf48e870fcb374559de6b4a072'
17
'7e7e1b0854ffcf745d9cf5a643cb005bb3c1c21f58ef50dc9c889eef5e9b92bd')
18
19
package() {
20
# Create virtual environment and install dependencies
21
mkdir -p "$pkgdir/opt/$pkgname/venv"
22
python -m venv "$pkgdir/opt/$pkgname/venv"
23
source "$pkgdir/opt/$pkgname/venv/bin/activate"
24
cd "$srcdir/$pkgname-$pkgver"
25
pip install -r requirements.txt
26
deactivate
27
28
# Install source files
29
cd "$srcdir"
30
install -d "$pkgname-$pkgver" "$pkgdir/opt/$pkgname"
31
cp -r "$pkgname-$pkgver"/* "$pkgdir/opt/$pkgname/"
32
sed -i "s/dev-local/v$pkgver/" "$pkgdir/opt/$pkgname/common/app_version.py"
33
34
# Install launch script to /usr/bin
35
mkdir -p "$pkgdir/usr/bin"
36
echo "#!/bin/bash" > "$pkgdir/usr/bin/$pkgname"
37
echo "cd ~" >> "$pkgdir/usr/bin/$pkgname"
38
echo "/opt/$pkgname/venv/bin/python /opt/$pkgname/main.py \$@" >> "$pkgdir/usr/bin/$pkgname"
39
chmod +x "$pkgdir/usr/bin/$pkgname"
40
41
# Install application entry
42
install -Dm 644 "${srcdir}/vpinfe.png" "${pkgdir}/usr/share/icons/hicolor/512x512/apps/vpinfe.png"
43
install -Dm644 "$srcdir/vpinfe.desktop" "$pkgdir/usr/share/applications/vpinfe.desktop"
44
}
45
46
clean() {
47
cd "$srcdir"
48
rm -rf "$_reponame"
49
}
50
51
Changes since previous scan
--- PKGBUILD @ 2026-07-25 00:13+++ PKGBUILD @ 2026-08-03 00:08@@ -1,6 +1,6 @@ # Maintainer: robserob <robin at robserob.dk> pkgname=vpinfe-pkgver=2.4.5+pkgver=2.5.2 pkgrel=1 epoch=33 pkgdesc="A vpinball frontend for Linux, Mac, and Windows"@@ -12,7 +12,7 @@ source=("${pkgname}-${pkgver}.zip::https://github.com/superhac/vpinfe/archive/refs/tags/v${pkgver}.zip" 'vpinfe.desktop' 'vpinfe.png')-sha256sums=('857fbc551eb678fb8f9a03ee13d1f64912d191817eff675e7cd3abf2cbaf07b4'+sha256sums=('ba728cb49618d5db513c5879970ad3dcb78195cec3b92a373a0f243b8be9286d' 'd0c22bc258c3fbee04a31378454246f25a3360cf48e870fcb374559de6b4a072' '7e7e1b0854ffcf745d9cf5a643cb005bb3c1c21f58ef50dc9c889eef5e9b92bd') 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 15:29:50 | MEDIUM | 1 |
| 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 19:21:42 | MEDIUM | 1 |
| 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 21:59:23 | MEDIUM | 1 |
| 2026-07-18 00:14:48 | LOW | 2 |