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