eusoft-eudic-bin

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

The package downloads a prebuilt AppImage from the official vendor's static domain, which is plausible for the project; the AppImage is extracted and repackaged locally, but this is standard for AppImage packaging and poses no additional risk.

Triggered rules

Low AI review downgraded a static finding llm_review

The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a prebuilt AppImage from the official vendor's static domain, which is plausible for the project; the AppImage is extracted and repackaged locally, but this is standard for AppImage packaging and poses no additional risk.

1 higher static finding superseded - not the current verdict (shown for transparency)
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:34 "${pkgname%-bin}-${pkgver}-x86_64.AppImage::https://static.eudic.net/pkg/${_pkgname}.AppImage"

PKGBUILD

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

Changes since previous scan

--- PKGBUILD @ 2026-10-30 00:29
+++ PKGBUILD @ 2026-11-01 00:21
@@ -2,93 +2,54 @@
_pkgname=eudic
pkgname="eusoft-${_pkgname}-bin"
pkgver=26.9.1
-pkgrel=1
-pkgdesc="Authoritative English dictionary software, an essential tool for English learners.(Prebuilt version)权威的英语词典软件,英语学习者必备的工具."
+pkgrel=2
+pkgdesc="Authoritative English dictionary software, an essential tool for English learners.权威的英语词典软件,英语学习者必备的工具."
arch=('x86_64')
url="https://www.eudic.net/v4/en/app/eudic"
license=('LicenseRef-custom')
provides=("${_pkgname}=${pkgver}")
conflicts=("${pkgname%-bin}" "${_pkgname}")
depends=(
- 'qt5-base'
- 'qt5-multimedia'
- 'qt5-webengine'
- 'qt5-svg'
- 'qt5-serialport'
- 'qt5-speech'
- 'qt5-websockets'
- 'qt5-webchannel'
'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'
- 'libpulse'
- 'libdbus'
- 'libxkbcommon'
- 'curl'
- 'icu'
- 'libxml2'
+ 'gdk-pixbuf2'
+ 'pipewire-jack'
+ 'libusb'
+ 'fribidi'
+ 'pango'
)
options=(
'!strip'
'!emptydirs'
)
source=(
- "${pkgname%-bin}-${pkgver}-x86_64.AppImage::https://static.eudic.net/pkg/${_pkgname}.AppImage?v=${pkgver}"
+ "${pkgname%-bin}-${pkgver}-x86_64.AppImage::https://static.eudic.net/pkg/${_pkgname}.AppImage"
"LICENSE.html"
"${pkgname%-bin}.sh"
)
sha256sums=('7839456abede4b8a47cacf2d3fcf24ce25c4296e305f9618920bd83cc21c83a6'
'89862f4074e530896863738bf9d49c03c8d0cd0f6a543d4ccc1cdc53e8f83a24'
- 'f8da4fa48422d34fd5e2f8e1e87c9f52b66a7308a88855c39ae03599209dcbaf')
+ '201a36e0ee0aa94382edf92857d19862c819bb0878f367cdbbf23f2785223031')
pkgver() {
- cd "${srcdir}/squashfs-root"
- grep "X-AppImage-Version" default.desktop | sed "s/X-AppImage-Version=//g"
+ 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"
- if [ ! -x "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage" ];then
- chmod +x "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage"
- fi
- if [ -d "${srcdir}/squashfs-root" ];then
- rm -rf "${srcdir}/squashfs-root"
- fi
+ chmod +x "${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage"
+ rm -rf "${srcdir}/squashfs-root"
"${srcdir}/${pkgname%-bin}-${pkgver}-${CARCH}.AppImage" --appimage-extract > /dev/null
- # Remove bundled libraries - use system components instead
- _libdir="${srcdir}/squashfs-root/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\).*\.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\).*\.so.*" -delete
+ grep "X-AppImage-Version" "${srcdir}/squashfs-root/default.desktop" | sed "s/X-AppImage-Version=//g" > "${srcdir}/.pkgver"
sed -i -e "
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

Scan history

Scanned at (UTC)SeverityRules
2026-11-01 00:21:48 Low 2
2026-10-31 00:07:41 Low 2
2026-10-30 11:55:28 Medium 1
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