popsql

maintainer BoredYama · 0 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD downloads a prebuilt proprietary AppImage binary from get.popsql.com, which is the official PopSQL download host (popsql.com is the vendor's own domain). The binary is executed during prepare() via --appimage-extract and then installed and run as the application. A sha256sum is pinned, which mitigates silent substitution to some degree, but the URL is a redirect/alias ('download/AppImage' without a version-specific path), meaning the checksum could become stale or the file could be swapped at the CDN level between versions. The host itself (get.popsql.com) is the vendor's official distribution endpoint, not a personal or unofficial host, so this is closer to a standard proprietary binary package than a rogue supply-chain risk. The pattern is common in AUR for Electron/AppImage apps (e.g., slack, discord, zoom). The medium rating is marginally justified only because the download URL is not version-pinned (no version in the path), making the sha256 the sole integrity guard, and the binary is directly executed. No obfuscation, exfiltration, or clearly malicious behavior is present.

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:14 source=("PopSQL-${pkgver}.AppImage::https://get.popsql.com/download/AppImage")
MEDIUM AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads a prebuilt proprietary AppImage binary from get.popsql.com, which is the official PopSQL download host (popsql.com is the vendor's own domain). The binary is executed during prepare() via --appimage-extract and then installed and run as the application. A sha256sum is pinned, which mitigates silent substitution to some degree, but the URL is a redirect/alias ('download/AppImage' without a version-specific path), meaning the checksum could become stale or the file could be swapped at the CDN level between versions. The host itself (get.popsql.com) is the vendor's official distribution endpoint, not a personal or unofficial host, so this is closer to a standard proprietary binary package than a rogue supply-chain risk. The pattern is common in AUR for Electron/AppImage apps (e.g., slack, discord, zoom). The medium rating is marginally justified only because the download URL is not version-pinned (no version in the path), making the sha256 the sole integrity guard, and the binary is directly executed. No obfuscation, exfiltration, or clearly malicious behavior is present.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Rami Chowdhury <necaris@gmail.com>
2# Maintainer: Tobias Backer Dirks <omgitsaheadcrab@gmail.com>
3# Co-Maintainer: LSM <sagargaud88@gmail.com>
4pkgname=popsql
5pkgver=1.0.135
6pkgrel=1
7pkgdesc="Collaborative SQL editor for teams"
8arch=('x86_64')
9url="https://popsql.com"
10license=('custom:proprietary')
11depends=('fuse2' 'gtk3' 'nss' 'libxss' 'libnotify' 'alsa-lib')
12provides=('popsql')
13conflicts=('popsql')
14source=("PopSQL-${pkgver}.AppImage::https://get.popsql.com/download/AppImage")
15sha256sums=('1dec3c2cbea7365a80967f50970321b5e2de8cf039ddc9c0d9f92f4dfcab1746')
16options=('!strip')
17
18prepare() {
19 chmod +x "PopSQL-${pkgver}.AppImage"
20 ./PopSQL-${pkgver}.AppImage --appimage-extract >/dev/null 2>&1
21}
22
23package() {
24 # Install AppImage
25 install -Dm755 "${srcdir}/PopSQL-${pkgver}.AppImage" \
26 "${pkgdir}/opt/${pkgname}/PopSQL.AppImage"
27
28 # Wrapper script
29 install -Dm755 /dev/stdin "${pkgdir}/usr/bin/${pkgname}" << 'EOF'
30#!/bin/bash
31exec /opt/popsql/PopSQL.AppImage "$@"
32EOF
33
34 # Install desktop file
35 if [[ -f "${srcdir}/squashfs-root/@popsqldesktop.desktop" ]]; then
36 install -Dm644 "${srcdir}/squashfs-root/@popsqldesktop.desktop" \
37 "${pkgdir}/usr/share/applications/popsql.desktop"
38
39 sed -i 's|Exec=AppRun.*|Exec=/usr/bin/popsql %U|g' \
40 "${pkgdir}/usr/share/applications/popsql.desktop"
41 sed -i 's|Icon=.*|Icon=popsql|g' \
42 "${pkgdir}/usr/share/applications/popsql.desktop"
43 fi
44
45 # FIXED: Correct icon installation with proper path parsing
46 if [[ -d "${srcdir}/squashfs-root/usr/share/icons/hicolor" ]]; then
47 find "${srcdir}/squashfs-root/usr/share/icons/hicolor" -name "@popsqldesktop.png" | while read icon; do
48 # Get the full path relative to hicolor directory
49 relative_path="${icon#${srcdir}/squashfs-root/usr/share/icons/hicolor/}"
50
51 # Replace the @popsqldesktop filename with popsql.png
52 target_path="${relative_path//@popsqldesktop.png/popsql.png}"
53
54 # Install to correct location
55 install -Dm644 "$icon" "${pkgdir}/usr/share/icons/hicolor/${target_path}"
56 done
57 fi
58
59 # Install licenses
60 if [[ -f "${srcdir}/squashfs-root/LICENSE.electron.txt" ]]; then
61 install -Dm644 "${srcdir}/squashfs-root/LICENSE.electron.txt" \
62 "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.electron.txt"
63 fi
64
65 install -Dm644 /dev/stdin "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" << EOF
66PopSQL - Proprietary Software
67Copyright © PopSQL, Inc. All rights reserved.
68This software is proprietary and subject to the terms at: https://popsql.com/terms
69EOF
70}
71

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

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

0 / 4000
Your suggestion