touchportal-appimage

LOW
maintainer Webdo 2 votes scanned 2026-10-02 00:00:32.890515
View on AUR
Why flagged

The package downloads a prebuilt AppImage from the official project domain touch-portal.com, which is not on the whitelist but is plausibly legitimate; the AppImage is checksummed and used to extract assets for proper system integration, with no obfuscated code or remote execution beyond standard AppImage use.

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-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt AppImage from the official project domain touch-portal.com, which is not on the whitelist but is plausibly legitimate; the AppImage is checksummed and used to extract assets for proper system integration, with no obfuscated code or remote execution beyond standard AppImage use.

1 higher static finding superseded - not the current verdict (shown for transparency)
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:17 source_x86_64=("${_appimage}::https://www.touch-portal.com/downloads/releases/linux/TouchPortal.AppImage")

PKGBUILD

1 offending line(s) highlighted
1# Based on the template from https://daveparrish.net/posts/2019-11-16-Better-AppImage-PKGBUILD-template.html
2# Maintainer: Gelmo <gelmo[at]outlook.com>
3
4_pkgname=touchportal
5appname=TouchPortal
6
7pkgname="${_pkgname}"-appimage
8pkgver=4.6.0.2
9pkgrel=1
10pkgdesc="Remote macro control deck for PC and Mac OS for streamers, content creators and other professionals"
11arch=('x86_64')
12url="https://www.touch-portal.com"
13license=('custom')
14depends=('zlib' 'hicolor-icon-theme' 'fuse2')
15options=(!strip)
16_appimage="${appname}-${pkgver}.AppImage"
17source_x86_64=("${_appimage}::https://www.touch-portal.com/downloads/releases/linux/TouchPortal.AppImage")
18noextract=("${_appimage}")
19sha256sums_x86_64=('af0069ef283fd04196b3a4efb0ed4b3c5b3cdcdad21a6cdb5376bed194613343')
20
21prepare() {
22 chmod +x "${_appimage}"
23 ./"${_appimage}" --appimage-extract
24}
25
26build() {
27 # Adjust .desktop so it will work outside of AppImage container
28 sed -i -E "s|Exec=${appname}|Exec=env DESKTOPINTEGRATION=false APPIMAGELAUNCHER_DISABLE=true /usr/bin/${_pkgname}|"\
29 "squashfs-root/${appname}.desktop"
30 # Fix permissions; .AppImage permissions are 700 for all directories
31 chmod -R a-x+rX squashfs-root/usr
32}
33
34package() {
35 # AppImage
36 install -Dm755 "${srcdir}/${_appimage}" "${pkgdir}/opt/${pkgname}/${pkgname}.AppImage"
37
38 # Desktop file
39 install -Dm644 "${srcdir}/squashfs-root/${appname}.desktop"\
40 "${pkgdir}/usr/share/applications/${appname}.desktop"
41
42 # Icon images
43 install -dm755 "${pkgdir}/usr/share/"
44 cp -a "${srcdir}/squashfs-root/usr/share/icons" "${pkgdir}/usr/share/"
45
46 # Symlink executable
47 install -dm755 "${pkgdir}/usr/bin"
48 ln -s "/opt/${pkgname}/${pkgname}.AppImage" "${pkgdir}/usr/bin/${_pkgname}"
49}
50

Scan history

Scanned at (UTC)SeverityRules
2026-10-02 00:00:32 Low 2
2026-10-01 00:02:06 Low 2
2026-09-30 00:20:07 Low 2
2026-09-29 00:07:46 Low 2
2026-09-28 00:28:32 Low 2
2026-09-27 00:07:07 Low 2
2026-09-26 00:12:15 Low 2
2026-09-25 00:03:36 Low 2
2026-09-24 00:24:14 Low 2
2026-09-23 00:28:13 Low 2
2026-09-22 00:15:14 Low 2
2026-09-21 00:26:32 Low 2
2026-09-20 00:25:31 Low 2
2026-09-19 00:25:36 Low 2
2026-09-18 00:17:11 Low 2
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion