File mozc.spec of Package mozc

#
# spec file for package mozc
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define with_fcitx 1
%if %{with_fcitx}
%define fcitx_icon_dir %{_datadir}/fcitx/mozc/icon/
%define fcitx_addon_dir %{_datadir}/fcitx/addon/
%define fcitx_inputmethod_dir %{_datadir}/fcitx/inputmethod/
%define fcitx_lib_dir %{_libdir}/fcitx/
%endif

%define ibus_mozc_path %{_libdir}/ibus-mozc/ibus-engine-mozc
%define ibus_mozc_icon_path %{_datadir}/ibus-mozc/product_icon.png
%define document_dir %{_docdir}/ibus-mozc
%define zinnia_model_path %{_datadir}/zinnia/model/tomoe/handwriting-ja.model

Name:           mozc
Version:        1.11.1522.102
Release:        0
Summary:        Mozc - Japanese Input Method for Chromium OS, Mac and Linux
License:        BSD-3-Clause
Group:          System/I18n/Japanese

Url:            http://code.google.com/p/mozc
Source0:        %{name}-%{version}.tar.bz2
Source1:        README.SUSE
Source2:        fcitx-mozc-icons.tar.gz
# gyp is not included from 1.11.1522.102
# License: BSD-3-Clause
# svn export http://gyp.googlecode.com/svn/trunk/@r1665 gyp
Source3:        gyp-r1665.tar.bz2
Source4:        ibus-setup-mozc-jp.desktop.in
%if %{with_fcitx}
# PATCH-FEATURE-UPSTREAM i@marguerite.su - add fcitx as mozc module
Patch0:         fcitx-mozc-1.11.1522.102.1.patch
%endif
# PATCH-FIX-UPSTREAM ftake@geeko.jp bnc#847718
Patch1:         support-input-purpose.patch
# PATCH-FIX-UPSTREAM ftake@geeko.jp
Patch2:         fix-initial-input-mode.patch
# PATCH-FEATURE-OPENSUSE ftake@geeko.jp
Patch3:         ibus-provide-layout-variations.patch

BuildRequires:  libopenssl-devel
BuildRequires:  pkgconfig
BuildRequires:  protobuf-devel
BuildRequires:  python
BuildRequires:  update-desktop-files
BuildRequires:  zlib-devel
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
Mozc is a Japanese Input Method Editor (IME) designed for
multi-platform such as Chromium OS, Mac and Linux. This open-source
project originates from Google Japanese Input.

%package -n ibus-mozc
Summary:        The Mozc engine for IBus
Group:          System/I18n/Japanese
BuildRequires:  ibus-devel
Requires:       ibus >= 1.4.1
Requires:       mozc = %{version}
Requires:       mozc-gui-tools = %{version}
Recommends:     ibus-mozc-candidate-window
Provides:       locale(ibus:ja)

%description -n ibus-mozc
The Mozc engine for IBus provides a Japanese input method.

%package -n ibus-mozc-candidate-window
Summary:        An optional candidate window for ibus-mozc
Group:          System/I18n/Japanese
BuildRequires:  gtk2-devel
BuildRequires:  libglib-2_0-0
Requires:       ibus-mozc = %{version}
Provides:       locale(ibus:ja)

%description -n ibus-mozc-candidate-window
This package provides an advanced candidate window for IBus. The
window shows examples of selected words.

%if %{with_fcitx}
%package -n fcitx-mozc
Summary:        The Mozc backend for Fcitx
Group:          System/I18n/Japanese
BuildRequires:  fcitx-devel
Requires:       fcitx
Requires:       mozc = %{version}
Requires:       mozc-gui-tools = %{version}
Provides:       locale(fcitx:ja)

%description -n fcitx-mozc
The Mozc backend for Fcitx provides a Japanese input method.
%endif

%package gui-tools
Summary:        GUI tools for mozc
Group:          System/I18n/Japanese
BuildRequires:  libqt4-devel
BuildRequires:  zinnia-devel
Requires:       mozc = %{version}
Requires:       zinnia
Requires:       zinnia-tomoe

%description gui-tools
This package provides config, word-register, dictioaly,
character-palette, handwriting tools.

%prep
%setup -q
%if %{with_fcitx}
%patch0 -p2
%endif

%patch1 -p0
%patch2 -p0
%patch3 -p0

cp %{SOURCE1} .

# extract gyp
pushd third_party
tar xvf %{SOURCE3}
popd

sed -e 's|@libdir@|%{_libdir}|g' %{SOURCE4} > ibus-setup-mozc-jp.desktop

%build
%define target Release
export QTDIR=%{_libdir}/qt4

# -Wall from RPM_OPT_FLAGS overrides -Wno-* options from gyp.
# gyp inserts -Wall to the head of release_extra_flags.
flags=${RPM_OPT_FLAGS/-Wall/}

export GYP_DEFINES='ibus_mozc_path=%{ibus_mozc_path} ibus_mozc_icon_path=%{ibus_mozc_icon_path} use_libprotobuf=1 document_dir=%{document_dir} zinnia_model_file=%{zinnia_model_path} release_extra_cflags="'$flags'"'

