gdlauncher-bin

maintainer inetol · 17 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD downloads a prebuilt AppImage binary from cdn-raw.gdl.gg, which is GDLauncher's own CDN (gorilla-devs/GDLauncher-Carbon project). This is the official distribution channel for GDLauncher releases, not a random personal host. However, it is not a well-known, independently verifiable host like GitHub releases, and the CDN could theoretically serve different content without a source-code audit trail. The b2sums are pinned, which mitigates silent substitution risk significantly. The binary is executed (AppImage extraction), and the extracted native binary 'resources/binaries/core_module' is installed and made executable. This is a standard -bin AUR pattern for an AppImage, and the checksums provide integrity verification. The risk is real but typical for any -bin AUR package: trust in the upstream CDN and the maintainer's checksum updates. This is a borderline clean/medium case — the CDN appears to be the official GDLauncher distribution endpoint, pinned checksums are present, and the pattern is standard for AppImage packaging. Downgrading to low rather than medium because the host is the project's own CDN (not a personal/unofficial host) and integrity is verified via b2sums.

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:15 source=("$pkgname-$pkgver.AppImage::https://cdn-raw.gdl.gg/launcher/GDLauncher__${pkgver}__linux__x64.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 AppImage binary from cdn-raw.gdl.gg, which is GDLauncher's own CDN (gorilla-devs/GDLauncher-Carbon project). This is the official distribution channel for GDLauncher releases, not a random personal host. However, it is not a well-known, independently verifiable host like GitHub releases, and the CDN could theoretically serve different content without a source-code audit trail. The b2sums are pinned, which mitigates silent substitution risk significantly. The binary is executed (AppImage extraction), and the extracted native binary 'resources/binaries/core_module' is installed and made executable. This is a standard -bin AUR pattern for an AppImage, and the checksums provide integrity verification. The risk is real but typical for any -bin AUR package: trust in the upstream CDN and the maintainer's checksum updates. This is a borderline clean/medium case — the CDN appears to be the official GDLauncher distribution endpoint, pinned checksums are present, and the pattern is standard for AppImage packaging. Downgrading to low rather than medium because the host is the project's own CDN (not a personal/unofficial host) and integrity is verified via b2sums.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Ivan Gabaldon <aur[at]inetol.net>
2# Contributor: S Stewart <tda@null.net>
3# Contributor: Cranky Supertoon <crankysupertoon@gmail.com>
4
5pkgname=gdlauncher-bin
6pkgver=2.0.24
7pkgrel=1
8pkgdesc='A simple, yet powerful Minecraft custom launcher with a strong focus on the user experience (binary release)'
9arch=('x86_64')
10url=https://gdlauncher.com
11license=('BUSL-1.1')
12_electron=electron36
13provides=("${pkgname//-bin}")
14conflicts=("${pkgname//-bin}")
15source=("$pkgname-$pkgver.AppImage::https://cdn-raw.gdl.gg/launcher/GDLauncher__${pkgver}__linux__x64.AppImage"
16 "${pkgname//-bin}.sh"
17 "LICENSE::https://raw.githubusercontent.com/gorilla-devs/GDLauncher-Carbon/develop/LICENSE")
18b2sums=('64bafa308044ef6e3c92710bc0ae5edc3ac99a77be8bdbae88619095b25fda77d9bb4ac305f7e434ba52c60ca54e7c35201c0668fe6dcf5ec7b7743fcf41daf6'
19 '98f4cb1253a1c8b076042bec96ccde6253107491790d79eca04b667358b79b4bf34f698fb7e9790e1924c52cbe317783269700e1268d3039803adcdf2ee2f5bd'
20 '93aed8a6736b73bc8ce08847d9dc895c0e14310125811ea43fbfe9977faa186c4d8f8ffcf88a2a17ab8ae34ab82e1ffbe84e1c590456d4bef46e552b5f80cee7')
21
22prepare() {
23 sed -i "s|@ELECTRON@|$_electron|" "${pkgname//-bin}.sh"
24
25 chmod +x "$pkgname-$pkgver.AppImage"
26 "./$pkgname-$pkgver.AppImage" --appimage-extract
27
28 # Convert
29 cd squashfs-root/
30
31 mkdir -p resources/resources/
32 cp -rlf resources/{binaries/,app.asar} resources/resources/
33 rm -rf resources/{binaries/,app.asar,app-update.yml}
34
35 cat ../LICENSE > resources/LICENSE
36
37 cat "../${pkgname//-bin}.sh" > "resources/${pkgname//-bin}"
38
39 mv "@gddesktop.desktop" "resources/${pkgname//-bin}.desktop"
40 sed -i -e "s|Exec=.*|Exec=/usr/bin/${pkgname//-bin} %U|" -e "s|Icon=.*|Icon=${pkgname//-bin}|" -e '/X-AppImage-Version=.*/d' "resources/${pkgname//-bin}.desktop"
41
42 mv usr/share/icons/hicolor/0x0/apps/@gddesktop.png "resources/${pkgname//-bin}.png"
43
44 find . -type d -exec chmod 755 {} \;
45 find . -type f -exec chmod 644 {} \;
46 chmod 755 resources/resources/{binaries/core_module,app.asar}
47}
48
49package() {
50 depends=("$_electron"
51 'gcc-libs'
52 'glibc'
53 'libxcb')
54
55 optdepends=('libappindicator-gtk3: Systray indicator support')
56
57 install -d "$pkgdir/opt/${pkgname//-bin}/"
58 cp -a squashfs-root/resources/. "$pkgdir/opt/${pkgname//-bin}/"
59
60 chmod 755 "$pkgdir/opt/${pkgname//-bin}/${pkgname//-bin}"
61
62 install -d "$pkgdir/usr/bin/"
63 ln -s "/opt/${pkgname//-bin}/${pkgname//-bin}" "$pkgdir/usr/bin/${pkgname//-bin}"
64
65 install -d "$pkgdir/usr/share/applications/"
66 ln -s "/opt/${pkgname//-bin}/${pkgname//-bin}.desktop" "$pkgdir/usr/share/applications/${pkgname//-bin}.desktop"
67
68 install -d "$pkgdir/usr/share/icons/"
69 ln -s "/opt/${pkgname//-bin}/${pkgname//-bin}.png" "$pkgdir/usr/share/icons/${pkgname//-bin}.png"
70
71 install -d "$pkgdir/usr/share/licenses/${pkgname//-bin}/"
72 ln -s "/opt/${pkgname//-bin}/LICENSE" "$pkgdir/usr/share/licenses/${pkgname//-bin}/LICENSE"
73}
74

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