fcitx5-mozc-ext-neologd
The package downloads official source code from project repositories and two data files (zip code lists) from Japan Post's official website, which are used to generate dictionaries; these are legitimate data sources, not executables, and the build process is transparent and reproducible despite unverifiable checksums.
Triggered rules
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 official source code from project repositories and two data files (zip code lists) from Japan Post's official website, which are used to generate dictionaries; these are legitimate data sources, not executables, and the build process is transparent and reproducible despite unverifiable checksums.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:33
https://www.post.japanpost.jp/service/search/zipcode/download/office/zip/jigyosyo.zip -
PKGBUILD:35
git+https://chromium.googlesource.com/breakpad/breakpad#commit=${_breakpad_commit}
PKGBUILD
2 offending line(s) highlighted# Maintainer: Masaki Haruka <yek@reasonset.net>
# Contributor: Jiachen Yang <farseerfc@archlinux.org>
# Contributor: Felix Yan <felixonmars@archlinux.org>
# Contributor: ponsfoot <cabezon dot hashimoto at gmail dot com>
# Contributor: UTUMI Hirosi <utuhiro78 at yahoo dot co dot jp>
## Mozc compile option
_bldtype=Release
_mozc_commit=58def27
_abseil_cpp_commit=76a21a9
_breakpad_commit=94c818ea
_gtest_commit=cd8e73f
_japanese_usage_dictionary_commit=38d3462
_jsoncpp_commit=93acc7b
_protobuf_commit=8dd0a01
_dictext_commit=f4e3dc5
_neologd_commit=abc61e3
_pkgbase=mozc
pkgname=fcitx5-mozc-ext-neologd
pkgdesc="Fcitx5 Module of Mozc (Google Japanese Input OSS) with external generated dictionaries (NEologd and Sudachi.)"
pkgver=3.35.6354.102.g58def27.xf4e3dc5
pkgrel=1
arch=('x86_64')
url="https://github.com/google/mozc"
license=('custom')
depends=('qt6-base' 'fcitx5')
makedepends=('pkg-config' 'python' 'bazelisk' 'git' 'clang' 'python-six' 'zsh' 'ruby' 'xz' 'unzip' 'ruby-csv' 'ruby-nkf')
conflicts=('mozc' 'mozc-server' 'mozc-utils-gui' 'mozc-fcitx' 'fcitx-mozc' 'fcitx5-mozc-ut' 'fcitx5-mozc-ut-full' 'fcitx-mozc-neologd-ut' 'fcitx-mozc-ut-unified' 'fcitx-mozc-ut-unified-full' 'fcitx5-mozc')
provides=('fcitx5-mozc=3.33.6133.102')
source=(git+https://github.com/fcitx/mozc.git#commit=${_mozc_commit}
https://www.post.japanpost.jp/service/search/zipcode/download/office/zip/jigyosyo.zip
https://www.post.japanpost.jp/service/search/zipcode/download/kogaki/zip/ken_all.zip
git+https://chromium.googlesource.com/breakpad/breakpad#commit=${_breakpad_commit}
git+https://github.com/google/googletest.git#commit=${_gtest_commit}
git+https://github.com/hiroyuki-komatsu/japanese-usage-dictionary.git#commit=${_japanese_usage_dictionary_commit}
git+https://github.com/open-source-parsers/jsoncpp.git#commit=${_jsoncpp_commit}
git+https://github.com/google/protobuf.git#commit=${_protobuf_commit}
git+https://github.com/abseil/abseil-cpp.git#commit=${_abseil_cpp_commit}
git+https://github.com/reasonset/mozcdict-ext.git#commit=${_dictext_commit}
git+https://github.com/neologd/mecab-ipadic-neologd.git#commit=${_neologd_commit}
)
sha512sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP')
validpgpkeys=('2CC8A0609AD2A479C65B6D5C8E8B898CBF2412F9') # Weng Xuetian
pkgver() {
cd mozc
# Extract the MAJOR, MINOR, and BUILD numbers from the new src/version.bzl file
local _major=$(awk -F'[ =]+' '/^MAJOR/ {print $2}' src/version.bzl)
local _minor=$(awk -F'[ =]+' '/^MINOR/ {print $2}' src/version.bzl)
local _build=$(awk -F'[ =]+' '/^BUILD_OSS/ {print $2}' src/version.bzl)
# As before, build it with revision (102) for Linux
printf "%s.%s.%s.102.g%s.x%s" "$_major" "$_minor" "$_build" "${_mozc_commit}" "$_dictext_commit"
}
prepare() {
cd "$srcdir/mozc"
git config protocol.file.allow always
git submodule init
git config submodule.src/third_party/breakpad.url "$srcdir/breakpad"
git config submodule.src/third_party/gtest.url "$srcdir/googletest"
git config submodule.src/third_party/japanese_usage_dictionary.url "$srcdir/japanese-usage-dictionary"
git config submodule.src/third_party/jsoncpp.url "$srcdir/jsoncpp"
git config submodule.src/third_party/protobuf.url "$srcdir/protobuf"
git config submodule.src/third_party/abseil-cpp.url "$srcdir/abseil-cpp"
git -c protocol.file.allow=always submodule update
cd src
# Reset dictionary09
git checkout data/dictionary_oss/dictionary09.txt
# Generate zip code seed
echo "Generating zip code seed..."
PYTHONPATH="$PWD:$PYTHONPATH" python dictionary/gen_zip_code_seed.py --zip_code="${srcdir}/KEN_ALL.CSV" --jigyosyo="${srcdir}/JIGYOSYO.CSV" >> data/dictionary_oss/dictionary09.txt
echo "Done."
# Include NEologd
cd "$srcdir/mozcdict-ext"
git submodule init
git config submodule.neologd/upstream.url "$srcdir/mecab-ipadic-neologd"
git -c protocol.file.allow=always submodule update
echo "Generating extra dictionaries..."
(
(
cd neologd
MOZC_ID_FILE="$srcdir/mozc/src/data/dictionary_oss/id.def" zsh mkdict.zsh
)
(
cd sudachi
MOZC_ID_FILE="$srcdir/mozc/src/data/dictionary_oss/id.def" zsh mkdict.zsh
)
(
cd byhand
MOZC_ID_FILE="$srcdir/mozc/src/data/dictionary_oss/id.def" zsh mkdict.zsh
)
) | ruby .dev.utils/uniqword.rb 2> /dev/null >> "$srcdir/mozc/src/data/dictionary_oss/dictionary09.txt"
echo "Done."
cd "$srcdir/mozc"
cd src
rm -rf unix/fcitx
rm -rf unix/ibus
}
build() {
# Fix compatibility with google-glog 0.3.3 (symbol conflict)
CFLAGS="${CFLAGS} -fvisibility=hidden"
CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
# Explicitly specify Clang to prevent Bazel from leaking GCC system headers and violating sandbox
export CC=clang
export CXX=clang++
cd mozc/src
QT_BASE_PATH="$(pkg-config --variable=prefix Qt6Core)/include/qt6" ../scripts/build_fcitx5_bazel
# Extract license part of mozc
head -n 29 server/mozc_server.cc > LICENSE
}
package() {
cd mozc/src
export PREFIX="${pkgdir}/usr"
export _bldtype
../scripts/install_server_bazel
install -d "${pkgdir}/usr/share/licenses/$pkgname/"
install -m 644 LICENSE data/installer/*.html "${pkgdir}/usr/share/licenses/${pkgname}/"
install -d "${PREFIX}/share/fcitx5/addon"
install -d "${PREFIX}/share/fcitx5/inputmethod"
install -d "${PREFIX}/lib/fcitx5"
../scripts/install_fcitx5_bazel
}
Changes since previous scan
--- PKGBUILD @ 2026-10-27 00:23+++ PKGBUILD @ 2026-11-01 00:21@@ -6,21 +6,21 @@ ## Mozc compile option _bldtype=Release-_mozc_commit=a16dde4+_mozc_commit=58def27 -_abseil_cpp_commit=5c01794-_breakpad_commit=8be0e31-_gtest_commit=d72f9c8+_abseil_cpp_commit=76a21a9+_breakpad_commit=94c818ea+_gtest_commit=cd8e73f _japanese_usage_dictionary_commit=38d3462-_jsoncpp_commit=ca98c98-_protobuf_commit=199a436-_dictext_commit=b1b79e9+_jsoncpp_commit=93acc7b+_protobuf_commit=8dd0a01+_dictext_commit=f4e3dc5 _neologd_commit=abc61e3 _pkgbase=mozc pkgname=fcitx5-mozc-ext-neologd pkgdesc="Fcitx5 Module of Mozc (Google Japanese Input OSS) with external generated dictionaries (NEologd and Sudachi.)"-pkgver=3.33.6133.102.ga16dde4.xb1b79e9+pkgver=3.35.6354.102.g58def27.xf4e3dc5 pkgrel=1 arch=('x86_64') url="https://github.com/google/mozc"Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 13:48:00 | Medium | 1 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |