eusoft-frhelper-bin

MEDIUM
maintainer zxp19821005 0 votes scanned 2026-11-01 00:21:48.120785
View on AUR
Why flagged

The package downloads a prebuilt AppImage executable from a non-whitelisted host (static.eudic.net), which is not a standard code or package host, creating a supply-chain risk if the host were compromised or maliciously redirected.

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:31 "${pkgname%-bin}-${pkgver}-x86_64.AppImage::https://static.eudic.net/pkg/${_pkgname}.AppImage"
Medium AI review llm_review

An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 90%): The package downloads a prebuilt AppImage executable from a non-whitelisted host (static.eudic.net), which is not a standard code or package host, creating a supply-chain risk if the host were compromised or maliciously redirected.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2_pkgname=frhelper
3pkgname="eusoft-${_pkgname}-bin"
4pkgver=13.5.2
5pkgrel=1
6pkgdesc="Authoritative French dictionary software, an essential tool for French learners.法语助手,权威的法语词典软件,法语学习者必备的工具."
7arch=('x86_64')
8url="https://www.eudic.net/v4/fr/app/frhelper"
9license=('LicenseRef-custom')
10conflicts=(
11 "${pkgname%-bin}"
12 "${_pkgname}"
13)
14depends=(
15 'nss'
16 'alsa-lib'
17 'libdrm'
18 'mesa'
19 'harfbuzz'
20 'fontconfig'
21 'libx11'
22 'libxcb'
23 'zlib'
24 'pipewire-jack'
25)
26options=(
27 '!strip'
28 '!emptydirs'
29)
30source=(
31 "${pkgname%-bin}-${pkgver}-x86_64.AppImage::https://static.eudic.net/pkg/${_pkgname}.AppImage"
32 "LICENSE.html"
33 "${pkgname%-bin}.sh"
34)
35sha256sums=('54b3547355e4f80aa3e5eddd41437415137d2c2a09feda0944c39c47921af09c'
36 'c12c477048571d64eb8651ec470bfc1b3b738b591cfce0322eeadbe921a86917'
37 '201a36e0ee0aa94382edf92857d19862c819bb0878f367cdbbf23f2785223031')
38pkgver() {
39 cat "${srcdir}/.pkgver" 2>/dev/null || echo "${pkgver}"
40}
41prepare() {
42 sed -i -e "
43 s/@appname@/${pkgname%-bin}/g
44 s/@runname@/${_pkgname}/g
45 " "${srcdir}/${pkgname%-bin}.sh"
46 chmod +x "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage"
47 rm -rf "${srcdir}/squashfs-root"
48 "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage" --appimage-extract > /dev/null
49 grep "X-AppImage-Version" "${srcdir}/squashfs-root/default.desktop" | sed "s/X-AppImage-Version=//g" > "${srcdir}/.pkgver"
50 sed -i -e "
51 s/\/usr\/share\/${_pkgname}\/AppRun/env QT_AUTO_SCREEN_SCALE_FACTOR=1 QT_IM_MODULE=fcitx QT_QPA_PLATFORM=\"xcb\" ${pkgname%-bin}/g
52 s/Icon=com.eusoft.${_pkgname}/Icon=${pkgname%-bin}/g
53 " "${srcdir}/squashfs-root/default.desktop"
54 ln -sf "/usr/lib/qt/plugins/platforminputcontexts/libfcitx"*.so "${srcdir}/squashfs-root/plugins/platforminputcontexts/"
55}
56package() {
57 install -Dm755 "${srcdir}/${pkgname%-bin}.sh" "${pkgdir}/usr/bin/${pkgname%-bin}"
58 install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-bin}"
59 cp -a "${srcdir}/squashfs-root/." "${pkgdir}/usr/lib/${pkgname%-bin}"
60 install -Dm644 "${srcdir}/squashfs-root/default.desktop" "${pkgdir}/usr/share/applications/${pkgname%-bin}.desktop"
61 install -Dm644 "${srcdir}/squashfs-root/com.eusoft.${_pkgname}.png" "${pkgdir}/usr/share/pixmaps/${pkgname%-bin}.png"
62 install -Dm644 "${srcdir}/LICENSE.html" -t "${pkgdir}/usr/share/licenses/${pkgname}"
63}
64

Changes since previous scan

