%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}

%define	ver 1.5.10
%define	rel 2

%define gjsver 3.4.1.20130115

%if "%{?_dist_release}" >= "vl7"
%define have_gjsfile 0
%define have_libxkbfile 1
%else
%define have_gjsfile 0
%define have_xkbfile 0
%endif

%define ibus_api_version 1.0

Summary: Intelligent Input Bus for Linux / Unix OS
Name: ibus
Version: %{ver}
Release: %{rel}%{?_dist_release}
License: LGPL
Group: System Environment/Libraries 
URL: http://code.google.com/p/ibus/

Source0: %{name}-%{version}.tar.gz
Source1: http://fujiwara.fedorapeople.org/ibus/gnome-shell/ibus-gjs-%{gjsver}.tar.gz


# add Shift+space as trigger key instead of Ctrl+space
Patch200: ibus-1.5.9-vine.patch

Requires: gtk2, pyxdg, iso-codes, dbus-python >= 0.83.0
Requires: notify-python
Requires: librsvg2
Requires: pygobject3

Requires(post): glib2
Requires(post,postun): coreutils, gtk2
Requires(postun,posttrans): glib2

Obsoletes: ibus-gnome3 < %{version}-%{release}

BuildRequires: desktop-file-utils
BuildRequires: gettext >= 0.16.1, gtk2-devel, intltool >= 0.40.0
BuildRequires: dbus-devel, dbus-python-devel >= 0.83.0
BuildRequires: glib2-devel >= 2.0.0
BuildRequires: iso-codes
BuildRequires: gtk3-devel >= 3.0.0
BuildRequires: libnotify-devel
BuildRequires: vala
BuildRequires: vala-devel
BuildRequires: vala-tools
%if %have_gjsfile
BuildRequires: gjs
BuildRequires: gnome-shell
%endif
%if %have_libxkbfile
BuildRequires: libxkbfile-devel
%endif
BuildRequires: GConf2-devel
BuildRequires: dconf-devel
BuildRequires: dbus-x11
BuildRequires: perl >= 5.8.1 perl-XML-Parser
Buildrequires: python-devel >= 2.5
Buildroot: %{_tmppath}/%{name}-%{version}-root
Provides: iBus

Vendor: Project Vine
Distribution: Vine Linux
Packager: iwaim

%description
IBus is an Intelligent Input Bus. It is a new input framework for Linux OS.
It provides full featured and user friendly input method user interface.
It also may help developers to develop input method easily.

%package devel
Summary: Header files for iBus
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires:   glib2-devel
Requires:   dbus-devel
Requires:   vala

%description devel
Header files for iBus.

%package gtk3
Summary: IBus im module for gtk3
Summary(ja): gtk3 用 IBus IMモジュール
Group: System Environment/Libraries
Requires: %{name} = %{version}-%{release}
Requires(post):	gtk3
Requires(preun): gtk3

%description gtk3
The ibus-gtk3 contains ibus im module for gtk3.

%package gnome3
Summary:    IBus gnome-shell-extension for GNOME3
Summary(ja): GNOME3 用 IBus gnome-shell 拡張
Group:      System Environment/Libraries
Requires:   %{name} = %{version}-%{release}
Requires:   gnome-shell

%description gnome3
This is a transitional package which allows users to try out new IBus
GUI for GNOME3 in development.  Note that this package will be marked
as obsolete once the integration has completed in the GNOME3 upstream.


## to build compat32 for x86_64 architecture support
%package -n compat32-%{name}
Summary:        IBus im module for gtk2
Summary(ja):    IBus gtk2 用 IM モジュール
Group:          System Environment/Libraries
Requires:       %{name} = %{version}-%{release}
Requires(post): compat32-gtk2
Requires(preun): compat32-gtk2

%description -n compat32-%{name}
The compat32-ibus contains ibus im module for gtk2.

%package -n compat32-%{name}-gtk3
Summary: Ibus im module for gtk3
Group: System Environment/Libraries
Requires: compat32-%{name} = %{version}-%{release}
Requires(post): compat32-gtk3
Requires(preun): compat32-gtk3

%description -n compat32-%{name}-gtk3
The compat32-ibus-gtk3 contains ibus im module for gtk3.

%prep
%setup -q
%if %have_gjsfile
zcat %SOURCE1 | tar xf -
%endif

%patch200 -p1 -b .vine

