gourmand
maintainer fridge
· 7 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
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-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 |