# # 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/ # %define gtk_binary_version %(pkg-config --variable=gtk_binary_version gtk+-2.0) # temporary disable, 'coz ibus is not python3 ready %define with_python3 0 %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.17 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 %if %{with_kde} Source5: kde.tar.gz Source6: kde-12.2.tar.gz %endif 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 # PATCH-FIX-SLE ibus-CVE-2019-14822.patch CVE-2019-14822 bnc#1150011 qzhao@suse.com # Fix the misconfiguration of the DBus server allows to unprivileged user could monitor and send method calls to the ibus bus of another user. Patch13: ibus-CVE-2019-14822.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.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: python-devel BuildRequires: python3-devel BuildRequires: pkgconfig(json-glib-1.0) # directory ownership { %if %{with_kde} BuildRequires: oxygen-icon-theme BuildRequires: oxygen-icon-theme-scalable %endif BuildRequires: x11-tools # } BuildRequires: pkg-config %if %{with_python3} BuildRequires: python3 BuildRequires: python3-gobject2-devel Requires: python3-gobject2 %if 0%{suse_version} > 1320 Requires: python3-gobject-Gdk %endif %else BuildRequires: python BuildRequires: python-gobject-devel Requires: python-gobject %if 0%{suse_version} > 1320 Requires: python2-gobject-Gdk %endif %endif BuildRequires: update-desktop-files BuildRequires: pkgconfig(vapigen) %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 BuildRequires: pkgconfig(xkbcommon) # copy_deep method is supported since 0.31.1 BuildRequires: vala >= 0.31.1 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 # 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 #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 %if %{with_kde} %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. %endif %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 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 %patch4 -p1 %if %{with_python3} %patch5 -p1 %patch7 -p1 %endif %patch8 -p1 %patch9 -p1 %if 0%{?suse_version} == 1315 && !0%{?is_opensuse} %patch10 -p1 %patch11 -p1 %endif 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} %patch12 -p1 %endif %patch13 -p1 %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_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 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}/%{_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 %if %{with_kde} # 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 %endif # 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 README README.SUSE xim.ibus.suse.template %license COPYING %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 %{_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.gz %{_mandir}/man1/ibus-daemon.1.gz %{_mandir}/man1/ibus-setup.1.gz %if %{with_emoji} %{_mandir}/man7/ibus-emoji.7.gz %endif %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 %if %{with_kde} %files branding-openSUSE-KDE %defattr(-,root,root) %dir %{_datadir}/icons/oxygen/* %dir %{_datadir}/icons/oxygen/*/apps %{_datadir}/icons/oxygen/*/apps/ibus-keyboard.* %endif %changelog