whoogle
The pip install is part of building the project from its own source code (downloaded from the official GitHub repository), which is a normal and expected step in the build process for Python applications.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The pip install is part of building the project from its own source code (downloaded from the official GitHub repository), which is a normal and expected step in the build process for Python applications.
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:35
pip install -r requirements.txt
PKGBUILD
1 offending line(s) highlighted# Maintainer: dr460nf1r3 <dr460nf1r3 at garudalinux dot org>
pkgname=whoogle
pkgver="1.2.4"
pkgrel=2
pkgdesc='A self-hosted, ad-free, privacy-respecting metasearch engine'
arch=(x86_64 aarch64)
url="https://github.com/benbusby/whoogle-search"
license=(MIT)
depends=(python)
makedepends=(python python-pip)
optdepends=('tor: use the TOR network to perform searches')
conflicts=($pkgname-git)
backup=('etc/default/whoogle')
source=("$pkgname-$pkgver.tar.gz::https://github.com/benbusby/whoogle-search/archive/refs/tags/v$pkgver.tar.gz"
$pkgname
$pkgname.conf
$pkgname.service)
sha256sums=('66db11d022f91c5a68c1690aed4c3c2663cbc9f524e6ce385ce0feeaca82a7ff'
'e30ff5ecef199ce2a37b097709461c51ca07bdbbcc4609db74203834b62c60b1'
'51cda92f3ad2166eb2cb63ff80561f48b39688a57b66291d2eee5e1c7fcd8ee3'
'ab6256f3fdaac3ba58ddbb39bb5c24bde53312f0584ae4ed4ae74bc7752a07f4')
install=$pkgname.install
prepare() {
mv $pkgname-search-$pkgver $pkgname-search
}
build() {
# Following official instructions
cd $pkgname-search
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Cleanup unsed files
_cleanup=(docs test .dockerignore .gitignore .replit docker-compose.yml Dockerfile heroku.yml MANIFEST.in README.md requirements.txt)
for i in "${_cleanup[@]}"; do
rm -r "$i"
done
}
package() {
install -m0644 -D "$srcdir/whoogle" "$pkgdir/etc/default/whoogle"
install -m0644 -D "$srcdir/whoogle.conf" "$pkgdir/usr/lib/sysusers.d/whoogle.conf"
install -m0644 -D "$srcdir/whoogle.service" "$pkgdir/usr/lib/systemd/system/whoogle.service"
install -Dm0644 "$srcdir/$pkgname-search/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -dm0755 "$pkgdir/opt/whoogle-search"
cp -r "$srcdir/whoogle-search/" "$pkgdir/opt/"
}
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 |