Skip to content

Integrate cppjieba dictionary conversion into opencc_dict - #1392

Merged
frankslin merged 1 commit into
BYVoid:masterfrom
frankslin:cppjieba_dict_convergence
Jul 3, 2026
Merged

frankslin merged 1 commit into
BYVoid:masterfrom
frankslin:cppjieba_dict_convergence

Conversation

@frankslin

Copy link
Copy Markdown
Collaborator

Add cppjieba_utf8 as an opencc_dict input format so Jieba merged dictionaries are produced by the standard dictionary tool. Remove the private cppjieba_dict helper and update CMake, Bazel, and Debian packaging rules to use opencc_dict.

Add cppjieba_utf8 as an opencc_dict input mode so the standard dictionary tool can generate the same merged Jieba dictionaries as the old helper, including base-plus-user overlay inputs. Keep Jieba packaging on a private build-only helper and stop installing the former cppjieba_dict tool.
@frankslin
frankslin force-pushed the cppjieba_dict_convergence branch from a9b4f6a to 96456d0 Compare July 3, 2026 00:35
@frankslin
frankslin merged commit e83a9b4 into BYVoid:master Jul 3, 2026
33 checks passed
@frankslin
frankslin deleted the cppjieba_dict_convergence branch July 3, 2026 05:34
frankslin added a commit to frankslin/OpenCC that referenced this pull request Jul 11, 2026
…build tool

Since BYVoid#1392 opencc_dict supports the cppjieba_utf8 input format, so the
CMake and Bazel builds now invoke it directly to produce
jieba_dict/jieba_merged.ocd2, and the duplicated
opencc_jieba_dict_build_tool (formerly cppjieba_dict) is deleted. Output
is byte-identical to the old tool on all three build paths (in-tree
CMake, Bazel, standalone plugin build).

Standalone plugin builds now locate an installed opencc_dict via
find_program (hinted from the found OpenCC package) and fail at
configure time with a clear message unless it supports cppjieba_utf8,
i.e. OpenCC >= 1.4.1.

Debian packaging follows suit: drop the stale usr/bin/cppjieba_dict
entry from opencc-jieba.install (the tool is no longer installed) and
update SPLIT_PROPOSAL.md to describe the opencc_dict-based flow.
frankslin added a commit that referenced this pull request Jul 12, 2026
* Revert "Temporarily roll back npm version bump to 1.4.0"

This reverts commit 70b4521 and bumps version to 1.4.1 again.

* Generate merged Jieba dictionary with opencc_dict and remove private build tool

Since #1392 opencc_dict supports the cppjieba_utf8 input format, so the
CMake and Bazel builds now invoke it directly to produce
jieba_dict/jieba_merged.ocd2, and the duplicated
opencc_jieba_dict_build_tool (formerly cppjieba_dict) is deleted. Output
is byte-identical to the old tool on all three build paths (in-tree
CMake, Bazel, standalone plugin build).

Standalone plugin builds now locate an installed opencc_dict via
find_program (hinted from the found OpenCC package) and fail at
configure time with a clear message unless it supports cppjieba_utf8,
i.e. OpenCC >= 1.4.1.

Debian packaging follows suit: drop the stale usr/bin/cppjieba_dict
entry from opencc-jieba.install (the tool is no longer installed) and
update SPLIT_PROPOSAL.md to describe the opencc_dict-based flow.

* Finalize 1.4.1 release metadata and notes

Complete the 1.4.1 NEWS entry with the release date and all changes
since ver.1.4.0 (dictionary fixes, word-size-independent OCD output,
Node inline config and schema-generated types, Bazel-built Node release
binaries, Debian packaging rework, librime compatibility tests), and
note that the node-gyp source fallback is planned for removal in favor
of Bazel-only Node builds (also documented in node/PUBLISHING.md).

Update README prebuilt binary links to 1.4.1 with a release-focus note,
and bump remaining build-time version strings (node/BUILD.bazel,
node/global.gypi, setup.py fallback, Windows Zig build scripts) to
1.4.1.

* Bump remaining 1.4.0 release references to 1.4.1

Update the Bazel module version, add a 1.4.1-1 Debian changelog entry
(release-deb.yml stamps deb artifacts with dpkg-parsechangelog, which
would otherwise still report 1.4.0-1), rebase debian patch 0004 whose
context shifted after the post-1.4.0 bundled-googletest existence check,
and refresh the packaging docs' upstream-version statements. All four
patches re-verified with patch -p1 --fuzz=0 against the current tree.

* Fix standalone Jieba plugin configure with a prefix-installed opencc_dict

opencc_dict installed to a non-default prefix carries no rpath, so
running it during the standalone plugin configure failed to load
libopencc and the cppjieba_utf8 capability check misreported the tool as
too old (as seen in the cmake.yml standalone job). Wrap the opencc_dict
invocation with cmake -E env to prepend the installation's lib directory
to DYLD_LIBRARY_PATH / LD_LIBRARY_PATH on macOS / Linux, use the same
wrapped command for both the configure-time check and the dictionary
generation rule, and report a failed-to-run opencc_dict distinctly from
a missing cppjieba_utf8 format.

* Lower opencc-jieba npm macOS deployment target to 11.0

The plugin binary built by plugins/jieba/node/build.js inherited the CI
runner's OS version as its minimum macOS version (15.0 on macos-15
runners), while the Bazel-built opencc npm binaries target 11.0. Pass
CMAKE_OSX_DEPLOYMENT_TARGET=11.0 on darwin so both npm packages support
the same macOS range; verified the rebuilt libopencc-jieba.dylib now
reports minos 11.0.

* Note opencc-jieba macOS deployment target fix in 1.4.1 release notes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant