# # spec file for package ibus # # Copyright (c) 2018 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/ # %if 0%{?is_opensuse} %define with_wayland 1 %define with_kde 1 %define with_emoji 1 %else %define with_wayland 0 %define with_kde 0 %define with_emoji 0 %endif Name: ibus Version: 1.5.18 Release: 0 Summary: Intelligent Input Bus for Linux OS License: LGPL-2.1-or-later Group: System/I18n/Chinese Url: https://github.com/ibus/ Source: https://github.com/ibus/ibus/releases/download/%{version}/%{name}-%{version}.tar.gz Source2: README.SUSE Source3: xim.ibus.suse.template Source4: xim.d-ibus-121 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 # PATFH-FIX-OPENSUSE ibus-xim-fix-re-focus-after-lock.patch bnc#874869 tiwai@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 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 # PATCH-FIX-SLE hide-setup-menu.patch bnc#899259 qzhao@suse.com # ibus-setup should not launch from main menu. Patch10: hide-setup-menu.patch # PATCH-FIX-SLE setup-switch-im.patch bnc#899259 qzhao@suse.com # switch to ibus when ibus not running. Patch11: setup-switch-im.patch # PATCH-FIX-SLE ibus-disable-engines-preload-in-GNOME.patch bnc#1036729 qzhao@suse.com # Disable ibus engines preload in GNOME for These works are handled by gnome-shell. Patch12: ibus-disable-engines-preload-in-GNOME.patch BuildRequires: dbus-1-glib-devel BuildRequires: dconf-devel >= 0.7.5 BuildRequires: fdupes BuildRequires: gconf2-devel BuildRequires: gettext-devel BuildRequires: glib2-devel >= 2.34.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 BuildRequires: pkgconfig BuildRequires: python3-dbus-python-devel BuildRequires: python3-devel BuildRequires: python3-gobject2-devel BuildRequires: unicode-ucd BuildRequires: update-desktop-files # copy_deep method is supported since 0.31.1 BuildRequires: vala >= 0.31.1 BuildRequires: x11-tools BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(vapigen) BuildRequires: pkgconfig(xkbcommon) Requires: dconf Requires: iso-codes Requires: libibus-1_0-5 = %{version} Requires: python3-dbus-python Requires: python3-gobject-Gdk Requires: python3-gobject2 # 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 Supplements: packageand(libreoffice:libreoffice-gnome) Provides: locale(ja;ko;zh) Obsoletes: ibus-gnome-shell %if %{with_kde} BuildRequires: libqt5-qtbase-devel %endif %if %{with_wayland} BuildRequires: pkgconfig(wayland-client) >= 1.2.0 %endif %if %{with_emoji} BuildRequires: nodejs-emojione BuildRequires: unicode-emoji BuildRequires: pkgconfig(cldr-emoji-annotation) %endif # PATCH-FEATURE-SLE FATE#319095 qzhao@suse.com # Add conflict with fcitx to keep old IMF for people who update from SLE-12 SP0 to SP1. %if !0%{?is_opensuse} Conflicts: fcitx %endif %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 %package -n python3-ibus Summary: Python3 module for ibus Group: System/I18n/Chinese Requires: %{name} = %{version} %description -n python3-ibus This package contains python3 module for ibus %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 %patch4 -p1 %patch5 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 cp -r %{SOURCE2} . cp -r %{SOURCE3} . cp -r %{SOURCE4} . sed -i 1i"SYS_LIB=%{_lib}" xim.d-ibus-121 cp -r %{SOURCE10} . cp -r %{SOURCE11} . %if !0%{?is_opensuse} %patch10 -p1 %patch11 -p1 %patch12 -p1 %endif %build autoreconf -fi intltoolize -f %configure --disable-static \ --enable-gtk3 \ --enable-vala \ %if %{with_emoji} --enable-emoji-dict \ %else --disable-emoji-dict \ %endif %if %{with_kde} --enable-appindicator \ %else --disable-appindicator \ %endif --with-python=python3 \ --enable-python-library \ --enable-introspection \ --disable-gconf \ --enable-dconf \ --enable-gtk-doc \ %if %{with_wayland} --enable-wayland \ %endif --enable-surrounding-text \ --enable-appindicator_engine_icon \ --libexecdir=%{_libdir}/ibus make %{?_smp_mflags} %install %make_install # autostart mkdir -p %{buildroot}%{_sysconfdir}/X11/xim.d/ install -m 644 xim.d-ibus-121 %{buildroot}%{_sysconfdir}/X11/xim.d/ibus mkdir -p %{buildroot}%{_bindir} install -c -m 0755 ibus-autostart %{buildroot}%{_bindir}/ibus-autostart mkdir -p %{buildroot}%{_sysconfdir}/xdg/autostart install -c -m 0644 ibus-autostart.desktop %{buildroot}%{_sysconfdir}/xdg/autostart/ibus-autostart.desktop 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} -type f -name "*.la" -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 # 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 %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}/applications/org.freedesktop.IBus.Panel.Emojier.desktop %{_datadir}/applications/org.freedesktop.IBus.Panel.Extension.Gtk3.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 %{_datadir}/dbus-1/services/*.service # 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. %config %{_sysconfdir}/dconf/db/ibus.d/00-upstream-settings %config %{_sysconfdir}/dconf/profile/ibus %{_sysconfdir}/xdg/autostart/ibus-autostart.desktop %{_mandir}/man1/ibus.1%{ext_man} %{_mandir}/man1/ibus-daemon.1%{ext_man} %{_mandir}/man1/ibus-setup.1%{ext_man} %if %{with_emoji} %{_mandir}/man7/ibus-emoji.7%{ext_man} %endif %files lang -f ibus10.lang %files -n libibus-1_0-5 %{_libdir}/libibus-1.0.so.* %files -n typelib-1_0-IBus-1_0 %{_libdir}/girepository-1.0/IBus-1.0.typelib %files gtk %{_libdir}/gtk-2.0/*/immodules/im-ibus.so %files gtk3 %{_libdir}/gtk-3.0/3.0.0/immodules/im-ibus.so %files -n python3-ibus %{python3_sitearch}/ibus %files devel %{_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 %changelog