#%if %have_libxkbfile
#autoreconf -if
#%endif
%configure \
	--disable-static \
	--enable-vala=yes \
	--enable-gtk3 \
	--enable-gtk2 \
	--with-gtk2-im-module-dir=%{_libdir}/gtk-2.0/immodules \
	--enable-xim \
	--disable-gtk-doc \
	--enable-surrounding-text \
	--with-no-snooper-apps='' \
	--enable-python-library \
	--enable-dconf \
	--disable-gconf \
	--enable-introspection
	

%build
%if %have_libxkbfile
make -C ui/gtk3 maintainer-clean-generic
%endif
# make -C po update-gmo
make %{?_smp_mflags}


%if %have_gjsfile
d=`basename %SOURCE1 .tar.gz`
cd $d
export PKG_CONFIG_PATH=..:/usr/lib64/pkgconfig:/usr/lib/pkgconfig
%configure \
  --with-gnome-shell-version="3.5.3,3.4,3.3.92,3.3.90,3.3.5,3.3.4,3.3.3,3.2" \
  --with-gjs-version="1.33.3,1.32,1.31.22,1.31.20,1.31.10,1.31.6,1.31.11,1.30"
make %{?_smp_mflags}
cd ..
%endif


%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} install

rm -rf %{buildroot}%{_libdir}/libibus-%{ibus_api_version}.la
rm -rf %{buildroot}%{_libdir}/gtk-2.0/immodules/im-ibus.la
rm -rf %{buildroot}%{_libdir}/gtk-3.0/3.0.0/immodules/im-ibus.la

#%{_bindir}/desktop-file-install \
#  --vendor="" --dir=%{buildroot}/%{_datadir}/applications \
#  --add-category=Applications \
#  --add-category=X-GNOME-PersonalSettings \
#  %{buildroot}/%{_datadir}/applications/ibus-setup.desktop

rm -rf %{buildroot}%{_sysconfdir}/xdg/autostart/ibus.desktop

%if %have_gjsfile
# https://bugzilla.redhat.com/show_bug.cgi?id=657165
d=`basename %SOURCE1 .tar.gz`
cd $d
make DESTDIR=$RPM_BUILD_ROOT install
#rm -f $RPM_BUILD_ROOT%{_datadir}/locale/*/LC_MESSAGES/ibus-gjs.mo
cd ..
%endif


%find_lang %{name}10

%clean 
rm -rf %{buildroot}

%check
#make check
#%{_bindir}/desktop-file-validate %{buildroot}/%{_datadir}/applications/ibus.desktop
%{_bindir}/desktop-file-validate %{buildroot}/%{_datadir}/applications/ibus-setup.desktop


%post
/sbin/ldconfig
if [ -x %{_bindir}/update-desktop-database ] ; then
%{_bindir}/update-desktop-database %{_datadir}/applications -q
fi
%{_bindir}/gtk-query-immodules-2.0 > %{_sysconfdir}/gtk-2.0/%{_arch}/gtk.immodules
# recreate icon cache
touch --no-create %{_datadir}/icons/hicolor || :
[ -x %{_bindir}/gtk-update-icon-cache ] && \
  %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :

%postun
/sbin/ldconfig
%{_bindir}/gtk-query-immodules-2.0 > %{_sysconfdir}/gtk-2.0/%{_arch}/gtk.immodules
if [ -x %{_bindir}/update-desktop-database ] ; then
%{_bindir}/update-desktop-database %{_datadir}/applications -q
fi
# recreate icon cache
touch --no-create %{_datadir}/icons/hicolor || :
[ -x %{_bindir}/gtk-update-icon-cache ] && \
  %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
if [ "$1" -eq 0 ]; then
  glib-compile-schemas %{_datadir}/glib-2.0/schemas ||:
  dconf update
  if [ -f %{_sysconfdir}/dconf/db/ibus ] ; then
      rm -f %{_sysconfdir}/dconf/db/ibus
  fi
fi

%posttrans
glib-compile-schemas %{_datadir}/glib-2.0/schemas ||:
dconf update

%post gtk3
%{_bindir}/gtk-query-immodules-3.0 --update-cache

%postun gtk3
%{_bindir}/gtk-query-immodules-3.0 --update-cache

%post -n compat32-%{name}
/sbin/ldconfig
%{_bindir}/gtk-query-immodules-2.0-32 > %{_sysconfdir}/gtk-2.0/i386/gtk.immodules

%postun -n compat32-%{name}
/sbin/ldconfig
%{_bindir}/gtk-query-immodules-2.0-32 > %{_sysconfdir}/gtk-2.0/i386/gtk.immodules

