# Conditional build:
%bcond_without static_libs # don't build static library
%bcond_without vala # Vala API
-#
+%bcond_without wayland # Wayland client
+
Summary: Intelligent Input Bus for Linux OS
Summary(pl.UTF-8): IBus - inteligentna szyna wejściowa dla Linuksa
Name: ibus
-Version: 1.4.99.20121109
-Release: 1
+Version: 1.5.9
+Release: 4
License: LGPL v2+
Group: Libraries
#Source0Download: http://code.google.com/p/ibus/downloads/list
-Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
-# Source0-md5: be482479357210283e91a47f43a0a0fe
+Source0: https://github.com/ibus/ibus/releases/download/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: a6e820db4fe3d82c825398f1ed19c77e
Source1: %{name}.xinputd
-Patch0: %{name}-810211-no-switch-by-no-trigger.patch
-Patch1: %{name}-541492-xkb.patch
-Patch2: %{name}-530711-preload-sys.patch
-Patch3: %{name}-xx-setup-frequent-lang.patch
-Patch4: %{name}-xx-no-use.diff
+Patch0: %{name}-1136623-lost-by-another-focus.patch
+Patch1: %{name}-HEAD.patch
+Patch2: %{name}-xx-increase-timeout.patch
+Patch3: python-path.patch
URL: http://code.google.com/p/ibus/
BuildRequires: GConf2-devel >= 2.12
BuildRequires: atk-devel
BuildRequires: autoconf >= 2.62
-BuildRequires: automake >= 1:1.10
-BuildRequires: dconf-devel >= 0.7.5
+BuildRequires: automake >= 1:1.11.1
BuildRequires: dbus-devel
BuildRequires: dbus-glib-devel
+BuildRequires: dconf-devel >= 0.7.5
BuildRequires: desktop-file-utils
-BuildRequires: gettext-devel
-BuildRequires: glib2-devel >= 1:2.26.0
-BuildRequires: gobject-introspection-devel >= 0.6.8
+BuildRequires: gettext-tools
+BuildRequires: glib2-devel >= 1:2.32.0
+BuildRequires: gobject-introspection-devel >= 0.9.6
BuildRequires: gtk+2-devel >= 2.0
BuildRequires: gtk+3-devel >= 3.0
BuildRequires: gtk-doc >= 1.9
BuildRequires: intltool >= 0.35.0
BuildRequires: iso-codes
+BuildRequires: libnotify-devel >= 0.7
BuildRequires: libtool
-BuildRequires: libgnomekbd-devel
BuildRequires: pkgconfig
BuildRequires: python >= 1:2.5
BuildRequires: python-dbus-devel >= 0.83.0
-BuildRequires: python-pygobject-devel
+BuildRequires: python-pygobject3 >= 3.0.0
+BuildRequires: python-pygobject3-common-devel >= 3.0.0
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.596
-%{?with_vala:BuildRequires: vala >= 2:0.14}
+%{?with_vala:BuildRequires: vala >= 2:0.16}
+# wayland-client
+%{?with_wayland:BuildRequires: wayland-devel >= 1.2.0}
BuildRequires: xorg-lib-libX11-devel
-BuildRequires: xorg-lib-libxkbfile-devel
+%{?with_wayland:BuildRequires: xorg-lib-libxkbcommon-devel}
+Requires: %{name}-conf = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
-Requires: GConf2 >= 2.12
Requires: dbus >= 1.2.4
Requires: gtk-update-icon-cache
Requires: hicolor-icon-theme
Requires: im-chooser
Requires: iso-codes
+Requires: libnotify >= 0.7
Requires: python-ibus = %{version}-%{release}
Requires: python-pygtk-gtk
Requires: python-pynotify
+Requires: xorg-app-setxkbmap
# input-keyboard-symbolic icon
Suggests: gnome-icon-theme-symbolic
-Requires(post,preun): GConf2
+Obsoletes: ibus-xkb
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _libexecdir %{_libdir}/ibus
IBus (Intelligent Input Bus) to inteligentna szyna wejściowa. Jest to
szkielet wprowadzania tekstu dla Linuksa.
-%package libs
-Summary: IBus library
-Summary(pl.UTF-8): Biblioteka IBus
+%package dconf
+Summary: IBus configuration module using DConf
+Summary(pl.UTF-8): Moduł konfiguracji IBus wykorzystujący mechanizm DConf
Group: Libraries
-Requires: glib2 >= 1:2.26.0
+Requires(post,postun): glib2 >= 1:2.32
+Requires: %{name} = %{version}-%{release}
+Requires: dconf >= 0.7.5
+Provides: %{name}-conf = %{version}-%{release}
-%description libs
-This package contains the IBus shared library.
+%description dconf
+IBus configuration module using DConf.
-%description libs -l pl.UTF-8
-Ten pakiet zawiera bibliotekę współdzieloną IBus.
+%description dconf -l pl.UTF-8
+Moduł konfiguracji IBus wykorzystujący mechanizm DConf.
+
+%package gconf
+Summary: IBus configuration module using GConf
+Summary(pl.UTF-8): Moduł konfiguracji IBus wykorzystujący mechanizm GConf
+Group: Libraries
+Requires(post,postun): GConf2 >= 2.12
+Requires: %{name} = %{version}-%{release}
+Requires: GConf2 >= 2.12
+Provides: %{name}-conf = %{version}-%{release}
+
+%description gconf
+IBus configuration module using GConf.
+
+%description gconf -l pl.UTF-8
+Moduł konfiguracji IBus wykorzystujący mechanizm GConf.
%package gtk2
Summary: IBus im module for GTK+ 2.x
Group: Libraries
Requires: %{name} = %{version}-%{release}
Requires: imsettings-gnome2
-Requires(post): glib2 >= 1:2.26.0
+Requires(post): glib2 >= 1:2.32.0
%description gtk2
This package contains IBus im module for GTK+ 2.x.
Group: Libraries
Requires: %{name} = %{version}-%{release}
Requires: imsettings-gnome3
-Requires(post): glib2 >= 1:2.26.0
+Requires(post): glib2 >= 1:2.32.0
%description gtk3
This package contains IBus im module for GTK+ 3.x.
%description gtk3 -l pl.UTF-8
Ten pakiet zawiera moduł im IBus dla GTK+ 3.x.
+%package wayland
+Summary: Wayland im protocol support for IBus
+Summary(pl.UTF-8): Obsługa protokołu im Waylanda dla systemu IBus
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: wayland >= 1.2.0
+
+%description wayland
+Wayland im protocol support for IBus.
+
+%description wayland -l pl.UTF-8
+Obsługa protokołu im Waylanda dla systemu IBus.
+
+%package libs
+Summary: IBus library
+Summary(pl.UTF-8): Biblioteka IBus
+Group: Libraries
+Requires: glib2 >= 1:2.32.0
+Obsoletes: ibus-xkb-libs
+
+%description libs
+This package contains the IBus shared library.
+
+%description libs -l pl.UTF-8
+Ten pakiet zawiera bibliotekę współdzieloną IBus.
+
%package devel
Summary: Development files for IBus
Summary(pl.UTF-8): Pliki programistyczne IBus
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
-Requires: glib2-devel
+Requires: glib2-devel >= 1:2.32.0
+Obsoletes: ibus-xkb-devel
%description devel
The ibus-devel package contains the header files for IBus.
Summary(pl.UTF-8): Biblioteka statyczna ibus
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
+Obsoletes: ibus-xkb-static
%description static
Static ibus library.
Group: Development/Libraries
Requires: gtk-doc-common
Conflicts: ibus-devel < 1.4.2
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
%description apidocs
Development documentation for IBus.
Summary(pl.UTF-8): Pythonowy interfejs do szkieletu IBus
Group: Development/Languages/Python
Requires: python-dbus >= 0.83.0
-Requires: python-pygobject
+Requires: python-pygobject3 >= 3.0.0
Requires: python-pygtk-pango
Requires: python-pyxdg
Conflicts: ibus < 1.4.2
Summary(pl.UTF-8): API języka Vala do biblioteki ibus
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
-Requires: vala >= 2:0.14
+Requires: vala >= 2:0.16
%description -n vala-ibus
Vala API for ibus library.
Summary: Bash completion for ibus commands
Summary(pl.UTF-8): Bashowe dopełnianie parametrów dla poleceń ibus
Group: Applications/Shells
-Requires: bash-completion
+Requires: bash-completion >= 2
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
%description -n bash-completion-ibus
Bash completion for ibus commands.
%prep
%setup -q
%patch0 -p1
-%{__rm} bindings/vala/ibus-1.0.vapi
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p1
%build
%{__libtoolize}
%configure \
--disable-gtk-doc \
--disable-silent-rules \
- --enable-gconf \
--enable-dconf \
+ --enable-gconf \
--enable-gtk2 \
--enable-gtk3 \
--enable-introspection \
%{?with_static_libs:--enable-static} \
--enable-surrounding-text \
--enable-vala%{!?with_vala:=no} \
+ %{?with_wayland:--enable-wayland} \
--enable-xim \
- --enable-xkb \
- --enable-libgnomekbd \
--with-html-dir=%{_gtkdocdir} \
--with-no-snooper-apps='gnome-do,Do.*,firefox.*,.*chrome.*,.*chromium.*'
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/{X11/xinit/xinput.d,xdg/autostart}
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/X11/xinit/xinput.d
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
%{__sed} -e 's|@@LIB@@|%{_lib}|g' %{SOURCE1} >$RPM_BUILD_ROOT%{_sysconfdir}/X11/xinit/xinput.d/ibus.conf
-# correct location in upstream.
-mv $RPM_BUILD_ROOT{%{_desktopdir},%{_sysconfdir}/xdg/autostart}/ibus.desktop
-
%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
%{__rm} $RPM_BUILD_ROOT%{_libdir}/gtk*/*/immodules/*.la
%if %{with static_libs}
%find_lang %{name}10
-# imsettings will start this daemon for us
-%{__rm} $RPM_BUILD_ROOT/etc/xdg/autostart/ibus.desktop
-
%clean
rm -rf $RPM_BUILD_ROOT
%post
%update_icon_cache hicolor
-%gconf_schema_install ibus.schemas
+
+%postun
+%update_icon_cache hicolor
+
+%post dconf
%glib_compile_schemas
-%preun
-%gconf_schema_uninstall ibus.schemas
+%postun dconf
%glib_compile_schemas
-%postun
-%update_icon_cache hicolor
+%post gconf
+%gconf_schema_install ibus.schemas
-%post libs -p /sbin/ldconfig
-%postun libs -p /sbin/ldconfig
+%preun gconf
+%gconf_schema_uninstall ibus.schemas
%post gtk2
%if "%{_lib}" != "lib"
%{_bindir}/gtk-query-immodules-3.0 --update-cache
%endif
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
+
%files -f %{name}10.lang
%defattr(644,root,root,755)
%doc AUTHORS README
%config(noreplace) %verify(not md5 mtime size) /etc/X11/xinit/xinput.d/ibus.conf
-%dir %{_sysconfdir}/dconf/db/ibus.d
-%{_sysconfdir}/dconf/db/ibus.d/00-upstream-settings
-%{_sysconfdir}/dconf/profile/ibus
-%{_sysconfdir}/gconf/schemas/ibus.schemas
%attr(755,root,root) %{_bindir}/ibus
%attr(755,root,root) %{_bindir}/ibus-daemon
%attr(755,root,root) %{_bindir}/ibus-setup
%dir %{_libexecdir}
-%attr(755,root,root) %{_libexecdir}/ibus-dconf
%attr(755,root,root) %{_libexecdir}/ibus-engine-simple
-%attr(755,root,root) %{_libexecdir}/ibus-gconf
%attr(755,root,root) %{_libexecdir}/ibus-ui-gtk3
%attr(755,root,root) %{_libexecdir}/ibus-x11
-%attr(755,root,root) %{_libexecdir}/ibus-xkb
-%{_datadir}/ibus
-%{_datadir}/GConf/gsettings/ibus.convert
-%{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.gschema.xml
+%dir %{_datadir}/ibus
+%dir %{_datadir}/ibus/component
+%{_datadir}/ibus/component/gtkpanel.xml
+%{_datadir}/ibus/component/simple.xml
+%{_datadir}/ibus/engine
+%{_datadir}/ibus/keymaps
+%{_datadir}/ibus/setup
%{_desktopdir}/ibus-setup.desktop
%{_iconsdir}/hicolor/*/apps/ibus-*.png
%{_iconsdir}/hicolor/scalable/apps/ibus*.svg
+%{_mandir}/man1/ibus.1*
+%{_mandir}/man1/ibus-daemon.1*
+%{_mandir}/man1/ibus-setup.1*
-%files libs
+%files dconf
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libibus-1.0.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libibus-1.0.so.5
-%{_libdir}/girepository-1.0/IBus-1.0.typelib
+%attr(755,root,root) %{_libexecdir}/ibus-dconf
+%{_datadir}/ibus/component/dconf.xml
+%dir %{_sysconfdir}/dconf/db/ibus.d
+%{_sysconfdir}/dconf/db/ibus.d/00-upstream-settings
+%{_sysconfdir}/dconf/profile/ibus
+%{_datadir}/GConf/gsettings/ibus.convert
+%{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.gschema.xml
+
+%files gconf
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/ibus-gconf
+%{_datadir}/ibus/component/gconf.xml
+%{_sysconfdir}/gconf/schemas/ibus.schemas
%files gtk2
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/gtk-3.0/*/immodules/im-ibus.so
+%files wayland
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/ibus-wayland
+
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libibus-1.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libibus-1.0.so.5
+%{_libdir}/girepository-1.0/IBus-1.0.typelib
+
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libibus-1.0.so
%{py_sitescriptdir}/ibus/*.py[co]
%dir %{py_sitescriptdir}/ibus/interface
%{py_sitescriptdir}/ibus/interface/*.py[co]
+%{py_sitedir}/gi/overrides/IBus.py[co]
%if %{with vala}
%files -n vala-ibus
%files -n bash-completion-ibus
%defattr(644,root,root,755)
-/etc/bash_completion.d/ibus.bash
+%{_datadir}/bash-completion/completions/ibus.bash