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