primespecpcr
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed the full PKGBUILD and judged it LOW (confidence 80%): The PKGBUILD has several issues but the security concern raised by the cheaper model is overstated. The pip install from requirements.txt happens inside a venv with --system-site-packages, and the source is pulled directly from the upstream GitHub repo (same repo as the package itself), so requirements.txt is part of the audited upstream source, not an external unverified file. This is sloppy packaging (using pip inside a PKGBUILD build() instead of proper wheel/installer workflow, and the venv is then copied wholesale into /usr/share), but not a meaningful supply-chain risk beyond what any AUR package already entails. The package is also likely broken: the build() function creates a venv and runs build_executable.py --clean (which presumably produces a binary named PrimeSpecPCR), but the package() function symlinks to ../share/primespecpcr/PrimeSpecPCR which may or may not exist depending on what build_executable.py actually produces. The commented-out code suggests this is a work-in-progress. The desktop entry incorrectly categorizes a bioinformatics tool as a Game. Overall: sloppy/incomplete packaging with no real security threat.
1 higher static finding superseded - not the current verdict (shown for transparency)
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:24
python3 -m pip install -r requirements.txt
PKGBUILD
1 offending line(s) highlightedpkgname=primespecpcr
_name=PrimeSpecPCR
pkgver=0.0.1
pkgrel=1
pkgdesc="Species-Specific Primer Design Toolkit."
arch=('any')
url="https://github.com/Adv20202/PrimeSpecPCR"
license=('MIT')
depends=('mafft' 'python' 'python-construct' 'python-biopython' 'primer3-py' 'python-pandas' 'python-numpy' 'python-tqdm' 'python-validators' 'python-requests')
makedepends=('python-build' 'python-installer' 'python-setuptools' 'python-wheel')
source=("git+https://github.com/Adv20202/PrimeSpecPCR.git")
md5sums=('SKIP')
#uild() {
# cd "$srcdir/$_name"
#python -m build
#
build() {
cd "$srcdir/$_name"
# Instead of doing the full ./bootstrap.sh
python3 -m venv env --system-site-packages
source env/bin/activate
python3 -m pip install -r requirements.txt
msg "Starting build..."
python build_executable.py --clean
}
package() {
cd "$srcdir/$_name"
# python -m installer --destdir="$pkgdir" dist/*.whl
# install -Dp -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
# install -Dp -m644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
# cp -R "help" "build"
# cp -R "locale" "build"
# python package.py --arch-pkg
# cd "build/${pkgname}-arch"
# mkdir -p "${pkgdir}/usr/share/applications"
# mv ${pkgname}.desktop "${pkgdir}/usr/share/applications"
mkdir -p "${pkgdir}/usr/share/${pkgname}"
cp -a -- * "${pkgdir}/usr/share/${pkgname}/"
chmod a+x "${pkgdir}/usr/share/${pkgname}/run.py"
# mkdir -p "${pkgdir}/usr/share/pixmaps"
# ln -s "/usr/share/${pkgname}/dgse_logo_128.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
mkdir -p "${pkgdir}/usr/bin"
# ln -s ../share/${pkgname}/run.py "${pkgdir}/usr/bin/${pkgname}"
ln -s ../share/${pkgname}/PrimeSpecPCR "${pkgdir}/usr/bin/${pkgname}"
# Install desktop entry
install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/${pkgname}.desktop" << 'EOF'
[Desktop Entry]
Name=PrimeSpecPCR
Comment=Species-Specific Primer Design Toolkit
Exec=primespecpcr
Icon=applications-games
Terminal=false
Type=Application
Categories=Game;Utility;
EOF
}
# vim: set ft=sh ts=4 sw=4 noet:
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 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 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 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |
| 2026-07-15 00:09:25 | LOW | 2 |