python build_mozc.py gyp --server_dir=%{_libdir}/mozc
python build_mozc.py build_tools -c %{target} %{?_smp_mflags}
python build_mozc.py build -c %{target}  %{?_smp_mflags} \
	unix/ibus/ibus.gyp:ibus_mozc \
%if %{with_fcitx}
	unix/fcitx/fcitx.gyp:fcitx-mozc \
%endif
	server/server.gyp:mozc_server \
	unix/emacs/emacs.gyp:mozc_emacs_helper \
	gui/gui.gyp:mozc_tool \
	renderer/renderer.gyp:mozc_renderer

%define output_dir out_linux/%{target}

%install

install -m755 -d %{buildroot}%{_libdir}/ibus-mozc
install -m755 %{output_dir}/ibus_mozc %{buildroot}%{_libdir}/ibus-mozc/ibus-engine-mozc
install -m755 -d %{buildroot}%{_datadir}/ibus/component
install -m644 %{output_dir}/obj/gen/unix/ibus/mozc.xml %{buildroot}%{_datadir}/ibus/component/mozc.xml
install -m755 -d %{buildroot}%{_datadir}/ibus-mozc
#{__install} -m755 -d %{buildroot}%{_datadir}/ibus-mozc/setup
install -m644 data/images/unix/ime_product_icon_opensource-32.png %{buildroot}%{_datadir}/ibus-mozc/product_icon.png
install -m644 data/images/unix/ui-tool.png %{buildroot}%{_datadir}/ibus-mozc/tool.png
install -m644 data/images/unix/ui-properties.png %{buildroot}%{_datadir}/ibus-mozc/properties.png
install -m644 data/images/unix/ui-dictionary.png %{buildroot}%{_datadir}/ibus-mozc/dictionary.png
install -m644 data/images/unix/ui-direct.png %{buildroot}%{_datadir}/ibus-mozc/direct.png
install -m644 data/images/unix/ui-hiragana.png %{buildroot}%{_datadir}/ibus-mozc/hiragana.png
install -m644 data/images/unix/ui-katakana_half.png %{buildroot}%{_datadir}/ibus-mozc/katakana_half.png
install -m644 data/images/unix/ui-katakana_full.png %{buildroot}%{_datadir}/ibus-mozc/katakana_full.png
install -m644 data/images/unix/ui-alpha_half.png %{buildroot}%{_datadir}/ibus-mozc/alpha_half.png
install -m644 data/images/unix/ui-alpha_full.png %{buildroot}%{_datadir}/ibus-mozc/alpha_full.png

install -m755 -d %{buildroot}%{_datadir}/applications
install -m644 ibus-setup-mozc-jp.desktop %{buildroot}%{_datadir}/applications/ibus-setup-mozc-jp.desktop
%suse_update_desktop_file ibus-setup-mozc-jp System Utility settings

# for provide-layout-variations patch
ln -s ibus-setup-mozc-jp.desktop %{buildroot}%{_datadir}/applications/ibus-setup-mozc-jp-jp.desktop
%suse_update_desktop_file ibus-setup-mozc-jp-jp System Utility settings
ln -s ibus-setup-mozc-jp.desktop %{buildroot}%{_datadir}/applications/ibus-setup-mozc-us.desktop
%suse_update_desktop_file ibus-setup-mozc-us System Utility settings
ln -s ibus-setup-mozc-jp.desktop %{buildroot}%{_datadir}/applications/ibus-setup-mozc-dv.desktop
%suse_update_desktop_file ibus-setup-mozc-dv System Utility settings

