wps-office-365-edu-fonts

maintainer Stevezxc · 4 votes · base wps-office-365-edu · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD downloads prebuilt proprietary .deb binaries from edu-download.wpscdn.cn, which is the official WPS CDN domain used by Kingsoft for their Chinese education product (wpscdn.cn is the legitimate CDN for WPS Office in China, analogous to how wps.com is used internationally). SHA-256 checksums are provided for all three architectures. However, this is still a prebuilt closed-source binary from a CDN that is not independently verifiable as an official release channel in the same way a GitHub release or official package repository would be — there is no GPG signature verification, and the CDN could theoretically serve different content. The package also contains an obfuscated sed substitution ('fix xxx Njk0QkYtWVVEQkctRUFSNjktQlBSR0ItQVRRWEgK' with base64-encoded comment and opaque string replacement in oem.ini) which modifies what appears to be a license/activation key field, raising a mild concern about license circumvention, though it could also be a legitimate OEM configuration fix. The binary is executed code from a CDN without GPG verification, which is a genuine medium-level supply-chain concern, but the domain is the legitimate Kingsoft CDN and checksums are present. The oem.ini modification is suspicious but not clearly piracy.

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:19 source_x86_64=("https://edu-download.wpscdn.cn/download/365edu/${pkgver}/wps-office_${pkgver}.AK.preload.sw.withsn.edu_666780_amd64.deb")
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 prebuilt proprietary .deb binaries from edu-download.wpscdn.cn, which is the official WPS CDN domain used by Kingsoft for their Chinese education product (wpscdn.cn is the legitimate CDN for WPS Office in China, analogous to how wps.com is used internationally). SHA-256 checksums are provided for all three architectures. However, this is still a prebuilt closed-source binary from a CDN that is not independently verifiable as an official release channel in the same way a GitHub release or official package repository would be — there is no GPG signature verification, and the CDN could theoretically serve different content. The package also contains an obfuscated sed substitution ('fix xxx Njk0QkYtWVVEQkctRUFSNjktQlBSR0ItQVRRWEgK' with base64-encoded comment and opaque string replacement in oem.ini) which modifies what appears to be a license/activation key field, raising a mild concern about license circumvention, though it could also be a legitimate OEM configuration fix. The binary is executed code from a CDN without GPG verification, which is a genuine medium-level supply-chain concern, but the domain is the legitimate Kingsoft CDN and checksums are present. The oem.ini modification is suspicious but not clearly piracy.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Stevezxc <stevezhou586 at gmail dot com>
2# Maintainer: Jove Yu <yushijun110 [at] gmail.com>
3# Maintainer: Guoxin "7Ji" Pu <pugokushin@gmail.com>
4pkgbase=wps-office-365-edu
5pkgname=('wps-office-365-edu' 'wps-office-365-edu-fonts')
6pkgver=12.1.2.25882
7pkgrel=1
8pkgdesc="WPS Office for education."
9arch=('x86_64' 'aarch64' 'loong64')
10url="https://365.wps.cn/edu/home"
11license=('LicenseRef-WPS-EULA')
12makedepends=(
13 'tar')
14depends=('qt5-base' 'libxkbcommon-x11' 'libpulse' 'freetype2' 'libxrandr' 'gtk3' 'libxext' 'libxv' 'pango' 'libxcomposite' 'libx11' 'nspr' 'sqlite' 'wayland' 'libsm' 'libxdamage' 'sdl2-compat' 'libglvnd' 'xz' 'python' 'systemd-libs' 'libxtst' 'bzip2' 'curl' 'gcc-libs' 'at-spi2-core' 'gperftools' 'dbus' 'libxrender' 'mesa' 'qrencode' 'expat' 'libdrm' 'libcups' 'glib2' 'hicolor-icon-theme' 'libtool' 'libxfixes' 'nss' 'cairo' 'alsa-lib' 'gdk-pixbuf2' 'libxkbcommon' 'libusb' 'zlib' 'fontconfig' 'util-linux-libs' 'libice' 'libxcb' 'glibc')
15optdepends=(
16 'wps-office-365-edu-fonts: FZ TTF fonts provided by wps office 365 edu'
17 'cups: for printing support')
18options=(!strip !zipman !debug)
19source_x86_64=("https://edu-download.wpscdn.cn/download/365edu/${pkgver}/wps-office_${pkgver}.AK.preload.sw.withsn.edu_666780_amd64.deb")
20source_aarch64=("https://edu-download.wpscdn.cn/download/365edu/${pkgver}/wps-office_${pkgver}.AK.preload.sw.withsn.edu_666841_arm64.deb")
21source_loong64=("https://edu-download.wpscdn.cn/download/365edu/${pkgver}/wps-office_${pkgver}.AK.preload.sw.withsn.edu_666842_loongarch64.deb")
22sha256sums_x86_64=('da8ca8846b3f0f3bbc0031b15a9a8d3d0efc20f999a67ce006037be3b7d540f4')
23sha256sums_aarch64=('fb9c8284dcc7477666732199ff209dd1fdf5a10da12c331ea93d1398c9f52dfa')
24sha256sums_loong64=('a9d0ceccf087e853bdebae1d60e62acfa08ae806925aa719963d6c7bb5369a3a')
25
26prepare() {
27 xz -df data.tar.xz
28}
29
30_install(){
31 tar --no-same-owner -C "${pkgdir}" -xf data.tar "$@"
32}
33
34package_wps-office-365-edu(){
35 conflicts=('wps-office')
36 provides=('wps-office')
37
38 _install --exclude ./usr/*xiezuo* --exclude ./usr/share/fonts \
39 --exclude ./usr/share/desktop-directories \
40 ./opt/kingsoft/wps-office/office6 ./usr
41
42 # to save typing pkgdir
43 cd "${pkgdir}"
44
45 # remove file
46 rm usr/bin/{wps_uninstall.sh,wps_xterm} \
47 usr/share/applications/wps-office-uninstall.desktop
48
49 # use system lib
50 rm opt/kingsoft/wps-office/office6/lib{jpeg,stdc++}.so*
51 if [[ "$CARCH" = "aarch64" ]]; then
52 # more stuffs are broken on ALARM, force these to use system library
53 rm opt/kingsoft/wps-office/office6/addons/cef/libm.so*
54 rm opt/kingsoft/wps-office/office6/libfreetype.so*
55 fi
56
57 # fix python2 call
58 sed -i "s/python -c 'import sys, urllib; print urllib\.unquote(sys\.argv\[1\])'/\
59python -c 'import sys, urllib.parse; print(urllib.parse.unquote(sys.argv[1]))'/" usr/bin/wps
60
61 # fix template path
62 sed -i 's|URL=.*|URL=/opt/kingsoft/wps-office/office6/mui/zh_CN/templates/newfile.docx|' \
63 usr/share/templates/wps-office-wps-template.desktop
64 sed -i 's|URL=.*|URL=/opt/kingsoft/wps-office/office6/mui/zh_CN/templates/newfile.xlsx|' \
65 usr/share/templates/wps-office-et-template.desktop
66 sed -i 's|URL=.*|URL=/opt/kingsoft/wps-office/office6/mui/zh_CN/templates/newfile.pptx|' \
67 usr/share/templates/wps-office-wpp-template.desktop
68
69 # fix menu category
70 sed -i 's|Categories=.*|&Office;|' usr/share/applications/*.desktop
71 sed -i '$a Categories=Office;' usr/share/applications/wps-office-officeassistant.desktop
72
73 # fix background process
74 sed -i '2i [[ $(ps -ef | grep -c "office6/$(basename $0)") == 1 ]] && gOptExt=-multiply' usr/bin/{wps,wpp,et,wpspdf}
75
76 # fix input method
77 sed -i '2i [[ "$XMODIFIERS" == "@im=fcitx" ]] && export QT_IM_MODULE=fcitx' usr/bin/{wps,wpp,et,wpspdf}
78
79 # fix xxx Njk0QkYtWVVEQkctRUFSNjktQlBSR0ItQVRRWEgK
80 sed -i 's|YUA..=NsbhfV4nLv_oZGENyLSVZA..|YUA..=WHfH10HHgeQrW2N48LfXrA..|' \
81 opt/kingsoft/wps-office/office6/cfgs/oem.ini
82 install -dm777 opt/kingsoft/.auth/
83}
84
85#package_wps-office-365-edu-xiezuo(){
86# _install --wildcards ./opt/xiezuo ./usr/*xiezuo*
87#}
88
89package_wps-office-365-edu-fonts(){
90 conflicts=('wps-office-fonts')
91 provides=('wps-office-fonts')
92 _install ./etc/fonts ./usr/share/fonts
93}
94

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