--- PKGBUILD @ 2026-10-30 00:29
+++ PKGBUILD @ 2026-11-01 00:21
@@ -1,7 +1,7 @@
# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
_pkgname=frhelper
pkgname="eusoft-${_pkgname}-bin"
-pkgver=26.9.0
+pkgver=13.5.2
pkgrel=1
pkgdesc="Authoritative French dictionary software, an essential tool for French learners.法语助手,权威的法语词典软件,法语学习者必备的工具."
arch=('x86_64')
@@ -12,125 +12,53 @@
"${_pkgname}"
)
depends=(
- 'qt5-base'
- 'qt5-multimedia'
- 'qt5-webengine'
- 'qt5-svg'
- 'qt5-serialport'
- 'qt5-speech'
- 'qt5-webchannel'
- 'qt5-location'
- 'gtk3'
'nss'
'alsa-lib'
'libdrm'
'mesa'
'harfbuzz'
- 'libthai'
'fontconfig'
'libx11'
'libxcb'
- 'libxext'
- 'libxrender'
- 'libxfixes'
- 'libxcursor'
- 'libxi'
- 'libxrandr'
- 'libxss'
- 'libxtst'
- 'libxau'
- 'libxdmcp'
- 'glib2'
'zlib'
- 'bzip2'
- 'libpng'
- 'libjpeg-turbo'
- 'freetype2'
- 'libglvnd'
- 'wayland'
- 'libpulse'
- 'libdbus'
- 'libxkbcommon'
- 'curl'
- 'icu'
- 'libxml2'
- 'gstreamer'
- 'gst-plugins-base-libs'
- 'gst-plugins-bad-libs'
- 'gst-plugins-good'
- 'gst-libav'
- 'libgudev'
- 'libogg'
- 'libvorbis'
- 'speex'
- 'lame'
- 'libtheora'
- 'opus'
- 'wavpack'
- 'twolame'
- 'mpg123'
- 'libshout'
- 'libcaca'
- 'aalib'
- 'libdv'
- 'v4l-utils'
- 'libiec61883'
- 'libavc1394'
- 'libraw1394'
- 'graphene'
- 'libsoup'
- 'taglib'
- 'sqlite'
- 'libxv'
'pipewire-jack'
- 'libgpg-error'
- 'cdparanoia'
- 'orc'
- 'libp11-kit'
- 'gmp'
)
options=(
'!strip'
'!emptydirs'
)
source=(
- "${pkgname%-bin}-${pkgver}.deb::https://static.frdic.com/pkg/${_pkgname}.deb?v=${pkgver}"
+ "${pkgname%-bin}-${pkgver}-x86_64.AppImage::https://static.eudic.net/pkg/${_pkgname}.AppImage"
"LICENSE.html"
"${pkgname%-bin}.sh"
)
-sha256sums=('ce5fcba8f0a2ffd0bff6b62e63f658883e795577caca130698de799a8647530c'
+sha256sums=('54b3547355e4f80aa3e5eddd41437415137d2c2a09feda0944c39c47921af09c'
'c12c477048571d64eb8651ec470bfc1b3b738b591cfce0322eeadbe921a86917'
- '07aefce5b6c9dce4fec424cfb3d1c2456680d6936e62651484253a031c921db9')
+ '201a36e0ee0aa94382edf92857d19862c819bb0878f367cdbbf23f2785223031')
+pkgver() {
+ cat "${srcdir}/.pkgver" 2>/dev/null || echo "${pkgver}"
+}
prepare() {
sed -i -e "
s/@appname@/${pkgname%-bin}/g
s/@runname@/${_pkgname}/g
" "${srcdir}/${pkgname%-bin}.sh"
- bsdtar -xf "${srcdir}/data."*
- # Remove bundled libraries - use system components instead
- _libdir="${srcdir}/usr/share/${pkgname%-bin}/lib"
- find "${_libdir}" -maxdepth 1 -name "libQt5*.so*" -delete
- find "${_libdir}" -maxdepth 1 -regex ".*/lib\(X11\|Xau\|Xdmcp\|Xext\|Xrender\|Xfixes\|Xcursor\|Xi\|Xrandr\|Xss\|Xtst\|xcb\).*\.so.*" -delete
- find "${_libdir}" -maxdepth 1 -regex ".*/lib\(GL\|EGL\|drm\|gbm\|wayland\).*\.so.*" -delete
- find "${_libdir}" -maxdepth 1 -regex ".*/lib\(asound\|pulse\).*\.so.*" -delete
- find "${_libdir}" -maxdepth 1 -regex ".*/lib\(ssl\|crypto\|nss3\|nssutil3\|smime3\|nspr4\|plds4\|plc4\).*\.so.*" -delete
- find "${_libdir}" -maxdepth 1 -regex ".*/lib\(z\|bz2\|lz4\|lzma\).*\.so.*" -delete
- find "${_libdir}" -maxdepth 1 -regex ".*/lib\(fontconfig\|freetype\|harfbuzz\|thai\|datrie\|xkbcommon\).*\.so.*" -delete
- find "${_libdir}" -maxdepth 1 -regex ".*/lib\(glib-2.0\|dbus-1\|icu\|xml2\|curl\|stdc\+\+\|gcc_s\|gmodule\|gobject\|gio\|gthread\).*\.so.*" -delete
- find "${_libdir}" -maxdepth 1 -regex ".*/lib\(gtk-3\|gdk-3\|cairo\|pango\|pangocairo\|pangoft2\|atk\|atspi\|gdk-pixbuf\|epoxy\|pixman\).*\.so.*" -delete
- find "${_libdir}" -maxdepth 1 -regex ".*/lib\(gstreamer\|gst.*\).*\.so.*" -delete
- find "${_libdir}" -maxdepth 1 -regex ".*/lib\(png\|jpeg\|tiff\|webp\|flac\|ogg\|vorbis\|opus\|speex\|theora\|mpg123\|lame\|twolame\|wavpack\|tag\|sqlite\|systemd\|udev\|gudev\|blkid\|mount\|selinux\|pcre\|ffi\|keyutils\|krb5\).*\.so.*" -delete
+ chmod +x "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage"
+ rm -rf "${srcdir}/squashfs-root"
+ "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage" --appimage-extract > /dev/null
+ grep "X-AppImage-Version" "${srcdir}/squashfs-root/default.desktop" | sed "s/X-AppImage-Version=//g" > "${srcdir}/.pkgver"
sed -i -e "
- s/\/usr\/share\/${pkgname%-bin}\/AppRun/${pkgname%-bin}/g
- s/com.eusoft.${_pkgname}/${pkgname%-bin}/g
- " "${srcdir}/usr/share/applications/${pkgname%-bin}.desktop"
+ s/\/usr\/share\/${_pkgname}\/AppRun/env QT_AUTO_SCREEN_SCALE_FACTOR=1 QT_IM_MODULE=fcitx QT_QPA_PLATFORM=\"xcb\" ${pkgname%-bin}/g
+ s/Icon=com.eusoft.${_pkgname}/Icon=${pkgname%-bin}/g
+ " "${srcdir}/squashfs-root/default.desktop"
+ ln -sf "/usr/lib/qt/plugins/platforminputcontexts/libfcitx"*.so "${srcdir}/squashfs-root/plugins/platforminputcontexts/"
}
package() {
install -Dm755 "${srcdir}/${pkgname%-bin}.sh" "${pkgdir}/usr/bin/${pkgname%-bin}"
- install -Dm755 -d "${pkgdir}/usr/lib"
- cp -a "${srcdir}/usr/share/${pkgname%-bin}" "${pkgdir}/usr/lib"
- install -Dm644 "${srcdir}/usr/share/applications/${pkgname%-bin}.desktop" -t "${pkgdir}/usr/share/applications"
- install -Dm644 "${srcdir}/usr/share/pixmaps/com.eusoft.${_pkgname}.png" "${pkgdir}/usr/share/pixmaps/${pkgname%-bin}.png"
+ install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-bin}"
+ cp -a "${srcdir}/squashfs-root/." "${pkgdir}/usr/lib/${pkgname%-bin}"
+ install -Dm644 "${srcdir}/squashfs-root/default.desktop" "${pkgdir}/usr/share/applications/${pkgname%-bin}.desktop"
+ install -Dm644 "${srcdir}/squashfs-root/com.eusoft.${_pkgname}.png" "${pkgdir}/usr/share/pixmaps/${pkgname%-bin}.png"
install -Dm644 "${srcdir}/LICENSE.html" -t "${pkgdir}/usr/share/licenses/${pkgname}"
}

Scan history

Scanned at (UTC)SeverityRules
2026-11-01 00:21:48 Medium 2
2026-10-31 00:07:41 Medium 2
2026-10-30 11:55:28 Medium 2
2026-10-30 00:29:30 Medium 2
2026-10-29 00:13:55 Medium 2
2026-10-28 00:06:54 Medium 2
2026-10-27 00:23:28 Medium 2
2026-10-26 00:12:40 Medium 2
2026-10-25 00:20:48 Medium 2
2026-10-24 00:14:55 Medium 2
2026-10-23 00:02:19 Medium 2
2026-10-22 00:13:10 Medium 2
2026-10-21 00:12:50 Medium 2
2026-10-20 00:10:31 Medium 2
2026-10-19 00:03:55 Medium 2
2026-10-18 00:06:55 Medium 2
2026-10-17 00:21:55 Medium 2
2026-10-16 00:12:47 Medium 2
2026-10-15 00:28:05 Medium 2
2026-10-14 00:06:47 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