%post -n compat32-%{name}-gtk3
%{_bindir}/gtk-query-immodules-3.0-32 --update-cache

%postun -n compat32-%{name}-gtk3
%{_bindir}/gtk-query-immodules-3.0-32 --update-cache


%files -f %{name}10.lang
%defattr(-,root,root,-)
%doc AUTHORS COPYING ChangeLog NEWS README
%{_bindir}/ibus*
%{_libdir}/libibus-%{ibus_api_version}.so.*
%{_libdir}/gtk-2.0/immodules/im-ibus.so
%{_libdir}/girepository-1.0/IBus-1.0.typelib
%{_libexecdir}/ibus-x11
%{_libexecdir}/ibus-dconf
%{_libexecdir}/ibus-engine-simple
%{_libexecdir}/ibus-ui-gtk3
%{python_sitelib}/ibus
%{_datadir}/GConf/gsettings/ibus.convert
%{_datadir}/bash-completion/completions/ibus.bash
%{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.gschema.xml
%{_datadir}/applications/*
%{_datadir}/ibus
%{_datadir}/icons/hicolor/*/apps/*
%{_sysconfdir}/dconf/db/ibus.d/00-upstream-settings
%{_sysconfdir}/dconf/profile/ibus
%{_mandir}/man1/ibus-daemon.1.gz
%{_mandir}/man1/ibus-setup.1.gz
%{_mandir}/man1/ibus.1.gz

%files devel
%defattr(-,root,root,-)
%{_libdir}/pkgconfig/*
%{_libdir}/lib*.so
%{_includedir}/*
%{_datadir}/vala/vapi/ibus-1.0.vapi
%{_datadir}/vala/vapi/ibus-1.0.deps
%{_datadir}/gir-1.0/IBus-1.0.gir
%{_datadir}/gtk-doc/html/ibus

%files gtk3
%defattr(-,root,root,-)
%{_libdir}/gtk-3.0/3.0.0/immodules/im-ibus.so

%if %have_gjsfile
%files gnome3
%defattr(-,root,root,-)
%{_datadir}/gnome-shell/js/ui/status/ibus
%{_datadir}/gnome-shell/extensions/ibus-indicator@example.com
%{_datadir}/locale/*/LC_MESSAGES/ibus-gjs.mo
%endif

## to build compat32 for x86_64 architecture support
%if %{build_compat32}
%files -n compat32-%{name}
%defattr(-,root,root)
%{_libdir}/libibus-%{ibus_api_version}.so.*
%{_libdir}/gtk-2.0/immodules/im-ibus.so

%files -n compat32-%{name}-gtk3
%defattr(-,root,root,-)
%{_libdir}/gtk-3.0/3.0.0/immodules/im-ibus.so
%endif

%changelog
* Wed May 13 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 1.5.10-2
- added Requires: pygobject3 for ibus-setup <BTS:Vine Linux:0002922>

* Mon May  4 2015 IWAI, Masaharu <iwaim.sub@gmail.com> 1.5.10-1
- update to 1.5.10
- drop unnecessary patches (Patch0, Patch1)

* Wed Nov 26 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.5.9-1
- update to 1.5.9
- remove old patches
- update Patch0 (ibus-HEAD.patch) from fedora
- add Patch1 (ibus-xx-increase-timeout.patch) from fedora
- update Patch200 (ibus-1.5.9-vine.patch)

* Sat Oct 26 2013 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.5.4-1
- update to 1.5.4
- add BuildRequires: libnotify-devel

* Mon Apr 01 2013 Daisuke SUZUKI <daisuke@linux.or.jp> 1.5.1-3
- remove --with-no-snooper-apps option.

* Mon Mar 25 2013 Daisuke SUZUKI <daisuke@linux.or.jp> 1.5.1-2
- remove firefox from "--with-no-snooper-apps"

* Sat Mar 23 2013 Daisuke SUZUKI <daisuke@linux.or.jp> 1.5.1-1
- update to 1.5.1
- disable ibus-gjs build
- obsoletes ibus-gnome3

* Wed Oct 17 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.99.20121006-2
- update Patch2 (ibus-541492-xkb.patch)
- add Patch0 (ibus-HEAD.patch) from fedora
- remove SOURCE2

* Sat Sep 29 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.99.20121006-1
- update to ibus-1.4.99.20121006-1
- update following source and patches from fedora
  - Patch2: ibus-541492-xkb.patch
  - Patch3: ibus-530711-preload-sys.patch
  - Patch4: ibus-xx-setup-frequent-lang.patch
  - Patch6: ibus-xx-no-use.diff
- remove Patch5 (ibus-xx-g-s-disable-preedit.patch)
- remove Patch7 (ibus-xx-f18-build.patch)

* Sat Sep 29 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.99.20120822-1
- update to ibus-1.4.99.20120822-1
- update to ibus-gjs-3.4.1.20120815
- add BuildRequires: vala, vala-tools, dconf-devel, dbus-x11, libgnomekbd-devel
- add following source and patches from fedora
  - Source2: xinput-ibus
  - Patch1: ibus-810211-no-switch-by-no-trigger.patch
  - Patch2: ibus-541492-xkb.patch
  - Patch3: ibus-530711-preload-sys.patch
  - Patch4: ibus-xx-setup-frequent-lang.patch
  - Patch5: ibus-xx-g-s-disable-preedit.patch
  - Patch6: ibus-xx-no-use.diff
  - Patch7: ibus-xx-f18-build.patch


* Sat Apr 28 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.1-1
- update to ibus-1.4.1
- update to ibus-gjs-3.4.1.20120428
- add BuildRequires: iso-codes

* Sun Feb 19 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.0-2
- rebuild with python-2.7.2

* Sun Oct 02 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 1.4.0-1
- update to ibus-1.4.0
- update to ibus-gjs-3.2.0.20110928

* Sat Sep 10 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 1.3.99.20110817-3
- update ibus-gjs to 3.1.91.20110908

* Wed Aug 31 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 1.3.99.20110817-2
- re-enable compat32
  * Wed Aug 10 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 1.3.9-6
  - add compat32-ibus{,-gtk3}
- add %%post/preun gtk3 to ibus-gtk3
- add %%post/preun compat32-gtk3 to compat32-ibus-gtk3

* Tue Aug 23 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 1.3.99.20110817-1
- update to upstream snapshot (1.3.99.20110817)
- add ibus-gjs for gnome3
- update patches

* Thu Jun 02 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 1.3.9-5
- add patch1 from ubuntu (accepted in upstream)
  Use LC_MESSAGES instead of LC_ALL in bus_ibus_impl_set_default_preload_engines.
- add "Catgegories=Applications;X-GNOME-PersonalSettings" to ibus-setup.desktop
- add patch10 to add default preload engines to gconf schemas
- add patch20 to modify IM trigger shortcut keys
  - add Shift+space, remove Ctrl+space

* Tue Apr 19 2011 IWAI, Masaharu <iwai@alib.jp> 1.3.9-4vl6
- drop {post,postun} script for gtk3 immodules in main package

* Fri Apr  8 2011 IWAI, Masaharu <iwai@alib.jp> 1.3.9-3vl6
- drop GTK3 immodule file in main package

* Fri Feb 18 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.3.9-2
- create -gtk3 sub package (VineSeed only)

* Wed Dec 15 2010 IWAI, Masaharu <iwai@alib.jp> 1.3.9-1
- new upstream release
- add files in devel sub package for VineSeed
 - girepository-1.0/IBus-1.0.typelib
 - gir-1.0/IBus-1.0.gir

* Mon Sep 27 2010 Shu KONNO <owa@bg.wakwak.com> 1.3.7-2
- rebuilt with rpm-4.8.1 for pkg-config

* Mon Aug  9 2010 IWAI, Masaharu <iwai@alib.jp> 1.3.7-1
- new upstream release
- add support Vala on Vine Linux 5

* Fri Jul  9 2010 IWAI, Masaharu <iwai@alib.jp> 1.3.6-1
- new upstream release

* Tue Jun 15 2010 IWAI, Masaharu <iwai@alib.jp> 1.3.5-1
- new upstream release
- update GTK immodule dir option for configure
- add vapi file for VineSeed
- add Requires: vala for devel package, VineSeed

* Wed Jun  9 2010 IWAI, Masaharu <iwai@alib.jp> 1.3.4-2
- update Requires: notify-python librsvg2
- execute gconftool-2 on {post,pre,preun}
- add Requires: Gconf2 on {post,pre,preun}
- update Requires: glib2-devel dbus-devel for ibus-devel package
- execute update-desktop-database on {post,postun}
- execute gtk-update-icon-cache on {post,postun}: <BTS:VineLinux:955>
- add Requires: coreutils, gtk2 on {post,postun}
- drop %%{_sysconfdir}/xdg/autostart/ibus.desktop file

* Sun Jun  6 2010 IWAI, Masaharu <iwai@alib.jp> 1.3.4-1
- new upstream release
- stop 'make check'

* Tue May 25 2010 Shu KONNO <owa@bg.wakwak.com> 1.3.3-2
- s/python_sitearch/python_sitelib/

* Sat May 15 2010 IWAI, Masaharu <iwai@alib.jp> 1.3.3-1
- new upstream release
- execute 'make check'
- clean up:
  - drop unused git_source and vine_ja_po

* Fri Apr 16 2010 IWAI, Masaharu <iwai@alib.jp> 1.2.1-1
- new upstream release
- stop 'make check'

* Mon Jan 25 2010 IWAI, Masaharu <iwai@alib.jp> 1.2.0.20091215-2
- add BuildRequires: GConf2-devel >= 2.12: fix <BTS:VineLinux:901>

* Fri Dec 18 2009 IWAI, Masaharu <iwai@alib.jp> 1.2.0.20091215-1
- new upstream release

* Sat Dec  5 2009 IWAI, Masaharu <iwai@alib.jp> 1.2.0.20091204-1
- new upstream release

* Sun Nov 29 2009 IWAI, Masaharu <iwai@alib.jp> 1.2.0.20091124-1
- new upstream release

* Wed Nov  4 2009 IWAI, Masaharu <iwai@alib.jp> 1.2.0.20091024-1 
- new upstream release
- add fix POFILES.in patch (Patch0)
- update file list in %%files section
- running ldconfig and gtk-query-immodules-2.0 in %%post and %%postun

* Thu Oct  8 2009 IWAI, Masaharu <iwai@alib.jp> 1.2.0.20090927-1
- new upstream release

* Thu Sep 17 2009 IWAI, Masaharu <iwai@alib.jp> 1.2.0.20090915-1
- new upstream release
- update %%files section
- update BuildRequires
- drop obsoleted configure option: --disable-qt4-immodule

* Fri Aug 28 2009 IWAI, Masaharu <iwai@alib.jp> 1.1.0.20090812-1
- new upstream release

* Sat Jun 20 2009 IWAI, Masaharu <iwai@alib.jp> 1.1.0.20090612-1
- new upstream release
- add Packager tag

* Tue Jun  2 2009 IWAI, Masaharu <iwai@alib.jp> 1.1.0.20090531-1
- new upstream release

* Sat May  9 2009 IWAI, Masaharu <iwai@alib.jp> 1.1.0.20090508-1
- new upstream release
- update BuildRequires
  - add dbus-devel, intltool >= 0.40.0
  - drop qt4-devel

* Sun Apr 26 2009 IWAI, Masaharu <iwai@alib.jp> 1.1.0.20090423-1
- new upstream release
- drop defined python_sitearch rpm macro

* Fri Apr 17 2009 IWAI, Masaharu <iwai@alib.jp> 1.1.0.20090417-1
- new upstream release

* Tue Apr 14 2009 IWAI, Masaharu <iwai@alib.jp> 1.1.0.20090413-1
- new upstream release
- drop Vine ja.po (SOURCE1)

* Wed Apr  8 2009 IWAI, Masaharu <iwai@alib.jp> 1.1.0.20090407-1
- new upstream release
- update ja.po (SOURCE1)

* Sat Apr  4 2009 IWAI, Masaharu <iwai@alib.jp> 1.1.0.20090331-1
- new upstream release

* Sat Mar 21 2009 IWAI, Masaharu <iwai@alib.jp> - 1.1.0.20090311-3
- add ja.po (SOURCE1): update
- add ibus.desktop file in xdg autostart
- add ibus.schemas file

* Fri Mar 20 2009 Shu KONNO <owa@bg.wakwak.com> - 1.1.0.20090311-2
- set python_sitearch to arch independent path

* Tue Mar 17 2009 IWAI, Masaharu <iwai@alib.jp> - 1.1.0.20090311-1
- new upstream release
- add dbus-python version ( 0.83.0 and more ) in Requires
- add BuildRequires: dbus-python-devel >= 0.83.0

* Mon Feb 23 2009 IWAI, Masaharu <iwai@alib.jp> - 1.1.0.20090217-1
- new upstream release
- add Requires: iso-codes, dbus-python: <BTS:VineLinux:656>
- generate devel sub package
- stop creating qt4 immodule
- drop .la files

* Mon Jan 26 2009 IWAI, Masaharu <iwai@alib.jp> - 0.1.1.20090126-1
- initial release
