lrdp-bin

LOW
maintainer lucinhu 0 votes scanned 2026-10-23 15:37:50.087015
View on AUR
Why flagged

The package installs a prebuilt AppImage from the project's official GitHub release, which is extracted and run without compilation; the source is trustworthy and the actions are transparent, but the low votes and recent upload are minor concerns.

Triggered rules

Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

Low AI review llm_review

An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is LOW (confidence 95%): The package installs a prebuilt AppImage from the project's official GitHub release, which is extracted and run without compilation; the source is trustworthy and the actions are transparent, but the low votes and recent upload are minor concerns.

PKGBUILD

1# Maintainer: lucinhu <lucinhu@users.noreply.github.com>
2# Contributor: LRDP release tooling
3#
4# lrdp-bin packages the prebuilt Linux x64 AppImage published on the LRDP
5# GitHub release. The AppImage is extracted at build time (--appimage-extract,
6# no FUSE needed) and installed as an AppDir under /opt/lrdp; /usr/bin/lrdp is
7# a thin wrapper around the bundled AppRun. Nothing is compiled here, so
8# strip/debug are disabled: the shipped ELF objects are the upstream binaries.
9pkgname=lrdp-bin
10pkgver=0.2.0
11pkgrel=1
12pkgdesc='LRDP remote desktop client built with Flutter and FreeRDP (prebuilt Linux x64 AppImage)'
13arch=('x86_64')
14url='https://github.com/lucinhu/LRDP'
15license=('Apache-2.0')
16provides=('lrdp')
17conflicts=('lrdp')
18# Dependencies are the non-bundled system libraries used by the AppImage:
19# ldd of the extracted usr/bin/lrdp (transitive closure) mapped to Arch
20# packages with pacman -Qo. GTK3, GLib, Pango, Cairo, OpenSSL 3, libsecret,
21# libpulse, FreeRDP/FFI/Flutter libraries and language data are bundled inside
22# the AppImage and therefore are not listed. glibc/gcc-libs are part of the
23# base meta package and are not repeated here.
24depends=(
25 'brotli'
26 'expat'
27 'fontconfig'
28 'freetype2'
29 'fribidi'
30 'graphite'
31 'harfbuzz'
32 'libgpg-error'
33 'libx11'
34 'libxau'
35 'libxcb'
36 'libxdmcp'
37 'wayland'
38 'zlib'
39 # The bundled libepoxy/libgdk load the GL entry points with dlopen(3), which
40 # ldd cannot see; Flutter's OpenGL renderer requires libEGL/libGL.
41 'libglvnd'
42)
43optdepends=('mesa: OpenGL 渲染驱动(Intel/AMD 显卡或软件渲染)')
44options=('!strip' '!debug')
45
46_tag='v0.2.0-preview.1'
47_appimage="lrdp-${pkgver}-linux-x64.AppImage"
48_branding_url="https://raw.githubusercontent.com/lucinhu/LRDP/${_tag}/assets/branding"
49
50source=(
51 "${url}/releases/download/${_tag}/${_appimage}"
52 "${_branding_url}/lrdp-36.png"
53 "${_branding_url}/lrdp-64.png"
54 "${_branding_url}/lrdp-128.png"
55 "${_branding_url}/lrdp-512.png"
56 "${_branding_url}/lrdp.svg"
57)
58sha256sums=(
59 'e616045bc4081cc34a0e4876fc4ecfa80d397079dd8da430d39880a2a8c98350'
60 '5617da4b294101e0e55805a4489172581a4d4cdf595a810010437749b1e057b1'
61 '4396d238ffa92035f63afbd80cccc3d0bc8fad7d725aa3be7a9d496cf8cc0e6c'
62 '18c443db3143b9dff0ccc272d42e337e8d07d1cd465d36ac1a9fed1337fd5621'
63 'c6c36076a44bcbcad0f29819a14e3f9f965b53caed9f99f3ab94d92fc9e539b8'
64 '804851b5f2d9768997324533d0385513c1ca1674eb12a188101bd44a6e3060a2'
65)
66
67build() {
68 cd "${srcdir}"
69 rm -rf squashfs-root
70 chmod +x "${_appimage}"
71 # AppImage type 2 runtime: extract without mounting/FUSE.
72 "./${_appimage}" --appimage-extract > /dev/null
73 if [[ ! -x squashfs-root/AppRun || ! -x squashfs-root/usr/bin/lrdp ]]; then
74 echo 'error: AppImage extraction did not produce AppRun/usr/bin/lrdp' >&2
75 return 1
76 fi
77}
78
79package() {
80 cd "${srcdir}"
81
82 # Keep the AppImage's internal layout (AppRun, AppRun.gtk, apprun-hooks,
83 # usr/bin, usr/lib, usr/share) so that the patched RUNPATH
84 # ($ORIGIN/../lib for the entry point, $ORIGIN for bundled libraries) and
85 # the APPDIR environment used by AppRun keep working.
86 install -dm755 "${pkgdir}/opt/lrdp"
87 cp -a squashfs-root/. "${pkgdir}/opt/lrdp/"
88 # The AppImage stores directories with mode 0700; a system-wide /opt/lrdp
89 # must be readable by every user.
90 chmod -R a+rX "${pkgdir}/opt/lrdp"
91
92 # Launcher: re-use AppRun so APPDIR/OPENSSL_MODULES and the linuxdeploy GTK
93 # hook (GTK_DATA_PREFIX, GDK_BACKEND, module caches, ...) are applied exactly
94 # as in the upstream AppImage, without needing FUSE at runtime.
95 install -dm755 "${pkgdir}/usr/bin"
96 cat > "${pkgdir}/usr/bin/lrdp" <<'EOF'
97#!/bin/sh
98# lrdp-bin: run the AppDir extracted from the upstream AppImage (no FUSE).
99exec /opt/lrdp/AppRun "$@"
100EOF
101 chmod 755 "${pkgdir}/usr/bin/lrdp"
102
103 # Desktop entry and hicolor icons. The AppImage only ships a 256x256 icon;
104 # the remaining sizes come from the branding assets at the release tag.
105 install -Dm644 squashfs-root/usr/share/applications/dev.lrdp.lrdp.desktop \
106 "${pkgdir}/usr/share/applications/dev.lrdp.lrdp.desktop"
107 install -Dm644 squashfs-root/usr/share/icons/hicolor/256x256/apps/dev.lrdp.lrdp.png \
108 "${pkgdir}/usr/share/icons/hicolor/256x256/apps/dev.lrdp.lrdp.png"
109 for _size in 36 64 128 512; do
110 install -Dm644 "${srcdir}/lrdp-${_size}.png" \
111 "${pkgdir}/usr/share/icons/hicolor/${_size}x${_size}/apps/dev.lrdp.lrdp.png"
112 done
113 install -Dm644 "${srcdir}/lrdp.svg" \
114 "${pkgdir}/usr/share/icons/hicolor/scalable/apps/dev.lrdp.lrdp.svg"
115
116 # Upstream license (Apache-2.0) and NOTICE, taken from inside the AppImage.
117 install -Dm644 squashfs-root/usr/share/doc/lrdp/LICENSE \
118 "${pkgdir}/usr/share/licenses/lrdp-bin/LICENSE"
119 install -Dm644 squashfs-root/usr/share/doc/lrdp/NOTICE \
120 "${pkgdir}/usr/share/licenses/lrdp-bin/NOTICE"
121
122 # User documentation shipped with the AppImage.
123 install -dm755 "${pkgdir}/usr/share/doc/lrdp-bin"
124 install -m644 squashfs-root/usr/share/doc/lrdp/docs/*.md \
125 "${pkgdir}/usr/share/doc/lrdp-bin/"
126}
127

Scan history

Scanned at (UTC)SeverityRules
2026-10-23 15:37:50 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