(Resubmission with NoDisplay=true in autostart.desktop) - Fix the invocation of ibus service for KDE, etc (boo#968486): for DEs known to support autostart (KDE, XFCE and LXCE), ibus is now started via XDG autostart for avoiding the race. This should fix the missing ibus service. For other DEs, ibus is still started in xim script, but with a slight (two seconds) delay for avoiding the race, too. Along with the change, INPUT_METHOD environment variable is set explicitly in xim script at startup; this is referred in XDG autostart so that it won't be executed when other IM is chosen. Last but not least, the explicit dbus-launch invocation is dropped, as it's known to conflict with DE's own startup of dbus OBS-URL: https://build.opensuse.org/request/show/362444 OBS-URL: https://build.opensuse.org/package/show/M17N/ibus?expand=0&rev=146
446 lines
12 KiB
RPMSpec
446 lines
12 KiB
RPMSpec
#
|
|
# 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 > <prefix>%{_sysconfdir}/gtk-2.0/gtk64.immodules@g' \
|
|
-e's@\(gtk-query-immodules-2.0\) --update-cache@\1 > <prefix>%{_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
|