korai-git
Triggered rules
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 --upgrade mangadex-downloader
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD runs 'pip install --upgrade mangadex-downloader' during the package() function, which installs a PyPI package into the system (not into the package directory) without any version pinning or integrity verification. This is a genuine supply-chain concern: the package installed is fetched from PyPI at build/install time with no checksum, no version lock, and --upgrade means it always pulls the latest version. Additionally, it installs system-wide via pip rather than into pkgdir, meaning it bypasses pacman's package management entirely. The cheaper model's MEDIUM rating is correct here — this is a real supply-chain risk from an unverified, unpinned external code source that gets executed on the user's system, not merely data. The rest of the PKGBUILD (building from the maintainer's own GitHub repo via meson) is straightforward.
PKGBUILD
1 offending line(s) highlighted# Maintainer: DisableGraphics elchifladod@gmail.com
pkgbase="korai-git"
pkgname="korai-git"
pkgrel=1
pkgver=$(git ls-remote https://github.com/DisableGraphics/Korai.git | grep refs/heads/main | cut -f 1)
pkgdesc="Fast, reliable and feature-packed manga and comics reader (fresh from the git master branch)"
arch=("any")
conflicts=("korai")
url='https://github.com/DisableGraphics/Korai'
makedepends=("git" "imagemagick")
depends=("libarchive" "gtkmm3" "webkit2gtk" "vte3" "mangodl")
license=("GPL")
source=("git+https://github.com/DisableGraphics/Korai")
md5sums=("SKIP")
prepare()
{
cd ${srcdir}
# Since the git repo would be downloaded as "Korai" instead of "Korai-git",
# we need to rename it to "Korai-git" so that the build() function can find it.
if [ ! -d ${srcdir}/${pkgname^} ]; then
ln -s Korai ${pkgname^}
fi
}
build() {
cd ${srcdir}/${pkgname^}
meson setup build
meson compile -C build
}
package() {
install -Dm755 ${pkgname^}/build/korai "${pkgdir}/usr/bin/korai"
install -Dm755 ${pkgname^}/build/libsavepos.so "${pkgdir}/usr/share/korai/korai-extensions/savepos.so"
install -Dm755 ${pkgname^}/src/icon.png "${pkgdir}/usr/share/icons/korai.png"
install -Dm755 ${pkgname^}/src/korai.desktop "${pkgdir}/usr/share/applications/korai.desktop"
pip install --upgrade mangadex-downloader
echo "Korai requires mangadex-downloader (only available using pip) to download MangaDex manga directly"
}
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 |