%if %{with_fcitx}
# Install Fcitx module
for mofile in out_linux/Release/obj/gen/unix/fcitx/po/*.mo
do
	filename=`basename $mofile`
	lang=${filename/.mo/}
	install -D -m 644 "$mofile" "%{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES/fcitx-mozc.mo"
done
install -m755 -d %{buildroot}%{fcitx_addon_dir}
install -m755 -d %{buildroot}%{fcitx_inputmethod_dir}
install -m755 -d %{buildroot}%{fcitx_icon_dir}
install -m755 -d %{buildroot}%{fcitx_lib_dir}
install -m 755 %{output_dir}/fcitx-mozc.so %{buildroot}%{fcitx_lib_dir}
install -m 644 unix/fcitx/fcitx-mozc.conf %{buildroot}%{fcitx_addon_dir}
install -m 644 unix/fcitx/mozc.conf %{buildroot}%{fcitx_inputmethod_dir}
install -m 644 data/images/product_icon_32bpp-128.png %{buildroot}%{fcitx_icon_dir}/mozc.png
install -m 644 data/images/unix/ui-alpha_full.png %{buildroot}%{fcitx_icon_dir}/mozc-alpha_full.png
install -m 644 data/images/unix/ui-alpha_half.png %{buildroot}%{fcitx_icon_dir}/mozc-alpha_half.png
install -m 644 data/images/unix/ui-direct.png %{buildroot}%{fcitx_icon_dir}/mozc-direct.png
install -m 644 data/images/unix/ui-hiragana.png %{buildroot}%{fcitx_icon_dir}/mozc-hiragana.png
install -m 644 data/images/unix/ui-katakana_full.png %{buildroot}%{fcitx_icon_dir}/mozc-katakana_full.png
install -m 644 data/images/unix/ui-katakana_half.png %{buildroot}%{fcitx_icon_dir}/mozc-katakana_half.png
install -m 644 data/images/unix/ui-dictionary.png %{buildroot}%{fcitx_icon_dir}/mozc-dictionary.png
install -m 644 data/images/unix/ui-properties.png %{buildroot}%{fcitx_icon_dir}/mozc-properties.png
install -m 644 data/images/unix/ui-tool.png %{buildroot}%{fcitx_icon_dir}/mozc-tool.png

# fix mozc icons. they're too ugly that even lose face for openSUSE.
cp -r %{SOURCE2} ./
tar -xzf fcitx-mozc-icons.tar.gz
cp -r fcitx-mozc-icons/* %{buildroot}%{fcitx_icon_dir}/
rm -rf fcitx-mozc-icons
rm -rf fcitx-mozc-icons.tar.gz

%endif

install -m755 -d %{buildroot}%{_libdir}/mozc
install -m755 %{output_dir}/mozc_server %{buildroot}%{_libdir}/mozc
install -m755 %{output_dir}/mozc_tool %{buildroot}%{_libdir}/mozc
install -m755 %{output_dir}/mozc_renderer %{buildroot}%{_libdir}/mozc

install -m755 -d %{buildroot}%{_bindir}
install -m755 %{output_dir}/mozc_emacs_helper %{buildroot}%{_bindir}
# install only for emacs since xemacs is not supported
install -m755 -d %{buildroot}%{_datadir}/emacs/site-lisp
install -m644 unix/emacs/mozc.el %{buildroot}%{_datadir}/emacs/site-lisp/

chmod 644 data/installer/credits_*.html

%if %{with_fcitx}
%find_lang fcitx-mozc %no_lang_C
%endif

%files
%defattr(-, root, root)
%doc data/installer/credits_en.html
%doc data/installer/credits_ja.html
%doc README.SUSE
%dir %{_libdir}/mozc
%{_libdir}/mozc/mozc_server
%{_bindir}/mozc_emacs_helper
%dir %{_datadir}/emacs/site-lisp/
%{_datadir}/emacs/site-lisp/mozc.el

%files gui-tools
%defattr(-, root, root)
%{_libdir}/mozc/mozc_tool

%files -n ibus-mozc
%defattr(-, root, root)
%dir %{_libdir}/ibus-mozc/
%{_libdir}/ibus-mozc/ibus-engine-mozc
%{_datadir}/applications/ibus-setup-mozc-jp.desktop
%{_datadir}/applications/ibus-setup-mozc-jp-jp.desktop
%{_datadir}/applications/ibus-setup-mozc-us.desktop
%{_datadir}/applications/ibus-setup-mozc-dv.desktop
%dir %{_datadir}/ibus/component/
%{_datadir}/ibus/component/mozc.xml
%dir %{_datadir}/ibus-mozc/
%{_datadir}/ibus-mozc/product_icon.png
%{_datadir}/ibus-mozc/tool.png
%{_datadir}/ibus-mozc/properties.png
%{_datadir}/ibus-mozc/dictionary.png
%{_datadir}/ibus-mozc/direct.png
%{_datadir}/ibus-mozc/hiragana.png
%{_datadir}/ibus-mozc/katakana_half.png
%{_datadir}/ibus-mozc/katakana_full.png
%{_datadir}/ibus-mozc/alpha_half.png
%{_datadir}/ibus-mozc/alpha_full.png

%files -n ibus-mozc-candidate-window
%defattr(-, root, root)
%{_libdir}/mozc/mozc_renderer

%if %{with_fcitx}
%files -n fcitx-mozc -f fcitx-mozc.lang
%defattr(-,root,root)

%{fcitx_lib_dir}/fcitx-mozc.so
%{fcitx_addon_dir}/fcitx-mozc.conf
%dir %{fcitx_inputmethod_dir}
%{fcitx_inputmethod_dir}/mozc.conf
%dir %{_datadir}/fcitx/mozc
%dir %{fcitx_icon_dir}
%{fcitx_icon_dir}/mozc.png
%{fcitx_icon_dir}/mozc-alpha_full.png
%{fcitx_icon_dir}/mozc-alpha_half.png
%{fcitx_icon_dir}/mozc-direct.png
%{fcitx_icon_dir}/mozc-hiragana.png
%{fcitx_icon_dir}/mozc-katakana_full.png
%{fcitx_icon_dir}/mozc-katakana_half.png
%{fcitx_icon_dir}/mozc-dictionary.png
%{fcitx_icon_dir}/mozc-properties.png
%{fcitx_icon_dir}/mozc-tool.png
%endif

%changelog
openSUSE Build Service is sponsored by