From 721e451ec418e1712f6962404e111f0ebd487389 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 27 Dec 2024 06:30:35 +0000 Subject: gentoo auto-resync : 27:12:2024 - 06:30:34 --- app-i18n/mozc/Manifest | 2 +- app-i18n/mozc/mozc-2.28.5029.102-r3.ebuild | 467 ----------------------------- app-i18n/mozc/mozc-2.28.5029.102-r4.ebuild | 416 +++++++++++++++++++++++++ 3 files changed, 417 insertions(+), 468 deletions(-) delete mode 100644 app-i18n/mozc/mozc-2.28.5029.102-r3.ebuild create mode 100644 app-i18n/mozc/mozc-2.28.5029.102-r4.ebuild (limited to 'app-i18n/mozc') diff --git a/app-i18n/mozc/Manifest b/app-i18n/mozc/Manifest index c295c01faad5..63a16b9d445b 100644 --- a/app-i18n/mozc/Manifest +++ b/app-i18n/mozc/Manifest @@ -9,6 +9,6 @@ DIST japanese-usage-dictionary-20180701040110.tar.gz 71285 BLAKE2B dfad056a1d506 DIST mozc-2.28.5029.102-2.28.5029.102.tar.gz 37247099 BLAKE2B 4bb528991102d34a26321e6fa00a73cc83cb103e0b765f1ebb837dd6894387288b13ed75cc255003d07d6f0c4a82f963684fa4f2bd9b5043cfaddb57a5f5cef0 SHA512 b20aa45757db92f66d1c135eacf907b4cec937226a8d09e5f9f6768ae22a6b8464e3b75276773ce55413f2002ffcc3d8cae136e7fd3acfc0733e48bccf848d5b DIST mozc-2.28.5029.102-patches.tar.xz 224380 BLAKE2B 377d2cac6ec8a9c90661f10c0b105d8347ca8080ec43cee3dfd4660feadfe2d9b204d6e4b9e22bd11a5fdbbf26e7f6f298b703b88fb1621ea1847741408c1953 SHA512 5836a19ea68de271475b3ca1efce928b0ad012c96ff7ecdc4474b05daf8b8df022203eb46ec839b76e7d50be7a75b8f278d534d762fac0e612a8f09ae13c7c16 EBUILD mozc-2.28.5029.102-r1.ebuild 10859 BLAKE2B 31baf08e330182b12946f54eb5fd0982971eda22085de565ab16f4f5a5135eac367843699bc77cf1c7ea97c138a21a25f169888a26039aebc378c546795ed443 SHA512 2a9bca391b312fb79c0601e832ab382833c82113e8d3ba369a39f280cea4efebf375e6c5d87f445766347f66d60bf820aeeb7f59482d7c77044e6c826c61becf -EBUILD mozc-2.28.5029.102-r3.ebuild 13171 BLAKE2B cc1c81eca0e4477c11b4b12a99f63b94ef88a6adf4d1b4618cb637573f517cd2ccf488b8fccaa5354814a9bc61eaac39f0f3c5e794d2a9cf375880a6950476ed SHA512 87b937686b2f217b963231e6aaf1ed0d5e4d51e8417120b01f7fdbfdf8122d395379dc47679848d78e179a1906ba7b5b2bb224c9f5a0316d9a478bc9bab99372 +EBUILD mozc-2.28.5029.102-r4.ebuild 11674 BLAKE2B 02fa78d9aade0c206b1cdb03c04931f2dcfa3e0238f7a488a16bb0541815095350464c93107cb08bb2fcce5db7b666a3ba7a558a7dd1653174a6a7fbc853d232 SHA512 a0f453648fb65877bf154b1aafbe73f6493e09ca7e272a133d2a2890b96f43f0e7ef402f63b9dfcfbd28181567e618960f355511f90f111053415360af7c6b86 EBUILD mozc-2.28.5029.102.ebuild 10725 BLAKE2B c2486d67e9986e1f7f21d42bddbc3527dc92270818f1bd982fd99836c9a1fb0c95556331e5f5af57c5731b4be9221ebaff88c72844612e5e14e905e11f8c56fd SHA512 3885d73b7afdaa42883b8ae8944b3e7e3eb2f73a7c3da51c5ad26bbd816d4b13b2da0f21ae5ed3a7c0bf1c87bcadf0e1a81d82b4530b2e1280e6d163935a5738 MISC metadata.xml 687 BLAKE2B c7f99282b685a2a6f8d1cf53668225ca50587a8a6023637d1c9a74f1078e38cf512a10edc92eb6aa7190414c040dc27d136f8da5ca7fd73e18f3a41746bfb416 SHA512 3979cb05ef5bf5941568b25896e46918aa0783ebbbe298fb90420c790bcd0bc4270c2c65577b90400fbd05e38ea0ae74d2f5b5cb3dd71cc9ebf15e82f9c6e761 diff --git a/app-i18n/mozc/mozc-2.28.5029.102-r3.ebuild b/app-i18n/mozc/mozc-2.28.5029.102-r3.ebuild deleted file mode 100644 index 9e3e0a65db7d..000000000000 --- a/app-i18n/mozc/mozc-2.28.5029.102-r3.ebuild +++ /dev/null @@ -1,467 +0,0 @@ -# Copyright 2010-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -PYTHON_COMPAT=( python3_{10..12} ) - -inherit desktop edo elisp-common multiprocessing python-any-r1 savedconfig toolchain-funcs xdg - -if [[ "${PV}" == "9999" ]]; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/google/mozc" - EGIT_SUBMODULES=(src/third_party/japanese_usage_dictionary) -else - MOZC_GIT_REVISION="305e9a7374254148474d067c46d55a4ee6081837" - MOZC_DATE="${PV#*_p}" - MOZC_DATE="${MOZC_DATE%%_p*}" - - FCITX_MOZC_GIT_REVISION="242b4f703cba27d4ff4dc123c713a478f964e001" - FCITX_MOZC_DATE="${PV#*_p}" - FCITX_MOZC_DATE="${FCITX_MOZC_DATE#*_p}" - FCITX_MOZC_DATE="${FCITX_MOZC_DATE%%_p*}" - - JAPANESE_USAGE_DICTIONARY_GIT_REVISION="a4a66772e33746b91e99caceecced9a28507e925" - JAPANESE_USAGE_DICTIONARY_DATE="20180701040110" -fi - -DESCRIPTION="Mozc - Japanese input method editor" -HOMEPAGE="https://github.com/google/mozc" -if [[ "${PV}" == "9999" ]]; then - SRC_URI="" -else - SRC_URI=" - https://github.com/google/${PN}/archive/${MOZC_GIT_REVISION}.tar.gz -> ${PN}-${PV%%_p*}-${MOZC_DATE}.tar.gz - https://github.com/hiroyuki-komatsu/japanese-usage-dictionary/archive/${JAPANESE_USAGE_DICTIONARY_GIT_REVISION}.tar.gz -> japanese-usage-dictionary-${JAPANESE_USAGE_DICTIONARY_DATE}.tar.gz - https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-2.28.5029.102-patches.tar.xz - fcitx4? ( https://github.com/fcitx/${PN}/archive/${FCITX_MOZC_GIT_REVISION}.tar.gz -> fcitx-${PN}-${PV%%_p*}-${FCITX_MOZC_DATE}.tar.gz ) - fcitx5? ( https://github.com/fcitx/${PN}/archive/${FCITX_MOZC_GIT_REVISION}.tar.gz -> fcitx-${PN}-${PV%%_p*}-${FCITX_MOZC_DATE}.tar.gz ) - " -fi - -# Mozc: BSD -# src/data/dictionary_oss: ipadic, public-domain -# src/data/unicode: unicode -# japanese-usage-dictionary: BSD-2 -LICENSE="BSD BSD-2 ipadic public-domain unicode" -SLOT="0" -KEYWORDS="~amd64 ~loong ~x86" -IUSE="debug emacs fcitx4 fcitx5 +gui ibus renderer test" -REQUIRED_USE="|| ( emacs fcitx4 fcitx5 ibus )" -RESTRICT="!test? ( test )" - -BDEPEND=" - dev-build/gyp - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') - >=dev-libs/protobuf-3.0.0 - app-alternatives/ninja - virtual/pkgconfig - emacs? ( app-editors/emacs:* ) - fcitx4? ( sys-devel/gettext ) - fcitx5? ( sys-devel/gettext ) -" -DEPEND=" - >=dev-cpp/abseil-cpp-20240116.0:= - >=dev-libs/protobuf-3.0.0:= - fcitx4? ( - app-i18n/fcitx:4 - virtual/libintl - ) - fcitx5? ( - app-i18n/fcitx:5 - app-i18n/libime - sys-devel/gettext - virtual/libintl - ) - gui? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtwidgets:5 - ) - ibus? ( - >=app-i18n/ibus-1.4.1 - dev-libs/glib:2 - x11-libs/libxcb - ) - renderer? ( - dev-libs/glib:2 - x11-libs/cairo - x11-libs/gtk+:2 - x11-libs/pango - ) - test? ( - >=dev-cpp/gtest-1.8.0 - dev-libs/jsoncpp - )" -RDEPEND=" - >=dev-cpp/abseil-cpp-20230802.0:=[cxx17(+)] - >=dev-libs/protobuf-3.0.0:= - emacs? ( app-editors/emacs:* ) - fcitx4? ( - app-i18n/fcitx:4 - virtual/libintl - ) - fcitx5? ( - app-i18n/fcitx:5 - app-i18n/libime - sys-devel/gettext - virtual/libintl - ) - gui? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtwidgets:5 - ) - ibus? ( - >=app-i18n/ibus-1.4.1 - dev-libs/glib:2 - x11-libs/libxcb - ) - renderer? ( - dev-libs/glib:2 - x11-libs/cairo - x11-libs/gtk+:2 - x11-libs/pango - ) -" - -S="${WORKDIR}/${P}/src" - -SITEFILE="50${PN}-gentoo.el" - -PATCHES=( - "${WORKDIR}"/mozc-2.28.5029.102-patches - "${FILESDIR}"/mozc-2.28.5029.102-abseil.patch - "${FILESDIR}"/mozc-2.28.5029.102-abseil-20230802.0.patch - "${FILESDIR}"/mozc-2.28.5029.102-abseil-20240116.patch -) - -python_check_deps() { - python_has_version "dev-python/six[${PYTHON_USEDEP}]" -} - -src_unpack() { - if [[ "${PV}" == "9999" ]]; then - git-r3_src_unpack - - if use fcitx4 || use fcitx5; then - local EGIT_SUBMODULES=() - git-r3_fetch https://github.com/fcitx/mozc refs/heads/fcitx - git-r3_checkout https://github.com/fcitx/mozc "${WORKDIR}/fcitx-mozc" - fi - if use fcitx5; then - cp -pr "${WORKDIR}"/fcitx{,5}-mozc || die - fi - else - unpack ${PN}-${PV%%_p*}-${MOZC_DATE}.tar.gz - mv mozc-${MOZC_GIT_REVISION} ${P} || die - - unpack ${PN}-2.28.5029.102-patches.tar.xz - - unpack japanese-usage-dictionary-${JAPANESE_USAGE_DICTIONARY_DATE}.tar.gz - cp -p japanese-usage-dictionary-${JAPANESE_USAGE_DICTIONARY_GIT_REVISION}/usage_dict.txt ${P}/src/third_party/japanese_usage_dictionary || die - - if use fcitx4 || use fcitx5; then - unpack fcitx-${PN}-${PV%%_p*}-${FCITX_MOZC_DATE}.tar.gz - if use fcitx4; then - cp -pr mozc-${FCITX_MOZC_GIT_REVISION} fcitx-${PN} || die - fi - if use fcitx5; then - cp -pr mozc-${FCITX_MOZC_GIT_REVISION} fcitx5-${PN} || die - fi - rm -r mozc-${FCITX_MOZC_GIT_REVISION} || die - fi - fi -} - -src_prepare() { - if use fcitx4; then - cp -pr "${WORKDIR}/fcitx-mozc/src/unix/fcitx" unix || die - PATCHES+=( "${FILESDIR}"/mozc-2.28.5029.102-abseil-20230802.0-fcitx4.patch ) - fi - if use fcitx5; then - cp -pr "${WORKDIR}/fcitx5-mozc/src/unix/fcitx5" unix || die - PATCHES+=( "${FILESDIR}"/mozc-2.28.5029.102-abseil-20230802.0-fcitx5.patch ) - fi - - pushd "${WORKDIR}/${P}" > /dev/null || die - default - popd > /dev/null || die - - sed \ - -e "s/def GypMain(options, unused_args):/def GypMain(options, gyp_args):/" \ - -e "s/RunOrDie(gyp_command + gyp_options)/RunOrDie(gyp_command + gyp_options + gyp_args)/" \ - -e "s/RunOrDie(\[ninja/&, '-j$(makeopts_jobs "${MAKEOPTS}" 999)', '-l$(makeopts_loadavg "${MAKEOPTS}" 0)', '-v'/" \ - -i build_mozc.py || die - - local ar=($(tc-getAR)) - local cc=($(tc-getCC)) - local cxx=($(tc-getCXX)) - local ld=($(tc-getLD)) - local nm=($(tc-getNM)) - local readelf=($(tc-getREADELF)) - - # Use absolute paths. Non-absolute paths are mishandled by GYP. - ar[0]=$(type -P ${ar[0]}) - cc[0]=$(type -P ${cc[0]}) - cxx[0]=$(type -P ${cxx[0]}) - ld[0]=$(type -P ${ld[0]}) - nm[0]=$(type -P ${nm[0]}) - readelf[0]=$(type -P ${readelf[0]}) - - sed \ - -e "s:> "${WORKDIR}/${P}/src/data/dictionary_oss/dictionary00.txt" || die - fi -} - -src_configure() { - if use debug; then - BUILD_TYPE="Debug" - else - BUILD_TYPE="Release" - fi - - local gyp_arguments=() - - if tc-is-gcc; then - gyp_arguments+=(-D compiler_host=gcc -D compiler_target=gcc) - elif tc-is-clang; then - gyp_arguments+=(-D compiler_host=clang -D compiler_target=clang) - else - gyp_arguments+=(-D compiler_host=unknown -D compiler_target=unknown) - fi - - gyp_arguments+=(-D debug_extra_cflags=) - gyp_arguments+=(-D release_extra_cflags=) - - gyp_arguments+=(-D use_fcitx=$(usex fcitx4 YES NO)) - gyp_arguments+=(-D use_fcitx5=$(usex fcitx5 YES NO)) - gyp_arguments+=(-D use_libibus=$(usex ibus 1 0)) - gyp_arguments+=(-D use_libprotobuf=1) - gyp_arguments+=(-D use_system_abseil_cpp=1) - gyp_arguments+=(-D use_system_gtest=$(usex test 1 0)) - gyp_arguments+=(-D use_system_jsoncpp=$(usex test 1 0)) - gyp_arguments+=(-D enable_gtk_renderer=$(usex renderer 1 0)) - - gyp_arguments+=(-D server_dir="${EPREFIX}/usr/libexec/mozc") - gyp_arguments+=(-D document_dir="${EPREFIX}/usr/libexec/mozc/documents") - - if use ibus; then - gyp_arguments+=(-D ibus_mozc_path="${EPREFIX}/usr/libexec/ibus-engine-mozc") - gyp_arguments+=(-D ibus_mozc_icon_path="${EPREFIX}/usr/share/ibus-mozc/product_icon.png") - fi - - unset AR CC CXX LD NM READELF - - edo "${PYTHON}" build_mozc.py gyp \ - --gypdir="${EPREFIX}/usr/bin" \ - --server_dir="${EPREFIX}/usr/libexec/mozc" \ - --verbose \ - $(usex gui "" --noqt) \ - -- "${gyp_arguments[@]}" -} - -src_compile() { - local targets=(server/server.gyp:mozc_server) - if use emacs; then - targets+=(unix/emacs/emacs.gyp:mozc_emacs_helper) - fi - if use fcitx4; then - targets+=(unix/fcitx/fcitx.gyp:fcitx-mozc) - fi - if use fcitx5; then - targets+=(unix/fcitx5/fcitx5.gyp:fcitx5-mozc) - fi - if use gui; then - targets+=(gui/gui.gyp:mozc_tool) - fi - if use ibus; then - targets+=(unix/ibus/ibus.gyp:ibus_mozc) - fi - if use renderer; then - targets+=(renderer/renderer.gyp:mozc_renderer) - fi - if use test; then - targets+=(gyp/tests.gyp:unittests) - fi - - if use ibus; then - GYP_IBUS_FLAG="--use_gyp_for_ibus_build" - fi - - edo "${PYTHON}" build_mozc.py build -c ${BUILD_TYPE} ${GYP_IBUS_FLAG} -v "${targets[@]}" - - if use emacs; then - elisp-compile unix/emacs/*.el - fi -} - -src_test() { - edo "${PYTHON}" build_mozc.py runtests -c ${BUILD_TYPE} --test_jobs 1 -} - -src_install() { - exeinto /usr/libexec/mozc - doexe out_linux/${BUILD_TYPE}/mozc_server - - [[ -s mozcdic-ut.txt ]] && save_config mozcdic-ut.txt - - if use gui; then - doexe out_linux/${BUILD_TYPE}/mozc_tool - fi - - if use renderer; then - doexe out_linux/${BUILD_TYPE}/mozc_renderer - fi - - insinto /usr/libexec/mozc/documents - doins data/installer/credits_en.html - - if use emacs; then - dobin out_linux/${BUILD_TYPE}/mozc_emacs_helper - elisp-install ${PN} unix/emacs/*.{el,elc} - elisp-site-file-install "${FILESDIR}/${SITEFILE}" ${PN} - fi - - if use fcitx4; then - exeinto /usr/$(get_libdir)/fcitx - doexe out_linux/${BUILD_TYPE}/fcitx-mozc.so - - insinto /usr/share/fcitx/addon - doins unix/fcitx/fcitx-mozc.conf - - insinto /usr/share/fcitx/inputmethod - doins unix/fcitx/mozc.conf - - insinto /usr/share/fcitx/mozc/icon - newins data/images/product_icon_32bpp-128.png mozc.png - local image - for image in ../../fcitx-${PN}/src/data/images/unix/ui-*.png; do - newins "${image}" "mozc-${image#../../fcitx-${PN}/src/data/images/unix/ui-}" - done - - local locale mo_file - for mo_file in out_linux/${BUILD_TYPE}/gen/unix/fcitx/po/*.mo; do - locale="${mo_file##*/}" - locale="${locale%.mo}" - insinto /usr/share/locale/${locale}/LC_MESSAGES - newins "${mo_file}" fcitx-mozc.mo - done - fi - - if use fcitx5; then - exeinto /usr/$(get_libdir)/fcitx5 - doexe out_linux/${BUILD_TYPE}/fcitx5-mozc.so - - insinto /usr/share/fcitx5/addon - newins unix/fcitx5/mozc-addon.conf mozc.conf - - insinto /usr/share/fcitx5/inputmethod - doins unix/fcitx5/mozc.conf - - local orgfcitx5="org.fcitx.Fcitx5.fcitx-mozc" - newicon -s 128 data/images/product_icon_32bpp-128.png ${orgfcitx5}.png - newicon -s 128 data/images/product_icon_32bpp-128.png fcitx-mozc.png - newicon -s 32 data/images/unix/ime_product_icon_opensource-32.png ${orgfcitx5}.png - newicon -s 32 data/images/unix/ime_product_icon_opensource-32.png fcitx-mozc.png - for uiimg in ../../fcitx5-mozc/scripts/icons/ui-*.png; do - dimg=${uiimg#*ui-} - newicon -s 48 ${uiimg} ${orgfcitx5}-${dimg/_/-} - newicon -s 48 ${uiimg} fcitx-mozc-${dimg/_/-} - done - - local locale mo_file - for mo_file in unix/fcitx5/po/*.po; do - locale="${mo_file##*/}" - locale="${locale%.po}" - msgfmt ${mo_file} -o ${mo_file/.po/.mo} || die - insinto /usr/share/locale/${locale}/LC_MESSAGES - newins "${mo_file/.po/.mo}" fcitx5-mozc.mo - done - msgfmt --xml -d unix/fcitx5/po/ --template unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml.in -o \ - unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml || die - insinto /usr/share/metainfo - doins unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml - fi - - if use ibus; then - exeinto /usr/libexec - newexe out_linux/${BUILD_TYPE}/ibus_mozc ibus-engine-mozc - - insinto /usr/share/ibus/component - doins out_linux/${BUILD_TYPE}/gen/unix/ibus/mozc.xml - - insinto /usr/share/ibus-mozc - newins data/images/unix/ime_product_icon_opensource-32.png product_icon.png - local image - for image in data/images/unix/ui-*.png; do - newins "${image}" "${image#data/images/unix/ui-}" - done - fi -} - -pkg_postinst() { - elog - elog "ENVIRONMENTAL VARIABLES" - elog - elog "MOZC_SERVER_DIRECTORY" - elog " Mozc server directory" - elog " Value used by default: \"${EPREFIX}/usr/libexec/mozc\"" - elog "MOZC_DOCUMENTS_DIRECTORY" - elog " Mozc documents directory" - elog " Value used by default: \"${EPREFIX}/usr/libexec/mozc/documents\"" - elog "MOZC_CONFIGURATION_DIRECTORY" - elog " Mozc configuration directory" - elog " Value used by default: \"~/.mozc\"" - elog - if use emacs; then - elog - elog "USAGE IN EMACS" - elog - elog "mozc-mode is minor mode to input Japanese text using Mozc server." - elog "mozc-mode can be used via LEIM (Library of Emacs Input Method)." - elog - elog "In order to use mozc-mode by default, the following settings should be added to" - elog "Emacs init file (~/.emacs.d/init.el or ~/.emacs):" - elog - elog " (require 'mozc)" - elog " (set-language-environment \"Japanese\")" - elog " (setq default-input-method \"japanese-mozc\")" - elog - elog "With the above settings, typing C-\\ (which is bound to \"toggle-input-method\"" - elog "by default) will enable mozc-mode." - elog - elog "Alternatively, at run time, after loading mozc.el, mozc-mode can be activated by" - elog "calling \"set-input-method\" and entering \"japanese-mozc\"." - elog - - elisp-site-regen - fi - xdg_pkg_postinst -} - -pkg_postrm() { - if use emacs; then - elisp-site-regen - fi - xdg_pkg_postrm -} diff --git a/app-i18n/mozc/mozc-2.28.5029.102-r4.ebuild b/app-i18n/mozc/mozc-2.28.5029.102-r4.ebuild new file mode 100644 index 000000000000..d370973711fd --- /dev/null +++ b/app-i18n/mozc/mozc-2.28.5029.102-r4.ebuild @@ -0,0 +1,416 @@ +# Copyright 2010-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit desktop edo elisp-common multiprocessing python-any-r1 savedconfig toolchain-funcs xdg + +if [[ "${PV}" == "9999" ]]; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/google/mozc" + EGIT_SUBMODULES=(src/third_party/japanese_usage_dictionary) +else + MOZC_GIT_REVISION="305e9a7374254148474d067c46d55a4ee6081837" + MOZC_DATE="${PV#*_p}" + MOZC_DATE="${MOZC_DATE%%_p*}" + + FCITX_MOZC_GIT_REVISION="242b4f703cba27d4ff4dc123c713a478f964e001" + FCITX_MOZC_DATE="${PV#*_p}" + FCITX_MOZC_DATE="${FCITX_MOZC_DATE#*_p}" + FCITX_MOZC_DATE="${FCITX_MOZC_DATE%%_p*}" + + JAPANESE_USAGE_DICTIONARY_GIT_REVISION="a4a66772e33746b91e99caceecced9a28507e925" + JAPANESE_USAGE_DICTIONARY_DATE="20180701040110" +fi + +DESCRIPTION="Mozc - Japanese input method editor" +HOMEPAGE="https://github.com/google/mozc" +if [[ "${PV}" == "9999" ]]; then + SRC_URI="" +else + SRC_URI=" + https://github.com/google/${PN}/archive/${MOZC_GIT_REVISION}.tar.gz -> ${PN}-${PV%%_p*}-${MOZC_DATE}.tar.gz + https://github.com/hiroyuki-komatsu/japanese-usage-dictionary/archive/${JAPANESE_USAGE_DICTIONARY_GIT_REVISION}.tar.gz -> japanese-usage-dictionary-${JAPANESE_USAGE_DICTIONARY_DATE}.tar.gz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-2.28.5029.102-patches.tar.xz + fcitx5? ( https://github.com/fcitx/${PN}/archive/${FCITX_MOZC_GIT_REVISION}.tar.gz -> fcitx-${PN}-${PV%%_p*}-${FCITX_MOZC_DATE}.tar.gz ) + " +fi + +# Mozc: BSD +# src/data/dictionary_oss: ipadic, public-domain +# src/data/unicode: unicode +# japanese-usage-dictionary: BSD-2 +LICENSE="BSD BSD-2 ipadic public-domain unicode" +SLOT="0" +KEYWORDS="~amd64 ~loong ~x86" +IUSE="debug emacs fcitx5 +gui ibus renderer test" +REQUIRED_USE="|| ( emacs fcitx5 ibus )" +RESTRICT="!test? ( test )" + +BDEPEND=" + dev-build/gyp + $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') + >=dev-libs/protobuf-3.0.0 + app-alternatives/ninja + virtual/pkgconfig + emacs? ( app-editors/emacs:* ) + fcitx5? ( sys-devel/gettext ) +" +DEPEND=" + >=dev-cpp/abseil-cpp-20240116.0:= + >=dev-libs/protobuf-3.0.0:= + fcitx5? ( + app-i18n/fcitx:5 + app-i18n/libime + sys-devel/gettext + virtual/libintl + ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + ) + ibus? ( + >=app-i18n/ibus-1.4.1 + dev-libs/glib:2 + x11-libs/libxcb + ) + renderer? ( + dev-libs/glib:2 + x11-libs/cairo + x11-libs/gtk+:2 + x11-libs/pango + ) + test? ( + >=dev-cpp/gtest-1.8.0 + dev-libs/jsoncpp + )" +RDEPEND=" + >=dev-cpp/abseil-cpp-20230802.0:=[cxx17(+)] + >=dev-libs/protobuf-3.0.0:= + emacs? ( app-editors/emacs:* ) + fcitx5? ( + app-i18n/fcitx:5 + app-i18n/libime + sys-devel/gettext + virtual/libintl + ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + ) + ibus? ( + >=app-i18n/ibus-1.4.1 + dev-libs/glib:2 + x11-libs/libxcb + ) + renderer? ( + dev-libs/glib:2 + x11-libs/cairo + x11-libs/gtk+:2 + x11-libs/pango + ) +" + +S="${WORKDIR}/${P}/src" + +SITEFILE="50${PN}-gentoo.el" + +PATCHES=( + "${WORKDIR}"/mozc-2.28.5029.102-patches + "${FILESDIR}"/mozc-2.28.5029.102-abseil.patch + "${FILESDIR}"/mozc-2.28.5029.102-abseil-20230802.0.patch + "${FILESDIR}"/mozc-2.28.5029.102-abseil-20240116.patch +) + +python_check_deps() { + python_has_version "dev-python/six[${PYTHON_USEDEP}]" +} + +src_unpack() { + if [[ "${PV}" == "9999" ]]; then + git-r3_src_unpack + + if use fcitx5; then + local EGIT_SUBMODULES=() + git-r3_fetch https://github.com/fcitx/mozc refs/heads/fcitx + git-r3_checkout https://github.com/fcitx/mozc "${WORKDIR}/fcitx-mozc" + cp -pr "${WORKDIR}"/fcitx{,5}-mozc || die + fi + else + unpack ${PN}-${PV%%_p*}-${MOZC_DATE}.tar.gz + mv mozc-${MOZC_GIT_REVISION} ${P} || die + + unpack ${PN}-2.28.5029.102-patches.tar.xz + + unpack japanese-usage-dictionary-${JAPANESE_USAGE_DICTIONARY_DATE}.tar.gz + cp -p japanese-usage-dictionary-${JAPANESE_USAGE_DICTIONARY_GIT_REVISION}/usage_dict.txt ${P}/src/third_party/japanese_usage_dictionary || die + + if use fcitx5; then + unpack fcitx-${PN}-${PV%%_p*}-${FCITX_MOZC_DATE}.tar.gz + cp -pr mozc-${FCITX_MOZC_GIT_REVISION} fcitx5-${PN} || die + rm -r mozc-${FCITX_MOZC_GIT_REVISION} || die + fi + fi +} + +src_prepare() { + if use fcitx5; then + cp -pr "${WORKDIR}/fcitx5-mozc/src/unix/fcitx5" unix || die + PATCHES+=( "${FILESDIR}"/mozc-2.28.5029.102-abseil-20230802.0-fcitx5.patch ) + fi + + pushd "${WORKDIR}/${P}" > /dev/null || die + default + popd > /dev/null || die + + sed \ + -e "s/def GypMain(options, unused_args):/def GypMain(options, gyp_args):/" \ + -e "s/RunOrDie(gyp_command + gyp_options)/RunOrDie(gyp_command + gyp_options + gyp_args)/" \ + -e "s/RunOrDie(\[ninja/&, '-j$(makeopts_jobs "${MAKEOPTS}" 999)', '-l$(makeopts_loadavg "${MAKEOPTS}" 0)', '-v'/" \ + -i build_mozc.py || die + + local ar=($(tc-getAR)) + local cc=($(tc-getCC)) + local cxx=($(tc-getCXX)) + local ld=($(tc-getLD)) + local nm=($(tc-getNM)) + local readelf=($(tc-getREADELF)) + + # Use absolute paths. Non-absolute paths are mishandled by GYP. + ar[0]=$(type -P ${ar[0]}) + cc[0]=$(type -P ${cc[0]}) + cxx[0]=$(type -P ${cxx[0]}) + ld[0]=$(type -P ${ld[0]}) + nm[0]=$(type -P ${nm[0]}) + readelf[0]=$(type -P ${readelf[0]}) + + sed \ + -e "s:> "${WORKDIR}/${P}/src/data/dictionary_oss/dictionary00.txt" || die + fi +} + +src_configure() { + if use debug; then + BUILD_TYPE="Debug" + else + BUILD_TYPE="Release" + fi + + local gyp_arguments=() + + if tc-is-gcc; then + gyp_arguments+=(-D compiler_host=gcc -D compiler_target=gcc) + elif tc-is-clang; then + gyp_arguments+=(-D compiler_host=clang -D compiler_target=clang) + else + gyp_arguments+=(-D compiler_host=unknown -D compiler_target=unknown) + fi + + gyp_arguments+=(-D debug_extra_cflags=) + gyp_arguments+=(-D release_extra_cflags=) + + gyp_arguments+=(-D use_fcitx5=$(usex fcitx5 YES NO)) + gyp_arguments+=(-D use_libibus=$(usex ibus 1 0)) + gyp_arguments+=(-D use_libprotobuf=1) + gyp_arguments+=(-D use_system_abseil_cpp=1) + gyp_arguments+=(-D use_system_gtest=$(usex test 1 0)) + gyp_arguments+=(-D use_system_jsoncpp=$(usex test 1 0)) + gyp_arguments+=(-D enable_gtk_renderer=$(usex renderer 1 0)) + + gyp_arguments+=(-D server_dir="${EPREFIX}/usr/libexec/mozc") + gyp_arguments+=(-D document_dir="${EPREFIX}/usr/libexec/mozc/documents") + + if use ibus; then + gyp_arguments+=(-D ibus_mozc_path="${EPREFIX}/usr/libexec/ibus-engine-mozc") + gyp_arguments+=(-D ibus_mozc_icon_path="${EPREFIX}/usr/share/ibus-mozc/product_icon.png") + fi + + unset AR CC CXX LD NM READELF + + edo "${PYTHON}" build_mozc.py gyp \ + --gypdir="${EPREFIX}/usr/bin" \ + --server_dir="${EPREFIX}/usr/libexec/mozc" \ + --verbose \ + $(usex gui "" --noqt) \ + -- "${gyp_arguments[@]}" +} + +src_compile() { + local targets=(server/server.gyp:mozc_server) + if use emacs; then + targets+=(unix/emacs/emacs.gyp:mozc_emacs_helper) + fi + if use fcitx5; then + targets+=(unix/fcitx5/fcitx5.gyp:fcitx5-mozc) + fi + if use gui; then + targets+=(gui/gui.gyp:mozc_tool) + fi + if use ibus; then + targets+=(unix/ibus/ibus.gyp:ibus_mozc) + fi + if use renderer; then + targets+=(renderer/renderer.gyp:mozc_renderer) + fi + if use test; then + targets+=(gyp/tests.gyp:unittests) + fi + + if use ibus; then + GYP_IBUS_FLAG="--use_gyp_for_ibus_build" + fi + + edo "${PYTHON}" build_mozc.py build -c ${BUILD_TYPE} ${GYP_IBUS_FLAG} -v "${targets[@]}" + + if use emacs; then + elisp-compile unix/emacs/*.el + fi +} + +src_test() { + edo "${PYTHON}" build_mozc.py runtests -c ${BUILD_TYPE} --test_jobs 1 +} + +src_install() { + exeinto /usr/libexec/mozc + doexe out_linux/${BUILD_TYPE}/mozc_server + + [[ -s mozcdic-ut.txt ]] && save_config mozcdic-ut.txt + + if use gui; then + doexe out_linux/${BUILD_TYPE}/mozc_tool + fi + + if use renderer; then + doexe out_linux/${BUILD_TYPE}/mozc_renderer + fi + + insinto /usr/libexec/mozc/documents + doins data/installer/credits_en.html + + if use emacs; then + dobin out_linux/${BUILD_TYPE}/mozc_emacs_helper + elisp-install ${PN} unix/emacs/*.{el,elc} + elisp-site-file-install "${FILESDIR}/${SITEFILE}" ${PN} + fi + + if use fcitx5; then + exeinto /usr/$(get_libdir)/fcitx5 + doexe out_linux/${BUILD_TYPE}/fcitx5-mozc.so + + insinto /usr/share/fcitx5/addon + newins unix/fcitx5/mozc-addon.conf mozc.conf + + insinto /usr/share/fcitx5/inputmethod + doins unix/fcitx5/mozc.conf + + local orgfcitx5="org.fcitx.Fcitx5.fcitx-mozc" + newicon -s 128 data/images/product_icon_32bpp-128.png ${orgfcitx5}.png + newicon -s 128 data/images/product_icon_32bpp-128.png fcitx-mozc.png + newicon -s 32 data/images/unix/ime_product_icon_opensource-32.png ${orgfcitx5}.png + newicon -s 32 data/images/unix/ime_product_icon_opensource-32.png fcitx-mozc.png + for uiimg in ../../fcitx5-mozc/scripts/icons/ui-*.png; do + dimg=${uiimg#*ui-} + newicon -s 48 ${uiimg} ${orgfcitx5}-${dimg/_/-} + newicon -s 48 ${uiimg} fcitx-mozc-${dimg/_/-} + done + + local locale mo_file + for mo_file in unix/fcitx5/po/*.po; do + locale="${mo_file##*/}" + locale="${locale%.po}" + msgfmt ${mo_file} -o ${mo_file/.po/.mo} || die + insinto /usr/share/locale/${locale}/LC_MESSAGES + newins "${mo_file/.po/.mo}" fcitx5-mozc.mo + done + msgfmt --xml -d unix/fcitx5/po/ --template unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml.in -o \ + unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml || die + insinto /usr/share/metainfo + doins unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml + fi + + if use ibus; then + exeinto /usr/libexec + newexe out_linux/${BUILD_TYPE}/ibus_mozc ibus-engine-mozc + + insinto /usr/share/ibus/component + doins out_linux/${BUILD_TYPE}/gen/unix/ibus/mozc.xml + + insinto /usr/share/ibus-mozc + newins data/images/unix/ime_product_icon_opensource-32.png product_icon.png + local image + for image in data/images/unix/ui-*.png; do + newins "${image}" "${image#data/images/unix/ui-}" + done + fi +} + +pkg_postinst() { + elog + elog "ENVIRONMENTAL VARIABLES" + elog + elog "MOZC_SERVER_DIRECTORY" + elog " Mozc server directory" + elog " Value used by default: \"${EPREFIX}/usr/libexec/mozc\"" + elog "MOZC_DOCUMENTS_DIRECTORY" + elog " Mozc documents directory" + elog " Value used by default: \"${EPREFIX}/usr/libexec/mozc/documents\"" + elog "MOZC_CONFIGURATION_DIRECTORY" + elog " Mozc configuration directory" + elog " Value used by default: \"~/.mozc\"" + elog + if use emacs; then + elog + elog "USAGE IN EMACS" + elog + elog "mozc-mode is minor mode to input Japanese text using Mozc server." + elog "mozc-mode can be used via LEIM (Library of Emacs Input Method)." + elog + elog "In order to use mozc-mode by default, the following settings should be added to" + elog "Emacs init file (~/.emacs.d/init.el or ~/.emacs):" + elog + elog " (require 'mozc)" + elog " (set-language-environment \"Japanese\")" + elog " (setq default-input-method \"japanese-mozc\")" + elog + elog "With the above settings, typing C-\\ (which is bound to \"toggle-input-method\"" + elog "by default) will enable mozc-mode." + elog + elog "Alternatively, at run time, after loading mozc.el, mozc-mode can be activated by" + elog "calling \"set-input-method\" and entering \"japanese-mozc\"." + elog + + elisp-site-regen + fi + xdg_pkg_postinst +} + +pkg_postrm() { + if use emacs; then + elisp-site-regen + fi + xdg_pkg_postrm +} -- cgit v1.2.3