gourmand
LOW
maintainer fridge
7 votes
scanned 2026-09-17 00:27:14.276658
Why flagged
The pip install uses a locally built wheel and variable-defined extras from a project-owned script, not an external untrusted package, so the risk is low despite the static analysis flag.
Triggered rules
Low
AI review downgraded a static finding
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 uses a locally built wheel and variable-defined extras from a project-owned script, not an external untrusted package, so the risk is low despite the static analysis flag.
-
PKGBUILD:36
venv/bin/pip install --isolated "$wheel[$extras]" "setuptools"
1 higher static finding superseded - not the current verdict (shown for transparency)
Medium
pip install of an external package
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:36
venv/bin/pip install --isolated "$wheel[$extras]" "setuptools"
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: fridge <echo dW5sb3ZhYmxlX2ZyaWRnZTM1NkBhbGVlYXMuY29tCg== | base64 -d>
2
# Contributor: Yigit Sever <echo eWlnaXRAeWlnaXRzZXZlci5jb20K | base64 -d>
3
pkgname="gourmand"
4
pkgver="1.2.0"
5
pkgrel="2"
6
pkgdesc="A manager, editor, and organizer for recipes."
7
url="https://github.com/GourmandRecipeManager/$pkgname"
8
license=("GPL-2.0-only")
9
source=("$pkgname-git::git+$url.git#commit=$pkgver" "get-extras.py")
10
b2sums=("SKIP" "d31820469d0cc07c6c53f7ef2bcf59dd153c82b5fc44347bf78d32797f43dbae2ac0a158ed2aba4dc4a2a74cb54539fb5fe1e6148c81e544503da054d992fcbc")
11
arch=("x86_64")
12
makedepends=("gendesk" "coreutils" "python-virtualenv" "python-pip" "python-setuptools" "git" "intltool")
13
depends=("bash")
14
conflicts=("$pkgname")
15
provides=("$pkgname=$pkgver")
16
17
pkgver()
18
{
19
cd "$pkgname-git" || exit
20
git describe --tags --abbrev=0 --exclude "*rc*"
21
}
22
23
build()
24
{
25
gendesk -f -n --categories="Utility" --startupnotify="true"
26
echo "creating start script"
27
echo -e '#!/bin/bash\ncd "/opt/'"$pkgname"'/bin"\n"./'"$pkgname"'" -q "$@"' > "$pkgname"
28
cd "$pkgname-git" || exit
29
echo "creating virtual environment"
30
python -m venv --clear --copies venv
31
echo "building Gourmand wheel"
32
python setup.py bdist_wheel
33
echo "installing into virtual environment"
34
local wheel; wheel="$(ls dist/*.whl)"
35
local extras; extras="$($srcdir/get-extras.py)"
36
venv/bin/pip install --isolated "$wheel[$extras]" "setuptools"
37
echo "removing unnecessary packages from virtual environment"
38
venv/bin/pip uninstall --isolated -y pip
39
echo "making virtual environment portable"
40
sed -i '1s|.*|#!/usr/bin/env -S /bin/sh -c '"'"'"\$(dirname "\$0")/python" "\$0" "\$@"'"'"'|' "venv/bin/$pkgname"
41
}
42
43
package()
44
{
45
install -dv "$pkgdir/opt/$pkgname"
46
cp -afLv "$pkgname-git/venv/"* "$pkgdir/opt/$pkgname"
47
install -Dvm755 "$pkgname" "$pkgdir/usr/bin/$pkgname"
48
install -Dvm644 "$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
49
install -Dvm644 "$pkgname-git/src/$pkgname/data/images/$pkgname.svg" "$pkgdir/usr/share/icons/$pkgname.svg"
50
}
51
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 |