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-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |