chronodash
maintainer Overl1te
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The pip install is used to install dependencies from a requirements.txt file within a local venv during prepare(), which is a normal part of building the project from its own source; the source is from the project's official GitHub repo, and no untrusted external packages are dynamically fetched.
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 is used to install dependencies from a requirements.txt file within a local venv during prepare(), which is a normal part of building the project from its own source; the source is from the project's official GitHub repo, and no untrusted external packages are dynamically fetched.
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:28
pip install --no-cache-dir --upgrade pip -
PKGBUILD:29
pip install --no-cache-dir -r requirements.txt || { echo "Pip install failed!"; exit 1; }
PKGBUILD
2 offending line(s) highlighted
1
# Maintainer: Overl1te Overl1teGithub@yandex.ru
2
3
pkgname=chronodash
4
pkgver=2.2.7_beta
5
pkgrel=1
6
pkgdesc="Transparent always-on-top desktop widgets (clocks, weather etc)"
7
arch=('x86_64')
8
url="https://github.com/Overl1te/ChronoDash"
9
license=('GPL3')
10
depends=('python' 'qt6-base' 'qt6-svg' 'libx11' 'tk' 'glibc')
11
makedepends=('git' 'python-pip' 'python-wheel' 'python-setuptools')
12
provides=('chronodash')
13
conflicts=('chronodash-bin' 'chronodash-git')
14
source=("git+https://github.com/Overl1te/ChronoDash.git")
15
sha256sums=('SKIP')
16
17
pkgver() {
18
cd "${srcdir}/ChronoDash"
19
local count=$(git rev-list --count HEAD 2>/dev/null || echo 0)
20
local hash=$(git rev-parse --short HEAD 2>/dev/null || echo unknown)
21
printf "2.2.5.7_beta.r%s.%s" "$count" "$hash"
22
}
23
24
prepare() {
25
cd "${srcdir}/ChronoDash"
26
python -m venv venv
27
source venv/bin/activate
28
pip install --no-cache-dir --upgrade pip
29
pip install --no-cache-dir -r requirements.txt || { echo "Pip install failed!"; exit 1; }
30
deactivate
31
}
32
33
build() {
34
cd "${srcdir}/ChronoDash"
35
source venv/bin/activate
36
bash build_arch.sh || { echo "build_arch.sh failed! Check logs."; exit 1; }
37
deactivate
38
}
39
40
package() {
41
cd "${srcdir}/ChronoDash"
42
43
install -dm755 "$pkgdir/opt/chronodash"
44
if [[ -d "dist/ChronoDash" ]]; then
45
cp -r dist/ChronoDash/* "$pkgdir/opt/chronodash/"
46
elif [[ -d "dist" && -n "$(ls dist/ 2>/dev/null)" ]]; then
47
cp -r dist/* "$pkgdir/opt/chronodash/"
48
else
49
echo "Error: dist/ not found after build!"
50
exit 1
51
fi
52
53
install -dm755 "$pkgdir/usr/bin"
54
cat > "$pkgdir/usr/bin/chronodash" << 'EOF'
55
#!/bin/bash
56
export LD_LIBRARY_PATH=/opt/chronodash/lib:$LD_LIBRARY_PATH
57
exec /opt/chronodash/ChronoDash "$@"
58
EOF
59
chmod +x "$pkgdir/usr/bin/chronodash"
60
61
# Иконка
62
install -dm755 "$pkgdir/usr/share/icons/hicolor/64x64/apps"
63
for icon in assets/icons/{chronodash,logo,app,icon}.png; do
64
if [[ -f "$icon" ]]; then
65
install -Dm644 "$icon" "$pkgdir/usr/share/icons/hicolor/64x64/apps/chronodash.png"
66
break
67
fi
68
done
69
70
install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/chronodash.desktop" << EOF
71
[Desktop Entry]
72
Type=Application
73
Version=1.5
74
Name=ChronoDash
75
GenericName=Desktop Widgets
76
Comment=Modern, customizable desktop widgets
77
Exec=chronodash
78
TryExec=chronodash
79
Icon=chronodash
80
Terminal=false
81
StartupNotify=true
82
Categories=Utility;System;
83
EOF
84
85
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
86
}
87
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 |