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