%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %{!?gtk2_binary_version: %define gtk2_binary_version %(pkg-config --variable=gtk_binary_version gtk+-2.0)} %{!?gtk3_binary_version: %define gtk3_binary_version %(pkg-config --variable=gtk_binary_version gtk+-3.0)} # Build flags %define build_python_library 0 %define build_emoji_dictionary 1 %define glib_ver %([ -a %{_libdir}/pkgconfig/glib-2.0.pc ] && pkg-config --modversion glib-2.0 | cut -d. -f 1,2 || echo -n "999") %define gconf2_version 2.12.0 %define dbus_python_version 0.83.0 %define im_chooser_version 1.2.5 Name: ibus Version: @IBUS_VERSION@ Release: 1%{?dist} Summary: Intelligent Input Bus for Linux OS License: LGPLv2+ Group: System Environment/Libraries URL: https://github.com/ibus/ibus/wiki Source0: https://github.com/ibus/ibus/releases/download/%{version}/%{name}-%{version}.tar.gz Source1: xinput-ibus # Patch0: ibus-HEAD.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: cvs BuildRequires: gettext-devel BuildRequires: libtool BuildRequires: python BuildRequires: gtk2-devel BuildRequires: gtk3-devel BuildRequires: dbus-glib-devel BuildRequires: dbus-python-devel >= %{dbus_python_version} BuildRequires: desktop-file-utils BuildRequires: gtk-doc BuildRequires: GConf2-devel BuildRequires: dconf-devel BuildRequires: pygobject2-devel BuildRequires: intltool BuildRequires: iso-codes-devel %if %build_emoji_dictionary BuildRequires: nodejs-emojione BuildRequires: json-glib %endif Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-gtk2 = %{version}-%{release} Requires: %{name}-gtk3 = %{version}-%{release} Requires: %{name}-conf = %{version}-%{release} Requires: pygtk2 Requires: iso-codes Requires: dbus-python >= %{dbus_python_version} Requires: im-chooser >= %{im_chooser_version} Requires: notify-python Requires: librsvg2 Requires(post): desktop-file-utils Requires(postun): desktop-file-utils Requires(post): %{_sbindir}/alternatives Requires(postun): %{_sbindir}/alternatives Obsoletes: ibus-qt < 1.1.0 %define _xinputconf %{_sysconfdir}/X11/xinit/xinput.d/ibus.conf %description IBus means Intelligent Input Bus. It is an input framework for Linux OS. %package libs Summary: IBus libraries Group: System Environment/Libraries Requires: glib2 >= %{glib_ver} Requires: dbus >= 1.2.4 %description libs This package contains the libraries for IBus %package gconf Summary: IBus configuration module using GConf Group: System Environment/Libraries Provides: %{name}-conf = %{version}-%{release} Requires: %{name} = %{version}-%{release} Requires: GConf2 >= %{gconf2_version} Requires(pre): GConf2 >= %{gconf2_version} Requires(post): GConf2 >= %{gconf2_version} Requires(preun): GConf2 >= %{gconf2_version} %description gconf This package contains ibus configuration module using GConf %package dconf Summary: IBus configuration module using DConf Group: System Environment/Libraries Provides: %{name}-conf = %{version}-%{release} Requires: %{name} = %{version}-%{release} Requires(posttrans): dconf %description dconf This package contains ibus configuration module using DConf %package gtk2 Summary: IBus im module for gtk2 Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} Requires(post): glib2 >= %{glib_ver} %description gtk2 This package contains ibus im module for gtk2 %package gtk3 Summary: IBus im module for gtk3 Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} Requires(post): glib2 >= %{glib_ver} %description gtk3 This package contains ibus im module for gtk3 %package devel Summary: Development tools for ibus Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: glib2-devel Requires: dbus-devel %description devel The ibus-devel package contains the header files and developer docs for ibus. %package devel-docs Summary: Developer documents for ibus Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: gtk-doc %description devel-docs The ibus-devel-docs package contains developer documentation for ibus %prep %setup -q # %patch0 -p1 %build OPTIONS="--disable-static --enable-gtk2 --enable-gtk3 --enable-xim --disable-gtk-doc --enable-introspection --enable-gconf" %if %{build_python_library} OPTIONS="$OPTIONS --enable-python-library" %else OPTIONS="$OPTIONS --disable-python-library" %endif %if %build_emoji_dictionary OPTIONS="$OPTIONS --enable-emoji-dict" %else OPTIONS="$OPTIONS --disable-emoji-dict" %endif %configure $OPTIONS # make -C po update-gmo make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install rm -f $RPM_BUILD_ROOT%{_libdir}/libibus-1.0.la rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.la rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.la # install xinput config file install -pm 644 -D %{SOURCE1} $RPM_BUILD_ROOT%{_xinputconf} # install .desktop files echo "NoDisplay=true" >> $RPM_BUILD_ROOT%{_datadir}/applications/ibus.desktop echo "NoDisplay=true" >> $RPM_BUILD_ROOT%{_datadir}/applications/ibus-setup.desktop desktop-file-install --delete-original \ --dir $RPM_BUILD_ROOT%{_datadir}/applications \ $RPM_BUILD_ROOT%{_datadir}/applications/* %find_lang %{name}10 %clean rm -rf $RPM_BUILD_ROOT %post # recreate icon cache touch --no-create %{_datadir}/icons/hicolor || : [ -x %{_bindir}/gtk-update-icon-cache ] && \ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : %{_sbindir}/alternatives --install %{_sysconfdir}/X11/xinit/xinputrc xinputrc %{_xinputconf} 83 || : %post gconf export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/ibus.schemas >& /dev/null || : %pre gconf if [ "$1" -gt 1 ]; then export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/ibus.schemas >& /dev/null || : fi %preun gconf if [ "$1" -eq 0 ]; then export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/ibus.schemas >& /dev/null || : fi %postun # recreate icon cache touch --no-create %{_datadir}/icons/hicolor || : [ -x %{_bindir}/gtk-update-icon-cache ] && \ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : if [ "$1" = "0" ]; then %{_sbindir}/alternatives --remove xinputrc %{_xinputconf} || : # if alternative was set to manual, reset to auto [ -L %{_sysconfdir}/alternatives/xinputrc -a "`readlink %{_sysconfdir}/alternatives/xinputrc`" = "%{_xinputconf}" ] && %{_sbindir}/alternatives --auto xinputrc || : fi %postun dconf if [ "$1" -eq 0 ] ; then /usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : rm -f %{_sysconfdir}/dconf/db/ibus fi %posttrans dconf /usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : dconf update &> /dev/null || : %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %post gtk2 %{_bindir}/update-gtk-immodules %{_host} %postun gtk2 %{_bindir}/update-gtk-immodules %{_host} %post gtk3 %{_bindir}/gtk-query-immodules-3.0-%{__isa_bits} --update-cache %postun gtk3 %{_bindir}/gtk-query-immodules-3.0-%{__isa_bits} --update-cache %files -f %{name}10.lang %defattr(-,root,root,-) %doc AUTHORS COPYING README %if %{build_python_library} %dir %{python_sitelib}/ibus %{python_sitelib}/ibus/* %endif %{python_sitearch}/gi/overrides/IBus.py* %dir %{_datadir}/ibus/ %{_bindir}/ibus %{_bindir}/ibus-daemon %{_bindir}/ibus-setup %{_datadir}/ibus/component/gtkpanel.xml %{_datadir}/ibus/component/simple.xml %if %build_emoji_dictionary %{_datadir}/ibus/dicts %endif %{_datadir}/ibus/keymaps/* %{_datadir}/ibus/setup/* %{_datadir}/applications/* %{_datadir}/icons/hicolor/*/apps/* %if %{build_python_library} %{_libexecdir}/ibus-ui-gtk %endif %{_libexecdir}/ibus-ui-gtk3 %{_libexecdir}/ibus-x11 %{_libexecdir}/ibus-engine-simple # %{_sysconfdir}/xdg/autostart/ibus.desktop %{_datadir}/bash-completion/completions/ibus.bash %config %{_xinputconf} %files libs %defattr(-,root,root,-) %{_libdir}/libibus-1.0.so.* %{_libdir}/girepository-1.0/IBus-1.0.typelib %files gconf %defattr(-,root,root,-) %{_datadir}/ibus/component/gconf.xml %{_libexecdir}/ibus-gconf %{_sysconfdir}/gconf/schemas/ibus.schemas %files dconf %defattr(-,root,root,-) %{_datadir}/ibus/component/dconf.xml %{_libexecdir}/ibus-dconf %{_sysconfdir}/dconf/db/ibus.d %{_sysconfdir}/dconf/profile/ibus %{_datadir}/GConf/gsettings/ibus.convert %{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.gschema.xml %files gtk2 %defattr(-,root,root,-) %{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.so %files gtk3 %defattr(-,root,root,-) %{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.so %files devel %defattr(-,root,root,-) %{_libdir}/lib*.so %{_libdir}/pkgconfig/* %{_includedir}/* %{_datadir}/gir-1.0/IBus-1.0.gir %{_datadir}/vala/vapi/ibus-1.0.vapi %{_datadir}/vala/vapi/ibus-1.0.deps %files devel-docs %defattr(-,root,root,-) %{_datadir}/gtk-doc/html/* %changelog * @DATE_DISPLAY@ Peng Huang - @IBUS_VERSION@-1 - Current version.