# # spec file for package ibus # # Copyright (c) 2016 SUSE LINUX 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 gtk_binary_version %(pkg-config --variable=gtk_binary_version gtk+-2.0) %if 0%{?suse_version} == 1315 %define with_python3 0 %else # temporary disable, 'coz ibus is not python3 ready %define with_python3 0 %endif %if 0%{?suse_version} > 1315 %define with_wayland 1 %else %define with_wayland 0 %endif Name: ibus Version: 1.5.11 Release: 0 Summary: Intelligent Input Bus for Linux OS License: LGPL-2.1+ Group: System/I18n/Chinese Url: https://github.com/ibus/ #Source: https://github.com/ibus/ibus/releases/download/%{version}/%{name}-%{version}.tar.gz Source: %{name}-%{version}.tar.gz Source2: README.SUSE Source3: xim.ibus.suse.template Source4: xim.d-ibus-121 Source5: kde.tar.gz Source6: kde-12.2.tar.gz Source7: macros.ibus Source10: ibus-autostart Source11: ibus-autostart.desktop Source99: baselibs.conf # PATCH-FIX-OPENSUSE ibus-python-install-dir.patch ftake@geeko.jp Patch0: ibus-python-install-dir.patch # PATCH-FIX-OPENSUSE reload-preload-engines-until-users-customize-the-list.patch ftake@geeko.jp Patch3: show-input-mode-icon.patch # PATFH-FIX-SUSE ibus-xim-fix-re-focus-after-lock.patch bnc#874869 tiwa@suse.de -- Fix lost XIM input after screenlock Patch4: ibus-xim-fix-re-focus-after-lock.patch # PATCH-FIX-UPSTREAM marguerite@opensuse.org # Ibus will use python3 only when variable PYTHON2 is empty. # Thus ibus-setup and bindings are still bytecompiled with python2. # Then python3 support is useless, so we force python3 when python3 # is enabled, and fix syntax errors in python-config.py Patch5: ibus-force-python3.patch # PATCH-FIX-UPSTREAM marguerite@opensuse.org # lower vala version Patch6: ibus-vala-0.18.patch # PATCH-FIX-UPSTREAM marguerite@opensuse.org Patch7: ibus-python3-migration.patch # PATCH-FIX-UPSTREAM ftake@geeko.jp # Select an IM engine at the first login Patch8: im-engines-precede-xkb.patch # PATCH-FIX-UPSTREAM ftake@geeko.jp Patch9: ibus-fix-check-abs-icon-path-support.patch BuildRequires: dbus-1-glib-devel BuildRequires: dbus-1-python-devel >= 0.83.0 BuildRequires: dconf-devel >= 0.7.5 BuildRequires: fdupes BuildRequires: gconf2-devel BuildRequires: gettext-devel BuildRequires: glib2-devel >= 2.26.0 BuildRequires: gobject-introspection-devel >= 0.9.6 BuildRequires: gtk-doc >= 1.9 BuildRequires: gtk2-devel BuildRequires: intltool BuildRequires: iso-codes-devel BuildRequires: libnotify-devel >= 0.7 BuildRequires: libtool # directory ownership { BuildRequires: oxygen-icon-theme BuildRequires: oxygen-icon-theme-scalable BuildRequires: x11-tools # } BuildRequires: pkg-config %if %{with_python3} BuildRequires: python3 BuildRequires: python3-gobject2-devel Requires: python3-gobject2 %else BuildRequires: python BuildRequires: python-gobject-devel Requires: python-gobject %endif BuildRequires: update-desktop-files BuildRequires: pkgconfig(vapigen) %if %{with_wayland} BuildRequires: pkgconfig(wayland-client) >= 1.2.0 %endif BuildRequires: pkgconfig(xkbcommon) # It seems that old vala compiler cannot build with an incompatible # return type error among two overriding functions with # "GLib.Variant?" type # 13.1 support should be dropped after the cause is confirmed BuildRequires: vala >= 0.26.0 Requires: dbus-1-python Requires: dconf Requires: iso-codes Requires: libibus-1_0-5 = %{version} # ibus-setup will require typelib(Gdk) typelib(GdkX11), typelib(Gtk) # which are provided by two packages in openSUSE, so we limit their # versions to 3.0 only. Requires: typelib-1_0-Gtk-3_0 Recommends: %{name}-lang #Fix cursor following problem in KDE4 for libreoffice. %if 0%{?suse_version} != 1315 Supplements: packageand(libreoffice:libreoffice-gnome) %endif Provides: locale(ja;ko;zh) Obsoletes: ibus-gnome-shell BuildRoot: %{_tmppath}/%{name}-%{version}-build %description IBus means 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 -n libibus-1_0-5 Summary: IBus libraries Group: System/I18n/Chinese Obsoletes: libibus-1_0-0 %description -n libibus-1_0-5 This package contains the libraries for IBus %package -n typelib-1_0-IBus-1_0 Summary: IBus libraries -- Introspection bindings Group: System/I18n/Chinese %description -n typelib-1_0-IBus-1_0 This package contains the introspection bindings for the IBus library. %package gtk Summary: IBus im module for gtk2 Group: System/I18n/Chinese Requires: %{name} = %{version} Supplements: packageand(ibus:gtk2) %{gtk2_immodule_requires} %description gtk This package contains ibus im module for gtk2 %package gtk3 Summary: IBus im module for gtk3 Group: System/I18n/Chinese BuildRequires: gtk3-devel Requires: %{name} = %{version} Supplements: packageand(ibus:gtk3) %{gtk3_immodule_requires} %description gtk3 This package contains ibus im module for gtk3 %if %{with_python3} %package -n python3-ibus Summary: Python3 module for ibus Group: System/I18n/Chinese Requires: %{name} = %{version} Requires: python3 Obsoletes: python-ibus %description -n python3-ibus This package contains python3 module for ibus %else %package -n python-ibus Summary: Python module for ibus Group: System/I18n/Chinese Requires: %{name} = %{version} %py_requires %description -n python-ibus This package contains python module for ibus %endif %package branding-openSUSE-KDE Summary: openSUSE branding for KDE Group: System/GUI/KDE Requires: ibus = %{version} Supplements: packageand(ibus:branding-openSUSE-KDE) Supplements: packageand(ibus:kdelibs4) Provides: ibus-branding = %{version} Conflicts: otherproviders(ibus-branding) %if 0%{?suse_version} >= 1140 BuildArch: noarch %endif %description branding-openSUSE-KDE openSUSE branding for KDE monochrome icons in systray. %package devel Summary: Development tools for ibus Group: Development/Libraries/Other Requires: dbus-1-devel Requires: glib2-devel Requires: gtk-doc Requires: ibus = %{version} Requires: libibus-1_0-5 = %{version} Requires: typelib-1_0-IBus-1_0 = %{version} %description devel The ibus-devel package contains the header files and developer docs for ibus. %lang_package %prep %setup -q %patch0 -p1 # hack to fix incompatibility of gtk-query-immodules-2.0 (bnc#845860) %if 0%{?suse_version} < 1310 %patch6 -p1 sed -i \ -e's@\(gtk-query-immodules-2.0-64\) --update-cache@\1 > %{_sysconfdir}/gtk-2.0/gtk64.immodules@g' \ -e's@\(gtk-query-immodules-2.0\) --update-cache@\1 > %{_sysconfdir}/gtk-2.0/gtk.immodules@g' \ %{SOURCE99} %endif %patch3 -p1 %patch4 -p1 %if %{with_python3} %patch5 -p1 %patch7 -p1 %endif %patch8 -p1 %patch9 -p1 cp -r %{SOURCE2} . cp -r %{SOURCE3} . %build autoreconf -fi intltoolize -f %configure --disable-static \ --enable-gtk3 \ --enable-vala \ %if %{with_python3} --with-python=python3 \ %endif --enable-python-library \ --enable-introspection \ --disable-gconf \ --enable-dconf \ --enable-gtk-doc \ %if %{with_wayland} --enable-wayland \ %endif %if 0%{?suse_version} < 1315 --disable-appindicator \ %endif --enable-surrounding-text \ --enable-appindicator_engine_icon \ --libexecdir=%{_libdir}/ibus make %{?_smp_mflags} %install make DESTDIR=%{buildroot} install -j1 # autostart mkdir -p %{buildroot}%{_sysconfdir}/X11/xim.d/ install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/X11/xim.d/ibus mkdir -p %{buildroot}%{_bindir} install -c -m 0755 %{SOURCE10} %{buildroot}%{_bindir}/ibus-autostart mkdir -p %{buildroot}%{_sysconfdir}/xdg/autostart install -c -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/xdg/autostart/ibus-autostart.desktop sed -i 1i"SYS_LIB=%{_lib}" %{buildroot}%{_sysconfdir}/X11/xim.d/ibus PRIORITY=40 pushd %{buildroot}%{_sysconfdir}/X11/xim.d/ for lang in am ar as bn el fa gu he hi hr ja ka kk kn ko lo ml my \ pa ru sk vi zh_TW zh_CN zh_HK zh_SG \ de fr it es nl cs pl da nn nb fi en sv do mkdir $lang pushd $lang ln -s ../ibus $PRIORITY-ibus popd done popd # remove static libs find %{buildroot}/%{_libdir} -name "*.la" -type f -delete -print mkdir -p %{buildroot}%{_datadir}/pixmaps ln -sf %{_datadir}/icons/hicolor/48x48/apps/ibus-keyboard.png \ %{buildroot}%{_datadir}/pixmaps/ibus-keyboard.png # touch for %%ghost touch %{buildroot}/%{_sysconfdir}/dconf/db/ibus # fix kde monochrome icons %if 0%{?suse_version} >= 1230 cp -r %{SOURCE5} ./ %else cp -r %{SOURCE6} ./ mv kde-12.2.tar.gz kde.tar.gz %endif tar -xzf kde.tar.gz pushd kde for i in 16 22 24 32 48 ; do mkdir -p %{buildroot}%{_datadir}/icons/oxygen/${i}x${i}/apps/ cp -r ibus-keyboard.${i}x${i}.png %{buildroot}%{_datadir}/icons/oxygen/${i}x${i}/apps/ibus-keyboard.png done mkdir -p %{buildroot}%{_datadir}/icons/oxygen/scalable/apps/ cp -r ibus-keyboard.svgz %{buildroot}%{_datadir}/icons/oxygen/scalable/apps/ popd # install macros mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m 644 %{SOURCE7} %{buildroot}%{_sysconfdir}/rpm %suse_update_desktop_file -r %{name}-setup Settings DesktopSettings X-SuSE-Core-System %fdupes %{buildroot} %find_lang ibus10 %{?no_lang_C} %post %{glib2_gsettings_schema_post} %posttrans dconf update %postun %{glib2_gsettings_schema_postun} dconf update %post gtk %{gtk2_immodule_post} %postun gtk %{gtk2_immodule_postun} %post -n libibus-1_0-5 -p /sbin/ldconfig %postun -n libibus-1_0-5 -p /sbin/ldconfig %post gtk3 %{gtk3_immodule_post} %postun gtk3 %{gtk3_immodule_postun} %files %defattr(-,root,root) %doc AUTHORS COPYING README README.SUSE xim.ibus.suse.template %config %{_sysconfdir}/rpm/macros.ibus %config %{_sysconfdir}/X11/xim.d/* %{_bindir}/ibus %{_bindir}/ibus-autostart %{_bindir}/ibus-daemon %{_bindir}/ibus-setup %{_datadir}/ibus/ %{_datadir}/applications/ibus-setup.desktop %{_datadir}/GConf/gsettings/ibus.convert %{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.gschema.xml %{_datadir}/icons/hicolor/*/apps/ibus*.* %{_datadir}/pixmaps/ibus-keyboard.png %{_libdir}/ibus %{_datadir}/bash-completion/completions/ibus.bash # This file is generated by dconf update %ghost %{_sysconfdir}/dconf/db/ibus %dir %{_sysconfdir}/dconf/db/ibus.d # This file is not a config file. Users may not modify it. %{_sysconfdir}/dconf/db/ibus.d/00-upstream-settings %{_sysconfdir}/dconf/profile/ibus %{_sysconfdir}/xdg/autostart/ibus-autostart.desktop %{_mandir}/man1/ibus.1.gz %{_mandir}/man1/ibus-daemon.1.gz %{_mandir}/man1/ibus-setup.1.gz %files lang -f ibus10.lang %defattr(-,root,root) %files -n libibus-1_0-5 %defattr(-,root,root) %{_libdir}/libibus-1.0.so.* %files -n typelib-1_0-IBus-1_0 %defattr(-,root,root) %{_libdir}/girepository-1.0/IBus-1.0.typelib %files gtk %defattr(-,root,root) %{_libdir}/gtk-2.0/%{gtk_binary_version}/immodules/im-ibus.so %files gtk3 %defattr(-,root,root) %{_libdir}/gtk-3.0/3.0.0/immodules/im-ibus.so %if %{with_python3} %files -n python3-ibus %defattr(-,root,root) %{python3_sitearch}/ibus %else %files -n python-ibus %defattr(-,root,root) %{python_sitearch}/ibus %{python_sitearch}/gi/overrides/* %endif %files devel %defattr(-,root,root) %{_libdir}/libibus-1.0.so %{_includedir}/ibus-1.0 %{_datadir}/gtk-doc/html/ibus %{_libdir}/pkgconfig/ibus-1.0.pc %{_datadir}/gir-1.0/IBus-1.0.gir %{_datadir}/vala/vapi/ibus-1.0.deps %{_datadir}/vala/vapi/ibus-1.0.vapi %files branding-openSUSE-KDE %defattr(-,root,root) %dir %{_datadir}/icons/oxygen/24x24 %dir %{_datadir}/icons/oxygen/24x24/apps %{_datadir}/icons/oxygen/*/apps/ibus-keyboard.* %changelog