ddper

maintainer solidstrong · 0 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The package downloads a prebuilt executable tarball from a non-standard, non-whitelisted host (ddper.ir) which is not a common upstream or forge domain, and the archive is used as-is without rebuilding from source, creating a supply-chain risk if the host is 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:17 source=("https://ddper.ir/client/linux/DDPER-${pkgver}-linux_${_arch}.tar.xz")
MEDIUM AI review llm_review

An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package downloads a prebuilt executable tarball from a non-standard, non-whitelisted host (ddper.ir) which is not a common upstream or forge domain, and the archive is used as-is without rebuilding from source, creating a supply-chain risk if the host is compromised.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: solidstrong <latifishal@gmail.com>
2
3pkgname=ddper
4pkgver=9.1
5pkgrel=1
6pkgdesc="DDPER (unofficial DDNet client)"
7arch=('x86_64')
8url="https://ddper.ir"
9options=('!debug')
10license=('custom:Proprietary')
11depends=('freetype2' 'opusfile' 'curl' 'glew' 'wavpack' 'ffmpeg' 'libnotify' 'miniupnpc' 'sqlite' 'mariadb-libs' 'vulkan-icd-loader')
12optdepends=('discord-game-sdk: Enable rich presence in Discord desktop client.')
13provides=('ddper')
14
15_arch="x86_64"
16
17source=("https://ddper.ir/client/linux/DDPER-${pkgver}-linux_${_arch}.tar.xz")
18sha256sums=('7228b5ec923c43273b613e72f3f7d0e59430e8a3a2751e8a7825628f490f2c46')
19
20prepare() {
21 mkdir -p "$srcdir/tmp"
22
23 tar -xf "DDPER-${pkgver}-linux_${_arch}.tar.xz" \
24 -C "$srcdir/tmp" \
25 --strip-components=1
26}
27
28build() {
29 :
30}
31
32package() {
33 install -d "$pkgdir/opt/$pkgname"
34 install -d "$pkgdir/usr/bin"
35 install -d "$pkgdir/usr/share/applications"
36 install -d "$pkgdir/usr/share/icons/hicolor/48x48/apps"
37 install -d "$pkgdir/usr/share/licenses/$pkgname"
38
39 cp -a "$srcdir/tmp/." "$pkgdir/opt/$pkgname"
40
41 # Wrapper to ensure correct working directory
42 cat << 'EOF' > "$pkgdir/usr/bin/ddper"
43#!/bin/bash
44exec /opt/ddper/DDPER "$@"
45EOF
46 chmod +x "$pkgdir/usr/bin/ddper"
47
48 # Application icon
49 install -Dm644 "$srcdir/tmp/data/gui_logo.png" \
50 "$pkgdir/usr/share/icons/hicolor/48x48/apps/ddper.png"
51
52 # License
53 if [[ -f "$srcdir/tmp/LICENSE" ]]; then
54 install -Dm644 "$srcdir/tmp/LICENSE" \
55 "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
56 fi
57
58 # Desktop entry
59 cat << EOF > "$pkgdir/usr/share/applications/ddper.desktop"
60[Desktop Entry]
61Type=Application
62Name=DDPER
63StartupWMClass=DDPER
64GenericName=Platform Game
65Exec=/usr/bin/ddper %u
66Icon=ddper
67Terminal=false
68Keywords=game;multiplayer;
69Categories=Game;ArcadeGame;
70MimeType=x-scheme-handler/ddper;
71Comment=Launch DDPER
72EOF
73}

Changes since previous scan

--- PKGBUILD @ 2026-07-31 00:14
+++ PKGBUILD @ 2026-08-03 00:08
@@ -1,23 +1,32 @@
# Maintainer: solidstrong <latifishal@gmail.com>
pkgname=ddper
-pkgver=8.4
+pkgver=9.1
pkgrel=1
pkgdesc="DDPER (unofficial DDNet client)"
arch=('x86_64')
url="https://ddper.ir"
+options=('!debug')
license=('custom:Proprietary')
depends=('freetype2' 'opusfile' 'curl' 'glew' 'wavpack' 'ffmpeg' 'libnotify' 'miniupnpc' 'sqlite' 'mariadb-libs' 'vulkan-icd-loader')
optdepends=('discord-game-sdk: Enable rich presence in Discord desktop client.')
provides=('ddper')
+
_arch="x86_64"
-source=("https://ddper.ir/client/linux/ddper-v${pkgver}-linux_${_arch}.tar.xz"
- "https://ddper.ir/image/icon.png")
-sha256sums=('2f62ffd210aea3eb2f4015d7a59da35b3ecc1bf861a1df9aed7b7a1e70a8dac0'
- '6649746c0783e4187422125358126dc65f252330104143fa515ece61ed6aba8a')
+
+source=("https://ddper.ir/client/linux/DDPER-${pkgver}-linux_${_arch}.tar.xz")
+sha256sums=('7228b5ec923c43273b613e72f3f7d0e59430e8a3a2751e8a7825628f490f2c46')
+
+prepare() {
+ mkdir -p "$srcdir/tmp"
+
+ tar -xf "DDPER-${pkgver}-linux_${_arch}.tar.xz" \
+ -C "$srcdir/tmp" \
+ --strip-components=1
+}
build() {
- :
+ :
}
package() {
@@ -27,21 +36,26 @@
install -d "$pkgdir/usr/share/icons/hicolor/48x48/apps"
install -d "$pkgdir/usr/share/licenses/$pkgname"
- mkdir -p "$srcdir/tmp"
- tar -xf "ddper-v${pkgver}-linux_${_arch}.tar.xz" -C "$srcdir/tmp" --strip-components=1
cp -a "$srcdir/tmp/." "$pkgdir/opt/$pkgname"
- # Use wrapper instead of symlink to ensure correct working directory
+ # Wrapper to ensure correct working directory
cat << 'EOF' > "$pkgdir/usr/bin/ddper"
#!/bin/bash
exec /opt/ddper/DDPER "$@"
EOF
chmod +x "$pkgdir/usr/bin/ddper"
- install -Dm644 "icon.png" "$pkgdir/usr/share/icons/hicolor/48x48/apps/ddper.png"
+ # Application icon
+ install -Dm644 "$srcdir/tmp/data/gui_logo.png" \
+ "$pkgdir/usr/share/icons/hicolor/48x48/apps/ddper.png"
- [ -f "$srcdir/tmp/LICENSE" ] && install -Dm644 "$srcdir/tmp/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ # License
+ if [[ -f "$srcdir/tmp/LICENSE" ]]; then
+ install -Dm644 "$srcdir/tmp/LICENSE" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ fi
+ # Desktop entry
cat << EOF > "$pkgdir/usr/share/applications/ddper.desktop"
[Desktop Entry]
Type=Application
@@ -57,4 +71,3 @@
Comment=Launch DDPER
EOF
}
-

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 11:17:50 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

Report a package

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

0 / 4000
Your suggestion