1%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} 2%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} 3%{!?gtk2_binary_version: %define gtk2_binary_version %(pkg-config --variable=gtk_binary_version gtk+-2.0)} 4%{!?gtk3_binary_version: %define gtk3_binary_version %(pkg-config --variable=gtk_binary_version gtk+-3.0)} 5 6# Build flags 7%define build_python_library 0 8%define build_emoji_dictionary 1 9 10%define glib_ver %([ -a %{_libdir}/pkgconfig/glib-2.0.pc ] && pkg-config --modversion glib-2.0 | cut -d. -f 1,2 || echo -n "999") 11%define gconf2_version 2.12.0 12%define dbus_python_version 0.83.0 13%define im_chooser_version 1.2.5 14 15Name: ibus 16Version: @IBUS_VERSION@ 17Release: 1%{?dist} 18Summary: Intelligent Input Bus for Linux OS 19License: LGPLv2+ 20Group: System Environment/Libraries 21URL: https://github.com/ibus/ibus/wiki 22Source0: https://github.com/ibus/ibus/releases/download/%{version}/%{name}-%{version}.tar.gz 23Source1: xinput-ibus 24# Patch0: ibus-HEAD.patch 25 26BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 27 28 29BuildRequires: cvs 30BuildRequires: gettext-devel 31BuildRequires: libtool 32BuildRequires: python 33BuildRequires: gtk2-devel 34BuildRequires: gtk3-devel 35BuildRequires: dbus-glib-devel 36BuildRequires: dbus-python-devel >= %{dbus_python_version} 37BuildRequires: desktop-file-utils 38BuildRequires: gtk-doc 39BuildRequires: GConf2-devel 40BuildRequires: dconf-devel 41BuildRequires: pygobject2-devel 42BuildRequires: intltool 43BuildRequires: iso-codes-devel 44%if %build_emoji_dictionary 45BuildRequires: nodejs-emojione 46BuildRequires: json-glib 47%endif 48 49Requires: %{name}-libs = %{version}-%{release} 50Requires: %{name}-gtk2 = %{version}-%{release} 51Requires: %{name}-gtk3 = %{version}-%{release} 52Requires: %{name}-conf = %{version}-%{release} 53 54Requires: pygtk2 55Requires: iso-codes 56Requires: dbus-python >= %{dbus_python_version} 57Requires: im-chooser >= %{im_chooser_version} 58Requires: notify-python 59Requires: librsvg2 60 61Requires(post): desktop-file-utils 62Requires(postun): desktop-file-utils 63 64Requires(post): %{_sbindir}/alternatives 65Requires(postun): %{_sbindir}/alternatives 66 67Obsoletes: ibus-qt < 1.1.0 68 69%define _xinputconf %{_sysconfdir}/X11/xinit/xinput.d/ibus.conf 70 71%description 72IBus means Intelligent Input Bus. It is an input framework for Linux OS. 73 74%package libs 75Summary: IBus libraries 76Group: System Environment/Libraries 77 78Requires: glib2 >= %{glib_ver} 79Requires: dbus >= 1.2.4 80 81%description libs 82This package contains the libraries for IBus 83 84%package gconf 85Summary: IBus configuration module using GConf 86Group: System Environment/Libraries 87Provides: %{name}-conf = %{version}-%{release} 88Requires: %{name} = %{version}-%{release} 89Requires: GConf2 >= %{gconf2_version} 90Requires(pre): GConf2 >= %{gconf2_version} 91Requires(post): GConf2 >= %{gconf2_version} 92Requires(preun): GConf2 >= %{gconf2_version} 93 94%description gconf 95This package contains ibus configuration module using GConf 96 97%package dconf 98Summary: IBus configuration module using DConf 99Group: System Environment/Libraries 100Provides: %{name}-conf = %{version}-%{release} 101Requires: %{name} = %{version}-%{release} 102Requires(posttrans): dconf 103 104%description dconf 105This package contains ibus configuration module using DConf 106 107%package gtk2 108Summary: IBus im module for gtk2 109Group: System Environment/Libraries 110Requires: %{name} = %{version}-%{release} 111Requires(post): glib2 >= %{glib_ver} 112 113%description gtk2 114This package contains ibus im module for gtk2 115 116%package gtk3 117Summary: IBus im module for gtk3 118Group: System Environment/Libraries 119Requires: %{name} = %{version}-%{release} 120Requires(post): glib2 >= %{glib_ver} 121 122%description gtk3 123This package contains ibus im module for gtk3 124 125%package devel 126Summary: Development tools for ibus 127Group: Development/Libraries 128Requires: %{name} = %{version}-%{release} 129Requires: glib2-devel 130Requires: dbus-devel 131 132%description devel 133The ibus-devel package contains the header files and developer 134docs for ibus. 135 136%package devel-docs 137Summary: Developer documents for ibus 138Group: Development/Libraries 139Requires: %{name} = %{version}-%{release} 140Requires: gtk-doc 141 142%description devel-docs 143The ibus-devel-docs package contains developer documentation for ibus 144 145 146%prep 147%setup -q 148# %patch0 -p1 149 150%build 151 152OPTIONS="--disable-static --enable-gtk2 --enable-gtk3 --enable-xim --disable-gtk-doc --enable-introspection --enable-gconf" 153 154%if %{build_python_library} 155OPTIONS="$OPTIONS --enable-python-library" 156%else 157OPTIONS="$OPTIONS --disable-python-library" 158%endif 159%if %build_emoji_dictionary 160OPTIONS="$OPTIONS --enable-emoji-dict" 161%else 162OPTIONS="$OPTIONS --disable-emoji-dict" 163%endif 164 165 166%configure $OPTIONS 167 168# make -C po update-gmo 169make %{?_smp_mflags} 170 171%install 172rm -rf $RPM_BUILD_ROOT 173make DESTDIR=$RPM_BUILD_ROOT install 174rm -f $RPM_BUILD_ROOT%{_libdir}/libibus-1.0.la 175rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.la 176rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.la 177 178# install xinput config file 179install -pm 644 -D %{SOURCE1} $RPM_BUILD_ROOT%{_xinputconf} 180 181# install .desktop files 182echo "NoDisplay=true" >> $RPM_BUILD_ROOT%{_datadir}/applications/ibus.desktop 183echo "NoDisplay=true" >> $RPM_BUILD_ROOT%{_datadir}/applications/ibus-setup.desktop 184desktop-file-install --delete-original \ 185 --dir $RPM_BUILD_ROOT%{_datadir}/applications \ 186 $RPM_BUILD_ROOT%{_datadir}/applications/* 187 188%find_lang %{name}10 189 190%clean 191rm -rf $RPM_BUILD_ROOT 192 193%post 194# recreate icon cache 195touch --no-create %{_datadir}/icons/hicolor || : 196[ -x %{_bindir}/gtk-update-icon-cache ] && \ 197 %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : 198 199%{_sbindir}/alternatives --install %{_sysconfdir}/X11/xinit/xinputrc xinputrc %{_xinputconf} 83 || : 200 201%post gconf 202export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` 203gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/ibus.schemas >& /dev/null || : 204 205%pre gconf 206if [ "$1" -gt 1 ]; then 207 export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` 208 gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/ibus.schemas >& /dev/null || : 209fi 210 211%preun gconf 212if [ "$1" -eq 0 ]; then 213 export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` 214 gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/ibus.schemas >& /dev/null || : 215fi 216 217%postun 218# recreate icon cache 219touch --no-create %{_datadir}/icons/hicolor || : 220[ -x %{_bindir}/gtk-update-icon-cache ] && \ 221 %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : 222 223if [ "$1" = "0" ]; then 224 %{_sbindir}/alternatives --remove xinputrc %{_xinputconf} || : 225 # if alternative was set to manual, reset to auto 226 [ -L %{_sysconfdir}/alternatives/xinputrc -a "`readlink %{_sysconfdir}/alternatives/xinputrc`" = "%{_xinputconf}" ] && %{_sbindir}/alternatives --auto xinputrc || : 227fi 228 229%postun dconf 230if [ "$1" -eq 0 ] ; then 231 /usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : 232 rm -f %{_sysconfdir}/dconf/db/ibus 233fi 234 235%posttrans dconf 236/usr/bin/glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : 237dconf update &> /dev/null || : 238 239%post libs -p /sbin/ldconfig 240 241%postun libs -p /sbin/ldconfig 242 243%post gtk2 244%{_bindir}/update-gtk-immodules %{_host} 245 246%postun gtk2 247%{_bindir}/update-gtk-immodules %{_host} 248 249%post gtk3 250%{_bindir}/gtk-query-immodules-3.0-%{__isa_bits} --update-cache 251 252%postun gtk3 253%{_bindir}/gtk-query-immodules-3.0-%{__isa_bits} --update-cache 254 255%files -f %{name}10.lang 256%defattr(-,root,root,-) 257%doc AUTHORS COPYING README 258 259%if %{build_python_library} 260 %dir %{python_sitelib}/ibus 261 %{python_sitelib}/ibus/* 262%endif 263 264%{python_sitearch}/gi/overrides/IBus.py* 265 266%dir %{_datadir}/ibus/ 267%{_bindir}/ibus 268%{_bindir}/ibus-daemon 269%{_bindir}/ibus-setup 270%{_datadir}/ibus/component/gtkpanel.xml 271%{_datadir}/ibus/component/simple.xml 272%if %build_emoji_dictionary 273%{_datadir}/ibus/dicts 274%endif 275%{_datadir}/ibus/keymaps/* 276%{_datadir}/ibus/setup/* 277 278 279%{_datadir}/applications/* 280%{_datadir}/icons/hicolor/*/apps/* 281%if %{build_python_library} 282 %{_libexecdir}/ibus-ui-gtk 283%endif 284%{_libexecdir}/ibus-ui-gtk3 285%{_libexecdir}/ibus-x11 286%{_libexecdir}/ibus-engine-simple 287# %{_sysconfdir}/xdg/autostart/ibus.desktop 288%{_datadir}/bash-completion/completions/ibus.bash 289%config %{_xinputconf} 290 291%files libs 292%defattr(-,root,root,-) 293%{_libdir}/libibus-1.0.so.* 294%{_libdir}/girepository-1.0/IBus-1.0.typelib 295 296%files gconf 297%defattr(-,root,root,-) 298%{_datadir}/ibus/component/gconf.xml 299%{_libexecdir}/ibus-gconf 300%{_sysconfdir}/gconf/schemas/ibus.schemas 301 302%files dconf 303%defattr(-,root,root,-) 304%{_datadir}/ibus/component/dconf.xml 305%{_libexecdir}/ibus-dconf 306%{_sysconfdir}/dconf/db/ibus.d 307%{_sysconfdir}/dconf/profile/ibus 308%{_datadir}/GConf/gsettings/ibus.convert 309%{_datadir}/glib-2.0/schemas/org.freedesktop.ibus.gschema.xml 310 311%files gtk2 312%defattr(-,root,root,-) 313%{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.so 314 315%files gtk3 316%defattr(-,root,root,-) 317%{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.so 318 319%files devel 320%defattr(-,root,root,-) 321%{_libdir}/lib*.so 322%{_libdir}/pkgconfig/* 323%{_includedir}/* 324%{_datadir}/gir-1.0/IBus-1.0.gir 325%{_datadir}/vala/vapi/ibus-1.0.vapi 326%{_datadir}/vala/vapi/ibus-1.0.deps 327 328%files devel-docs 329%defattr(-,root,root,-) 330%{_datadir}/gtk-doc/html/* 331 332%changelog 333* @DATE_DISPLAY@ Peng Huang <shawn.p.huang@gmail.com> - @IBUS_VERSION@-1 334- Current version. 335