clickup
maintainer alhirzel
· 16 votes
· scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged
The package downloads a prebuilt AppImage from desktop.clickup.com, a non-whitelisted host, which is an unverifiable executable and represents a supply-chain risk if the domain were compromised.
Triggered rules
MEDIUM
source=() URL on a non-standard host
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:27
source=("${_filename}::https://desktop.clickup.com/linux" -
PKGBUILD:28
"terms.html::https://clickup.com/terms")
MEDIUM
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-07-25) reviewed this and agrees it is MEDIUM (confidence 90%): The package downloads a prebuilt AppImage from desktop.clickup.com, a non-whitelisted host, which is an unverifiable executable and represents a supply-chain risk if the domain were compromised.
PKGBUILD
2 offending line(s) highlighted
1
# Maintainer: Alex Hirzel <alex at hirzel period us>
2
# Contributor: Maarten de Boer <maarten@cloudstek.nl>
3
# Contributor: Yakumo Saki <yakumo at ziomatrix dot org>
4
# Contributor: Xuanwo <xuanwo@archlinucn.org>
5
pkgname=clickup
6
pkgver=3.5.230
7
pkgrel=2
8
pkgdesc="Desktop app for clickup.com"
9
arch=('x86_64')
10
url="https://clickup.com"
11
license=('CustomLicense')
12
depends=(
13
'alsa-lib'
14
'dbus-glib'
15
'gtk3'
16
'libdbusmenu-gtk3'
17
'libindicator-gtk3'
18
'libsecret'
19
'libxkbfile'
20
'nss'
21
)
22
makedepends=('sed')
23
options=('!strip')
24
25
_filename="$pkgname-desktop-$pkgver-x86_64.AppImage"
26
27
source=("${_filename}::https://desktop.clickup.com/linux"
28
"terms.html::https://clickup.com/terms")
29
30
sha256sums=('f5de1dffd14fd79f231c913ac510926b12fa90fc582cd69de7550d97b455942b'
31
'SKIP')
32
33
prepare() {
34
rm -rf squashfs-root
35
chmod +x $_filename
36
./$_filename --appimage-extract
37
38
# Fix directory permissions (read + execute)
39
find squashfs-root -type d -exec chmod a+rx {} \;
40
}
41
42
package() {
43
cd "${srcdir}/squashfs-root"
44
45
# Symlink to /usr/bin (binary renamed to ClickUp below; see rename note)
46
install -dm0755 "${pkgdir}/usr/bin"
47
ln -s /opt/clickup/ClickUp "${pkgdir}/usr/bin/clickup"
48
49
# Desktop entry and icons
50
install -Dm0644 desktop.desktop -T "${pkgdir}/usr/share/applications/ClickUp.desktop"
51
sed -i \
52
-e "s|^Exec=.\+|Exec=/usr/bin/clickup %U|" \
53
-e "s|^Icon=.\+|Icon=ClickUp|" \
54
"${pkgdir}/usr/share/applications/ClickUp.desktop"
55
56
# Terms and licenses
57
install -Dm0644 "${srcdir}/terms.html" -t "${pkgdir}/usr/share/licenses/${pkgname}/"
58
install -Dm0644 LICENSE.electron.txt -t "${pkgdir}/usr/share/licenses/${pkgname}/"
59
install -Dm0644 LICENSES.chromium.html -t "${pkgdir}/usr/share/licenses/${pkgname}/"
60
61
# Icons (list sizes dynamically since upstream may drop some sizes)
62
for dir in usr/share/icons/hicolor/*/; do
63
size="$(basename "${dir}")"
64
[ -f "usr/share/icons/hicolor/${size}/apps/desktop.png" ] || continue
65
install -Dm0644 "usr/share/icons/hicolor/${size}/apps/desktop.png" -T "${pkgdir}/usr/share/icons/hicolor/${size}/apps/ClickUp.png"
66
done
67
68
# AppDir contents
69
cd "${srcdir}"
70
install -dm0755 "${pkgdir}/opt"
71
mv squashfs-root "${pkgdir}/opt/clickup"
72
chmod 755 "${pkgdir}/opt/clickup"
73
chmod a+rX "${pkgdir}/opt/clickup/"
74
75
# Rename binary so the Wayland app_id is "ClickUp", not the generic "desktop"
76
mv "${pkgdir}/opt/clickup/desktop" "${pkgdir}/opt/clickup/ClickUp"
77
78
# Clean up files
79
rm -r "${pkgdir}/opt/clickup/usr/share/"
80
rm "${pkgdir}/opt/clickup/AppRun" "${pkgdir}/opt/clickup/desktop.desktop"
81
rm "${pkgdir}/opt/clickup/desktop.png" "${pkgdir}/opt/clickup/.DirIcon"
82
rm "${pkgdir}/opt/clickup/LICENSE.electron.txt" "${pkgdir}/opt/clickup/LICENSES.chromium.html"
83
}
84
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 2 |
| 2026-08-02 00:16:08 | MEDIUM | 2 |
| 2026-08-01 00:11:18 | MEDIUM | 2 |
| 2026-07-31 00:14:10 | MEDIUM | 2 |
| 2026-07-30 00:17:23 | MEDIUM | 2 |
| 2026-07-29 00:25:53 | MEDIUM | 2 |
| 2026-07-28 00:07:28 | MEDIUM | 2 |
| 2026-07-27 00:24:32 | MEDIUM | 2 |
| 2026-07-26 00:07:32 | MEDIUM | 2 |
| 2026-07-25 00:13:44 | MEDIUM | 2 |
| 2026-07-24 00:02:28 | MEDIUM | 2 |
| 2026-07-23 00:14:47 | MEDIUM | 2 |
| 2026-07-22 00:29:32 | MEDIUM | 2 |
| 2026-07-21 00:24:15 | MEDIUM | 2 |
| 2026-07-20 00:19:49 | MEDIUM | 2 |
| 2026-07-19 00:17:08 | MEDIUM | 2 |
| 2026-07-18 00:14:48 | MEDIUM | 2 |
| 2026-07-17 00:06:16 | MEDIUM | 2 |
| 2026-07-16 00:05:41 | MEDIUM | 2 |
| 2026-07-15 00:09:25 | MEDIUM | 2 |