superlauncher-mc
Triggered rules
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:40
"$pkgdir/usr/share/superlauncher-mc/venv/bin/python" -m pip install --upgrade pip
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD uses `sha256sums=('SKIP')` for the source tarball, meaning the downloaded source is never integrity-checked. More importantly, it runs `pip install` during the `package()` phase to pull in multiple PyPI packages (pyqt6, minecraft-launcher-lib, requests, psutil, pypresence, packaging, tqdm, random-username) without any version pinning or hash verification. These packages are fetched at build time from PyPI with no integrity guarantees, creating a real supply-chain risk: any of these packages could be compromised or typosquatted (e.g. 'random-username' is a relatively obscure package). Additionally, creating a venv inside `pkgdir` and running pip into it during packaging is non-standard and means the installed package contains a venv with unverified, unpinned dependencies that will not receive system updates. The combination of SKIP checksums, unpinned pip installs of multiple packages (including less-common ones), and execution of downloaded code during the build phase constitutes a genuine medium-severity supply-chain concern.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Ludvig <artemludvig79@gmail.com>
pkgname=superlauncher-mc
pkgver=1.4.0.9
pkgrel=1
pkgdesc="SuperLauncherMC — Advanced Minecraft launcher with mod and server support (new design release)"
arch=('x86_64')
url="https://github.com/ludvig2457/SuperLauncherMC"
license=('GPL3')
depends=(
'python'
'python-pyqt6'
'java-runtime'
)
makedepends=(
'python-pip'
'python-virtualenv'
)
source=(
"$pkgname-$pkgver.tar.gz::https://github.com/ludvig2457/SuperLauncherMC/archive/v$pkgver.tar.gz"
)
sha256sums=('SKIP')
package() {
cd "$srcdir/SuperLauncherMC-$pkgver"
# Установка директории лаунчера
install -d "$pkgdir/usr/share/superlauncher-mc"
cp -r SuperLauncher.py assets "$pkgdir/usr/share/superlauncher-mc/"
# Добавляем шебанг для python3, если его нет
if ! head -n 1 SuperLauncher.py | grep -q "^#\!"; then
sed -i '1i#!/usr/bin/env python3' SuperLauncher.py
fi
# Создаём virtual environment
python -m venv "$pkgdir/usr/share/superlauncher-mc/venv"
# Устанавливаем библиотеки в venv
"$pkgdir/usr/share/superlauncher-mc/venv/bin/python" -m pip install --upgrade pip
"$pkgdir/usr/share/superlauncher-mc/venv/bin/python" -m pip install \
pyqt6 minecraft-launcher-lib requests psutil pypresence packaging tqdm random-username
# Создаём wrapper для запуска через venv напрямую
install -d "$pkgdir/usr/bin"
cat <<EOF > "$pkgdir/usr/bin/superlauncher-mc"
#!/usr/bin/env bash
DIR="/usr/share/superlauncher-mc"
exec "\$DIR/venv/bin/python" "\$DIR/SuperLauncher.py" "\$@"
EOF
chmod +x "$pkgdir/usr/bin/superlauncher-mc"
# Desktop-файл
install -d "$pkgdir/usr/share/applications"
cat <<EOF > "$pkgdir/usr/share/applications/superlauncher-mc.desktop"
[Desktop Entry]
Name=SuperLauncherMC
Comment=Advanced Minecraft Launcher with mod and server support
Exec=/usr/bin/superlauncher-mc
Icon=superlauncher
Type=Application
Categories=Game;
Terminal=false
EOF
# Иконка
install -Dm644 assets/icon.png "$pkgdir/usr/share/pixmaps/superlauncher.png"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 2 |
| 2026-08-02 00:16:08 | MEDIUM | 2 |
| 2026-08-01 00:11:18 | MEDIUM | 2 |
| 2026-07-31 00:14:10 | MEDIUM | 2 |
| 2026-07-30 00:17:23 | MEDIUM | 2 |
| 2026-07-29 00:25:53 | MEDIUM | 2 |
| 2026-07-28 00:07:28 | MEDIUM | 2 |
| 2026-07-27 00:24:32 | MEDIUM | 2 |
| 2026-07-26 00:07:32 | MEDIUM | 2 |
| 2026-07-25 00:13:44 | MEDIUM | 2 |
| 2026-07-24 00:02:28 | MEDIUM | 2 |
| 2026-07-23 00:14:47 | MEDIUM | 2 |
| 2026-07-22 00:29:32 | MEDIUM | 2 |
| 2026-07-21 00:24:15 | MEDIUM | 2 |
| 2026-07-20 00:19:49 | MEDIUM | 2 |
| 2026-07-19 00:17:08 | MEDIUM | 2 |
| 2026-07-18 00:14:48 | MEDIUM | 2 |
| 2026-07-17 00:06:16 | MEDIUM | 2 |
| 2026-07-16 00:05:41 | MEDIUM | 2 |
| 2026-07-15 00:09:25 | MEDIUM | 2 |