diff --git a/srcpkgs/fcitx-mozc b/srcpkgs/fcitx-mozc deleted file mode 120000 index 6874ca426b5..00000000000 --- a/srcpkgs/fcitx-mozc +++ /dev/null @@ -1 +0,0 @@ -mozc \ No newline at end of file diff --git a/srcpkgs/mozc/patches/abseil.patch b/srcpkgs/mozc/patches/abseil.patch index a41507550f9..f4f2990b9e6 100644 --- a/srcpkgs/mozc/patches/abseil.patch +++ b/srcpkgs/mozc/patches/abseil.patch @@ -7,22 +7,9 @@ An all-in-one patch that fixes several issues: 2) powerpc stacktrace implementation only works on glibc (disabled on musl) 4) examine_stack.cpp makes glibc assumptions on powerpc (fixed) ---- a/abseil-cpp/absl/base/internal/unscaledcycleclock.h -+++ b/abseil-cpp/absl/base/internal/unscaledcycleclock.h -@@ -46,8 +46,8 @@ - - // The following platforms have an implementation of a hardware counter. - #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \ -- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \ -- defined(_M_IX86) || defined(_M_X64) -+ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \ -+ defined(__riscv) || defined(_M_IX86) || defined(_M_X64) - #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1 - #else - #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 0 --- a/abseil-cpp/absl/debugging/internal/examine_stack.cc +++ b/abseil-cpp/absl/debugging/internal/examine_stack.cc -@@ -27,6 +27,10 @@ +@@ -36,6 +36,10 @@ #include #include @@ -33,21 +20,21 @@ An all-in-one patch that fixes several issues: #include "absl/base/attributes.h" #include "absl/base/internal/raw_logging.h" #include "absl/base/macros.h" -@@ -63,8 +67,10 @@ void* GetProgramCounter(void* vuc) { +@@ -177,8 +181,10 @@ void* GetProgramCounter(void* const vuc) return reinterpret_cast(context->uc_mcontext.pc); #elif defined(__powerpc64__) return reinterpret_cast(context->uc_mcontext.gp_regs[32]); +-#elif defined(__powerpc__) +#elif defined(__powerpc__) && defined(__GLIBC__) -+ return reinterpret_cast(context->uc_mcontext.regs->nip); - #elif defined(__powerpc__) -- return reinterpret_cast(context->uc_mcontext.uc_regs->gregs[32]); + return reinterpret_cast(context->uc_mcontext.uc_regs->gregs[32]); ++#elif defined(__powerpc__) + return reinterpret_cast(((struct pt_regs *)context->uc_regs)->nip); #elif defined(__riscv) return reinterpret_cast(context->uc_mcontext.__gregs[REG_PC]); #elif defined(__s390__) && !defined(__s390x__) --- a/abseil-cpp/absl/debugging/internal/stacktrace_config.h +++ b/abseil-cpp/absl/debugging/internal/stacktrace_config.h -@@ -59,7 +59,7 @@ +@@ -67,7 +67,7 @@ #elif defined(__i386__) || defined(__x86_64__) #define ABSL_STACKTRACE_INL_HEADER \ "absl/debugging/internal/stacktrace_x86-inl.inc" @@ -56,3 +43,16 @@ An all-in-one patch that fixes several issues: #define ABSL_STACKTRACE_INL_HEADER \ "absl/debugging/internal/stacktrace_powerpc-inl.inc" #elif defined(__aarch64__) +--- a/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h ++++ b/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +@@ -21,8 +21,8 @@ + + // The following platforms have an implementation of a hardware counter. + #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \ +- defined(__powerpc__) || defined(__ppc__) || defined(_M_IX86) || \ +- (defined(_M_X64) && !defined(_M_ARM64EC)) ++ (defined(__powerpc__) || defined(__ppc__) && defined(__GLIBC__)) || \ ++ defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC)) + #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1 + #else + #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 0 diff --git a/srcpkgs/mozc/patches/common.patch b/srcpkgs/mozc/patches/common.patch index 1b7bb395948..21ecc73f33a 100644 --- a/srcpkgs/mozc/patches/common.patch +++ b/srcpkgs/mozc/patches/common.patch @@ -1,11 +1,11 @@ --- a/mozc/src/config.bzl +++ b/mozc/src/config.bzl -@@ -34,7 +34,7 @@ LINUX_MOZC_SERVER_DIR = "/usr/lib/mozc" - LINUX_MOZC_DOCUMENT_DIR = LINUX_MOZC_SERVER_DIR + "/documents" +@@ -44,7 +44,7 @@ LINUX_MOZC_DOCUMENT_DIR = LINUX_MOZC_SER + IBUS_COMPONENT_DIR = "/usr/share/ibus/component" IBUS_MOZC_INSTALL_DIR = "/usr/share/ibus-mozc" IBUS_MOZC_ICON_PATH = IBUS_MOZC_INSTALL_DIR + "/product_icon.png" -IBUS_MOZC_PATH = "/usr/lib/ibus-mozc/ibus-engine-mozc" +IBUS_MOZC_PATH = "/usr/libexec/ibus-engine-mozc" + EMACS_MOZC_CLIENT_DIR = "/usr/share/emacs/site-lisp/emacs-mozc" + EMACS_MOZC_HELPER_DIR = "/usr/bin" - MACOS_BUNDLE_ID_PREFIX = "org.mozc.inputmethod.Japanese" - MACOS_MIN_OS_VER = "10.12" diff --git a/srcpkgs/mozc/patches/cross.patch b/srcpkgs/mozc/patches/cross.patch deleted file mode 100644 index a7e38fd9b34..00000000000 --- a/srcpkgs/mozc/patches/cross.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- a/mozc/src/gyp/common.gypi -+++ b/mozc/src/gyp/common.gypi -@@ -409,12 +409,12 @@ - 'conditions': [ - ['target_platform=="Linux"', { - 'make_global_settings': [ -- ['AR', ' client > default + ios,chromiumos,wasm,linux: same with android. + oss_linux: oss_linux > oss > linux > client > default ++ oss_musl: oss_musl > oss_linux > oss > linux > client > default + + Args: + default: default fallback value. +@@ -805,6 +807,7 @@ def mozc_select( + macos: value for macOS build. + oss_android: value for OSS Android build. + oss_linux: value for OSS Linux build. ++ oss_musl: value for OSS Linux with musl libc build. + oss_macos: value for OSS macOS build. + oss_windows: value for OSS Windows build. + prod: value for prod build. +@@ -827,6 +830,7 @@ def mozc_select( + "//bazel/cc_target_os:linux": _get_value([linux, client, default]), + "//bazel/cc_target_os:oss_android": _get_value([oss_android, oss, android, client, default]), + "//bazel/cc_target_os:oss_linux": _get_value([oss_linux, oss, linux, client, default]), ++ "//bazel/cc_target_os:oss_musl": _get_value([oss_musl, oss_linux, oss, linux, client, default]), + "//bazel/cc_target_os:oss_macos": _get_value([oss_macos, oss, macos, ios, client, default]), + "//bazel/cc_target_os:oss_windows": _get_value([oss_windows, oss, windows, client, default]), + "//bazel/cc_target_os:prod_linux": _get_value([prod_linux, prod, oss_linux, oss, linux, client, default]), +--- a/mozc/src/rewriter/BUILD.bazel ++++ b/mozc/src/rewriter/BUILD.bazel +@@ -36,6 +36,7 @@ load( + "mozc_cc_library", + "mozc_cc_test", + "mozc_py_binary", ++ "mozc_select", + "mozc_select_enable_usage_rewriter", + ) + +@@ -913,7 +914,11 @@ mozc_cc_binary( + "@com_google_absl//absl/status:statusor", + "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", +- ], ++ ] + mozc_select( ++ oss_musl = [ ++ "@fts", ++ ], ++ ), + ) + + mozc_cc_binary( +--- a/mozc/src/BUILD.bazel ++++ b/mozc/src/BUILD.bazel +@@ -251,6 +251,7 @@ selects.config_setting_group( + # TODO(yuryu): define platforms and use bazel_platforms. + "//bazel/cc_target_os:linux", + "//bazel/cc_target_os:oss_linux", ++ "//bazel/cc_target_os:oss_musl", + "//bazel/cc_target_os:prod_linux", + "//bazel/cc_target_os:darwin", + "//bazel/cc_target_os:oss_macos", +@@ -274,6 +275,7 @@ selects.config_setting_group( + # TODO(yuryu): define platforms and use bazel_platforms. + "//bazel/cc_target_os:linux", + "//bazel/cc_target_os:oss_linux", ++ "//bazel/cc_target_os:oss_musl", + "//bazel/cc_target_os:prod_linux", + "//bazel/cc_target_os:darwin", + "//bazel/cc_target_os:oss_macos", +--- a/mozc/src/bazel/cc_target_os/BUILD.bazel ++++ b/mozc/src/bazel/cc_target_os/BUILD.bazel +@@ -95,6 +95,13 @@ config_setting( + ) + + config_setting( ++ name = "oss_musl", ++ values = { ++ "define": "TARGET=oss_musl", ++ }, ++) ++ ++config_setting( + name = "prod_linux", + values = { + "define": "TARGET=prod_linux", +--- /dev/null ++++ b/mozc/src/BUILD.fts.bazel +@@ -0,0 +1,16 @@ ++package( ++ default_visibility = ["//visibility:public"], ++) ++ ++cc_library( ++ name = "fts", ++ hdrs = [ ++ "include/fts.h", ++ ], ++ includes = [ ++ "include", ++ ], ++ linkopts = [ ++ "-lfts", ++ ], ++) diff --git a/srcpkgs/mozc/patches/stdint.patch b/srcpkgs/mozc/patches/stdint.patch deleted file mode 100644 index 2ef10e6fb05..00000000000 --- a/srcpkgs/mozc/patches/stdint.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/mozc/src/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h -+++ b/mozc/src/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h -@@ -19,6 +19,7 @@ - #include - - #include -+#include - #include - #include - diff --git a/srcpkgs/mozc/patches/system-python.patch b/srcpkgs/mozc/patches/system-python.patch new file mode 100644 index 00000000000..629997bd383 --- /dev/null +++ b/srcpkgs/mozc/patches/system-python.patch @@ -0,0 +1,32 @@ +--- a/mozc/src/MODULE.bazel ++++ b/mozc/src/MODULE.bazel +@@ -63,6 +63,29 @@ bazel_dep( + version = "1.4.1", + ) + ++local_runtime_repo = use_repo_rule( ++ "@rules_python//python/local_toolchains:repos.bzl", ++ "local_runtime_repo", ++) ++ ++local_runtime_toolchains_repo = use_repo_rule( ++ "@rules_python//python/local_toolchains:repos.bzl", ++ "local_runtime_toolchains_repo", ++) ++ ++local_runtime_repo( ++ name = "local_python3", ++ interpreter_path = "python3", ++ on_failure = "fail", ++) ++ ++local_runtime_toolchains_repo( ++ name = "local_toolchains", ++ runtimes = ["local_python3"], ++) ++ ++register_toolchains("@local_toolchains//:all", dev_dependency = True) ++ + # Bazel macOS build (3.22.0 2025-05-20) + # https://github.com/bazelbuild/rules_apple + bazel_dep( diff --git a/srcpkgs/mozc/template b/srcpkgs/mozc/template index 991c06425b4..c8bb6746534 100644 --- a/srcpkgs/mozc/template +++ b/srcpkgs/mozc/template @@ -2,19 +2,19 @@ pkgname=mozc # src/data/version/mozc_version_template.bzl # revision is always 102, template always says 100 ;) -version=2.28.4800.102 -revision=2 -_commit=056163a5fddbb261b258beb8444998e4882f0cc5 -_abseil=20211102.0 +version=2.32.5851.102 +revision=1 +_commit=963c63ff06ccfb40c6d3893d4209423c3d77d003 +_abseil=20250512.0 _protobuf_commit=cc7b1b53234cd7a8f50d90ac3933b240dcf4cd97 _gyp=0.1+20220404git9ecf45e _jpn_dict=e5b3425575734c323e1d947009dd74709437b684 create_wrksrc=yes build_wrksrc=mozc/src -hostmakedepends="gettext ninja pkg-config - python3-six which qt5-qmake qt5-host-tools" -makedepends="gtk+-devel ibus-devel libzinnia-devel qt5-devel - fcitx-devel libfcitx5-devel" +hostmakedepends="gettext ninja pkg-config bazel + python3-six which qt6-base" +makedepends="gtk+-devel ibus-devel libzinnia-devel qt6-base-devel + libfcitx5-devel" depends="tegaki-zinnia-japanese>=0.3 mozc-base-${version}_${revision}" short_desc="Japanese IME (Open Source version of Google Japanese Input)" maintainer="Đoàn Trần Công Danh " @@ -27,8 +27,8 @@ distfiles=" ${DEBIAN_SITE}/main/g/gyp/gyp_$_gyp.orig.tar.xz https://github.com/hiroyuki-komatsu/japanese-usage-dictionary/archive/$_jpn_dict.tar.gz " -checksum="259d87bfd7535ad03bd554185677d7345a90166353a6db0b6a3606183ad2923d - dcf71b9cba8dc0ca9940c4b316a0c796be8fab42b070bb6b7cab62b48f0e66c4 +checksum="762814b67aee49d378896fa5026ae8d2cad3f385f99846729429aee34b04a1c4 + 7262daa7c1711406248c10f41026d685e88223bc92817d16fb93c19adb57f669 863e27f6d24f40bce2bbfe5adcf365f2af5479ea917f254331ee60ce88f8c8a5 0325006f012db66dfa27bf7bb048f3fe38f96e512ebe065930cbc70bcdc06bc9 0b6efee0eebac2c1a8eeea333278aa40fcef7846bba9a379962c6e567e7e3dc1" @@ -39,6 +39,15 @@ lib32disabled=yes if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then broken="Does not build" fi +if [ "$XBPS_TARGET_LIBC" = musl ]; then + makedepends+=" musl-fts-devel" + LDFLAGS=-lfts +fi +if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then + broken="I don't want to do it" +fi +# Well, it's bazel +nocross="The include path '/usr/aarch64-linux-gnu/usr/include' references a path outside of the execution root." post_extract() { mv mozc-* mozc @@ -57,82 +66,73 @@ post_extract() { done } -do_configure() { - GYP_DEFINES=" - document_dir=/usr/share/licenses/${pkgname} - ibus_mozc_path=/usr/libexec/ibus-engine-mozc - use_libzinnia=1 - ${XBPS_TARGET_NO_ATOMIC8:+use_libatomic=1} - " python3 build_mozc.py gyp --target_platform=Linux -} - do_build() { + local config=oss_linux local _file _lang - local _modir=out_linux/Release/gen/unix/fcitx5/po - - python3 build_mozc.py build \ - --use_gyp_for_ibus_build \ - -c Release \ - server/server.gyp:mozc_server \ - gui/gui.gyp:mozc_tool \ - unix/emacs/emacs.gyp:mozc_emacs_helper \ - unix/ibus/ibus.gyp:ibus_mozc \ - renderer/renderer.gyp:mozc_renderer \ - unix/fcitx/fcitx.gyp:fcitx-mozc \ - unix/fcitx5/fcitx5.gyp:fcitx5-mozc - - mkdir -p $_modir - for _file in unix/fcitx5/po/*.po - do - _lang=${_file##*/} - _lang=${_lang%.po} - msgfmt "$_file" -o $_modir/$_lang.mo + local flag + local _bazel_opts="-s --verbose_failures" + for flag in $CFLAGS; do + _bazel_opts+=" --conlyopt=$flag" + # For -fstack-protector ... + _bazel_opts+=" --linkopt=$flag" done - msgfmt --xml -d unix/fcitx5/po \ - --template unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml.in \ - -o $_modir/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml + for flag in $CXXFLAGS; do + _bazel_opts+=" --cxxopt=$flag" + _bazel_opts+=" --linkopt=$flag" + done + for flag in $LDFLAGS; do + _bazel_opts+=" --linkopt=$flag" + done + if [ "$XBPS_TARGET_LIBC" = musl ]; then + config=oss_musl + fi + bazel build -c opt --config "$config" --define server=1 \ + --worker_quit_after_build \ + ${_bazel_opts} \ + server:mozc_server \ + gui/tool:mozc_tool \ + unix/emacs:mozc_emacs_helper \ + unix/ibus:ibus_mozc \ + renderer/qt:mozc_renderer \ + unix/fcitx5:fcitx5-mozc.so + chmod -R u+rwX /tmp + cd unix/fcitx5 + msgfmt --xml -d po \ + --template org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml.in \ + -o org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml + + cd po + for _file in *.po + do + _lang=${_file%.po} + msgfmt "$_file" -o $_lang.mo + done } do_install() { local f # Base package - vinstall out_linux/Release/mozc_server 755 usr/lib/mozc + vinstall bazel-bin/server/mozc_server 755 usr/lib/mozc vlicense data/installer/credits_en.html license.html head -n 29 unix/fcitx5/fcitx_key_translator.cc >fcitx.LICENSE vlicense fcitx.LICENSE # emacs - vbin out_linux/Release/mozc_emacs_helper + vbin bazel-bin/unix/emacs/mozc_emacs_helper vinstall unix/emacs/mozc.el 644 usr/share/emacs/site-lisp # Qt5 tools - vinstall out_linux/Release/mozc_tool 755 usr/lib/mozc + vinstall bazel-bin/gui/tool/mozc_tool 755 usr/lib/mozc # ibus - vinstall out_linux/Release/ibus_mozc 755 usr/libexec ibus-engine-mozc - vinstall out_linux/Release/gen/unix/ibus/mozc.xml 644 \ - usr/share/ibus/component + vinstall bazel-bin/unix/ibus/ibus_mozc 755 usr/libexec ibus-engine-mozc + vinstall bazel-bin/unix/ibus/mozc.xml 644 usr/share/ibus/component vinstall data/images/product_icon_32bpp-128.png 644 \ usr/share/ibus-mozc product_icon.png for f in data/images/unix/48x48/*.png; do vinstall "$f" 644 usr/share/ibus-mozc done - vinstall out_linux/Release/mozc_renderer 755 usr/lib/mozc - # fcitx - vinstall out_linux/Release/fcitx-mozc.so 644 usr/lib/fcitx - vinstall unix/fcitx/fcitx-mozc.conf 644 usr/share/fcitx/addon - vinstall unix/fcitx/mozc.conf 644 usr/share/fcitx/inputmethod - vinstall data/images/product_icon_32bpp-128.png 644 \ - usr/share/fcitx/mozc/icon mozc.png - for f in dictionary properties tool; do - vinstall ../scripts/icons/ui-$f.png 644 \ - usr/share/fcitx/mozc/icon mozc-$f.png - done - for f in alpha_full alpha_half direct \ - hiragana katakana_full katakana_half; do - vinstall data/images/unix/48x48/$f.png 644 \ - usr/share/fcitx/mozc/icon mozc-$f.png - done + vinstall bazel-bin/renderer/qt/mozc_renderer 755 usr/lib/mozc # fcitx5 - vinstall out_linux/Release/fcitx5-mozc.so 644 usr/lib/fcitx5 + vinstall bazel-bin/unix/fcitx5/fcitx5-mozc.so 644 usr/lib/fcitx5 vinstall unix/fcitx5/mozc-addon.conf 644 \ usr/share/fcitx5/addon mozc.conf vinstall unix/fcitx5/mozc.conf 644 usr/share/fcitx5/inputmethod @@ -149,8 +149,6 @@ do_install() { vinstall data/images/unix/48x48/$f.png 644 \ usr/share/icons/hicolor/48x48/apps fcitx-mozc-${f/_/-}.png done - vinstall out_linux/Release/gen/unix/fcitx5/po/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml \ - 644 usr/share/metainfo/ } mozc-base_package() { @@ -177,29 +175,11 @@ ibus-mozc_package() { } } -fcitx-mozc_package() { - short_desc="Mozc engine for fcitx - Client of the Mozc input method" - depends="mozc-base-${version}_${revision} fcitx>=4.2.9" - homepage="https://fcitx-im.org/" - lib32disabled=yes - pkg_install() { - local _file _lang - vmove usr/lib/fcitx - vmove usr/share/fcitx - # vmove "usr/share/locale/*/LC_MESSAGES/fcitx-mozc.mo" - for _file in out_linux/Release/gen/unix/fcitx/po/*.mo - do - _lang=${_file##*/} - _lang=${_lang%.mo} - vinstall "$_file" 644 \ - usr/share/locale/$_lang/LC_MESSAGES fcitx-mozc.mo - done - } -} - fcitx5-mozc_package() { short_desc="Mozc engine for fcitx v5" depends="mozc-base-${version}_${revision} fcitx5" + provides="fcitx-mozc-5_1" + replaces="fcitx-mozc>=0" homepage="https://fcitx-im.org/" lib32disabled=yes pkg_install() { @@ -207,14 +187,14 @@ fcitx5-mozc_package() { vmove usr/lib/fcitx5 vmove usr/share/fcitx5 vmove usr/share/icons - # vmove "usr/share/locale/*/LC_MESSAGES/fcitx5-mozc.mo" - for _file in out_linux/Release/gen/unix/fcitx5/po/*.mo + vinstall unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml \ + 644 usr/share/metainfo/ + for _file in unix/fcitx5/po/*.mo do _lang=${_file##*/} _lang=${_lang%.mo} vinstall "$_file" 644 \ usr/share/locale/$_lang/LC_MESSAGES fcitx5-mozc.mo done - vmove usr/share/metainfo } }