diff --git a/srcpkgs/emacs-mozc b/srcpkgs/emacs-mozc new file mode 120000 index 0000000000..6874ca426b --- /dev/null +++ b/srcpkgs/emacs-mozc @@ -0,0 +1 @@ +mozc \ No newline at end of file diff --git a/srcpkgs/ibus-mozc b/srcpkgs/ibus-mozc new file mode 120000 index 0000000000..6874ca426b --- /dev/null +++ b/srcpkgs/ibus-mozc @@ -0,0 +1 @@ +mozc \ No newline at end of file diff --git a/srcpkgs/mozc/emacs-mozc.INSTALL.msg b/srcpkgs/mozc/emacs-mozc.INSTALL.msg new file mode 100644 index 0000000000..08e953d39d --- /dev/null +++ b/srcpkgs/mozc/emacs-mozc.INSTALL.msg @@ -0,0 +1,7 @@ +To enable Mozc mode, add this to your ~/.emacs.d/init.el file: + +(set-language-environment "Japanese") +(require 'mozc) ; or (load-file "/path/to/mozc.el") +(setq default-input-method "japanese-mozc") + +C-\ is bound to `toggle-input-method' by default. diff --git a/srcpkgs/mozc/ibus-mozc.INSTALL.msg b/srcpkgs/mozc/ibus-mozc.INSTALL.msg new file mode 100644 index 0000000000..527683859b --- /dev/null +++ b/srcpkgs/mozc/ibus-mozc.INSTALL.msg @@ -0,0 +1,7 @@ +ibus-mozc always starts up in Direct Input mode. If you prefer Hiragana +mode by default, set the IBUS_MOZC_DEFAULT_HIRAGANA environment variable +for ibus-daemon, e.g.: + +IBUS_MOZC_DEFAULT_HIRAGANA= ibus-daemon --xim -d + +This is a Void Linux extension. diff --git a/srcpkgs/mozc/patches/cross.patch b/srcpkgs/mozc/patches/cross.patch new file mode 100644 index 0000000000..17d47a900e --- /dev/null +++ b/srcpkgs/mozc/patches/cross.patch @@ -0,0 +1,40 @@ +--- mozc/src/gyp/common.gypi ++++ mozc/src/gyp/common.gypi +@@ -444,12 +444,12 @@ + }], + ['target_platform=="Linux"', { + 'make_global_settings': [ +- ['AR', ' ++ + // On Gnome Shell with IBus 1.5, new property named "symbol" is used to + // represent the mode indicator on the system panel. Note that "symbol" does + // not exist in IBus 1.4.x. +@@ -80,7 +82,7 @@ bool GetDisabled(IBusEngine *engine) { + // On IBus 1.4.x, IBus expects that an IME should always be turned on and + // IME on/off keys are handled by IBus itself rather than each IME. + #if IBUS_CHECK_VERSION(1, 5, 0) +-const bool kActivatedOnLaunch = false; ++const bool kActivatedOnLaunch = !!::std::getenv("IBUS_MOZC_DEFAULT_HIRAGANA"); + #else + const bool kActivatedOnLaunch = true; + #endif // IBus>=1.5.0 diff --git a/srcpkgs/mozc/patches/no-parallel.patch b/srcpkgs/mozc/patches/no-parallel.patch new file mode 100644 index 0000000000..14b23367f0 --- /dev/null +++ b/srcpkgs/mozc/patches/no-parallel.patch @@ -0,0 +1,10 @@ +--- mozc/src/build_mozc.py ++++ mozc/src/build_mozc.py +@@ -728,6 +728,7 @@ def GypMain(options, unused_args): + gyp_options.extend(['--generator-output=.']) + short_basename = GetBuildShortBaseName(target_platform) + gyp_options.extend(['-G', 'output_dir=%s' % short_basename]) ++ gyp_options.extend(['--no-parallel']) # Parallel generation requires writable /dev/shm + + # Enable cross-compile + # TODO(yukawa): Enable GYP_CROSSCOMPILE for Windows. diff --git a/srcpkgs/mozc/template b/srcpkgs/mozc/template new file mode 100644 index 0000000000..9ccdb061ae --- /dev/null +++ b/srcpkgs/mozc/template @@ -0,0 +1,90 @@ +# Template file for 'mozc' +pkgname=mozc +version=2.20.2677.102 +revision=1 +hostmakedepends="ninja pkg-config protobuf-devel python qt5-devel" +makedepends="gtk+-devel ibus-devel libzinnia-devel protobuf-devel qt5-devel" +depends="tegaki-zinnia-japanese>=0.3" +maintainer="Matthias von Faber " +homepage="https://github.com/google/mozc" +license="3-clause-BSD" +short_desc="Japanese IME (Open Source version of Google Japanese Input)" +build_wrksrc="mozc/src" +create_wrksrc=yes +distfiles=" + https://github.com/google/mozc/archive/fc687ac2266c54f0c2f58b4c482486618d68786f.tar.gz + https://github.com/bnoordhuis/gyp/archive/4ec6c4e3a94bd04a6da2858163d40b2429b8aad1.tar.gz + https://github.com/hiroyuki-komatsu/japanese-usage-dictionary/archive/e5b3425575734c323e1d947009dd74709437b684.tar.gz +" +checksum=" + 04749ecfe9a2a039ccb6aae75baee04a7164682470fb9f272eedff803826a55d + 009992eae3393ba7b2d2ba6249dbb3ac44157313f10e8add4d3086aef772c04b + 0b6efee0eebac2c1a8eeea333278aa40fcef7846bba9a379962c6e567e7e3dc1 +" + +post_extract() { + ln -s mozc-* mozc + + # symlink "submodules" into place + for _src_dest in gyp japanese-usage-dictionary:japanese_usage_dictionary; do + _src=${_src_dest%:*} + _dst=mozc/src/third_party/${_src_dest#*:} + rmdir $_dst + ln -sr $_src-* $_dst + done +} + +do_configure() { + case "$XBPS_TARGET_MACHINE" in + *-musl) sed -i -e 's|PTHREAD_MUTEX_RECURSIVE_NP|PTHREAD_MUTEX_RECURSIVE|g' base/mutex.cc ;; + esac +} + +do_build() { + GYP_DEFINES=" + document_dir=/usr/share/licenses/${pkgname} + use_libprotobuf=1 + use_libzinnia=1 + " python build_mozc.py gyp --target_platform=Linux + python build_mozc.py 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 + + sed -i 's|/usr/libexec/|/usr/lib/ibus-mozc/|g' out_linux/Release/gen/unix/ibus/mozc.xml +} + +do_install() { + install -D -m 755 out_linux/Release/mozc_server "${PKGDESTDIR}/usr/lib/mozc/mozc_server" + install -m 755 out_linux/Release/mozc_tool "${PKGDESTDIR}/usr/lib/mozc/mozc_tool" + + head -n 29 server/mozc_server.cc > LICENSE + for i in LICENSE data/installer/*.html; do + vlicense "$i" + done +} + +ibus-mozc_package() { + short_desc="Mozc engine for IBus - Client of the Mozc input method" + depends="${sourcepkg}-${version}_${revision} ibus>=1.5.14" + pkg_install() { + install -D -m 755 out_linux/Release/ibus_mozc "${PKGDESTDIR}/usr/lib/ibus-mozc/ibus-engine-mozc" + install -D -m 644 out_linux/Release/gen/unix/ibus/mozc.xml "${PKGDESTDIR}/usr/share/ibus/component/mozc.xml" + install -D -m 644 data/images/unix/ime_product_icon_opensource-32.png "${PKGDESTDIR}/usr/share/ibus-mozc/product_icon.png" + for i in data/images/unix/ui-*.png; do + install -m 644 "$i" "${PKGDESTDIR}/usr/share/ibus-mozc/${i##*/ui-}" + done + install -D -m 755 out_linux/Release/mozc_renderer "${PKGDESTDIR}/usr/lib/mozc/mozc_renderer" + } +} + +emacs-mozc_package() { + pkgdesc="Mozc for Emacs" + depends="${sourcepkg}-${version}_${revision} emacs" + pkg_install() { + install -D -m 755 out_linux/Release/mozc_emacs_helper "${PKGDESTDIR}/usr/bin/mozc_emacs_helper" + install -D -m 644 unix/emacs/mozc.el "${PKGDESTDIR}/usr/share/emacs/site-lisp/emacs-mozc/mozc.el" + } +}