source: general/genutils/ibus.xml@ 99eb823a

12.1 ken/TL2024 lazarus plabs/newcss python3.11 rahul/power-profiles-daemon trunk xry111/llvm18
Last change on this file since 99eb823a was cb3d7ec, checked in by Xi Ruoyao <xry111@…>, 8 months ago

ibus: Various adjustments

  1. Allow building without gtk-doc.
  2. Run "configure" manually instead of let autogen.sh run it. It's because autogen.sh sets CFLAGS, producing binaries with optimization off and debug on. More seriously, the debug feature it uses (sanitizer) is not suitable for a release build per GCC security policy.
  3. Add a link to the external dependency libdbusmenu.
  • Property mode set to 100644
File size: 12.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY ibus-download-http "https://github.com/ibus/ibus/archive/refs/tags/&ibus-version;/ibus-&ibus-version;.tar.gz">
8 <!ENTITY ibus-download-ftp " ">
9 <!ENTITY ibus-md5sum "2e29a7fb0f8c5ffcf42462fda45348fd">
10 <!ENTITY ibus-size "1.4 MB">
11 <!ENTITY ibus-buildsize "54 MB (add 3 MB for tests)">
12 <!ENTITY ibus-time "0.3 SBU (Using parallelism=4; add 0.6 SBU for tests)">
13<!-- Since UCD.zip can be used by gucharmap too, let's use the same version:
14 This prevents version mismatches, since UCD.zip filename is not versioned.
15-->
16 <!ENTITY ucd-download-http "https://www.unicode.org/Public/zipped/&gucharmap-major-version;.0/UCD.zip">
17]>
18
19<sect1 id="ibus" xreflabel="ibus-&ibus-version;">
20 <?dbhtml filename="ibus.html"?>
21
22
23 <title>ibus-&ibus-version;</title>
24
25 <indexterm zone="ibus">
26 <primary sortas="a-ibus">ibus</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to ibus</title>
31
32 <para>
33 <application>ibus</application> is an Intelligent Input Bus. It is a new
34 input framework for the Linux OS. It provides a fully featured and user
35 friendly input method user interface.
36 </para>
37
38 &lfs120_checked;
39
40 <bridgehead renderas="sect3">Package Information</bridgehead>
41 <itemizedlist spacing="compact">
42 <listitem>
43 <para>
44 Download (HTTP): <ulink url="&ibus-download-http;"/>
45 </para>
46 </listitem>
47 <listitem>
48 <para>
49 Download (FTP): <ulink url="&ibus-download-ftp;"/>
50 </para>
51 </listitem>
52 <listitem>
53 <para>
54 Download MD5 sum: &ibus-md5sum;
55 </para>
56 </listitem>
57 <listitem>
58 <para>
59 Download size: &ibus-size;
60 </para>
61 </listitem>
62 <listitem>
63 <para>
64 Estimated disk space required: &ibus-buildsize;
65 </para>
66 </listitem>
67 <listitem>
68 <para>
69 Estimated build time: &ibus-time;
70 </para>
71 </listitem>
72 </itemizedlist>
73
74 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
75
76 <itemizedlist spacing="compact">
77 <listitem>
78 <para>
79 Unicode Character Database:
80 <ulink url="&ucd-download-http;"> &ucd-download-http;</ulink>
81 </para>
82 </listitem>
83 </itemizedlist>
84
85 <bridgehead renderas="sect3">ibus Dependencies</bridgehead>
86
87 <bridgehead renderas="sect4">Required</bridgehead>
88 <para role="required">
89 <xref linkend="dconf"/>,
90 <!-- needed since we're using autogen.sh -->
91 <xref linkend="iso-codes"/>, and
92 <xref linkend="vala"/>
93 </para>
94
95 <bridgehead renderas="sect4">Recommended</bridgehead>
96 <para role="recommended">
97 <xref linkend="gobject-introspection"/>,
98 <xref linkend="gtk3"/>, and
99 <xref linkend="libnotify"/>
100 </para>
101
102 <bridgehead renderas="sect4">Optional</bridgehead>
103 <para role="optional">
104 <xref linkend="gtk4"/> (to build IM module for it),
105 <xref linkend="gtk-doc"/> (for generating API documentation),
106 <xref linkend="dbus-python"/> and
107 <xref linkend="pygobject3"/> (both to build the Python support library),
108 <!--<xref linkend="pyxdg" role="runtime"/>
109 (runtime, for the <command>ibus-setup</command>), and
110 NOTE: The reference to the 'xdg' python module is commented out in the source -->
111 <xref linkend="libxkbcommon"/>,
112 <xref linkend="wayland"/> (both to build the Wayland support programs),
113 <ulink url="https://www.joypixels.com/">EmojiOne</ulink>, and
114 <ulink url="https://github.com/AyatanaIndicators/libdbusmenu">libdbusmenu</ulink>
115 </para>
116
117 </sect2>
118
119 <sect2 role="installation">
120 <title>Installation of ibus</title>
121
122<!--
123 <para>
124 If the optional Unicode Character Database was downloaded, install it
125 now as the <systemitem class="username">root</systemitem> user:
126 </para>
127-->
128
129 <para>
130 First, install the Unicode Character Database as the &root; user:
131 </para>
132
133<screen role="root"><userinput>mkdir -p /usr/share/unicode/ucd &amp;&amp;
134unzip -uo ../UCD.zip -d /usr/share/unicode/ucd</userinput></screen>
135
136<!--
137 <note>
138 <para>
139 Be sure to also remove the - -disable-unicode-dict in
140 the configure step below.
141 </para>
142 </note>
143-->
144 <para>
145 Fix an issue with deprecated schema entries:
146 </para>
147
148<screen><userinput>sed -e 's@/desktop/ibus@/org/freedesktop/ibus@g' \
149 -i data/dconf/org.freedesktop.ibus.gschema.xml</userinput></screen>
150
151 <para>
152 If <xref linkend='gtk-doc'/> is not installed, remove the references
153 to it:
154 </para>
155
156<screen><userinput>if ! [ -e /usr/bin/gtkdocize ]; then
157 sed '/docs/d;/GTK_DOC/d' -i Makefile.am configure.ac
158fi</userinput></screen>
159
160 <para>
161 Install <application>ibus</application> by running the following
162 commands:
163 </para>
164
165<screen revision='sysv'><userinput>SAVE_DIST_FILES=1 NOCONFIGURE=1 ./autogen.sh &amp;&amp;
166
167PYTHON=python3 \
168./configure --prefix=/usr \
169 --sysconfdir=/etc \
170 --disable-python2 \
171 --disable-appindicator \
172 --disable-emoji-dict \
173 --disable-systemd-services &amp;&amp;
174make</userinput></screen>
175
176<screen revision='systemd'><userinput>SAVE_DIST_FILES=1 NOCONFIGURE=1 ./autogen.sh &amp;&amp;
177
178PYTHON=python3 \
179./configure --prefix=/usr \
180 --sysconfdir=/etc \
181 --disable-python2 \
182 --disable-appindicator \
183 --disable-emoji-dict &amp;&amp;
184make</userinput></screen>
185
186 <para>
187 To test the results, issue: <command>make -k check</command>.
188 The test named ibus-compose fails because it uses some locales
189 not installed in LFS.
190 <!-- The log says "No idea to simulate key events in Wayland"
191 in a Mutter wayland session. -->
192 </para>
193
194 <para>
195 Now, as the &root; user:
196 </para>
197
198<screen role="root"><userinput>make install</userinput></screen>
199
200 </sect2>
201
202 <sect2 role="commands">
203 <title>Command Explanations</title>
204
205 <para>
206 <parameter>--disable-appindicator</parameter>: This switch disables
207 use of libdbusmenu. Omit if you installed the optional dependency.
208 </para>
209
210 <para>
211 <parameter>--disable-emoji-dict</parameter>: This switch disables the
212 use of emoticon dictionaries. Omit if you installed the optional
213 package.
214 </para>
215
216 <para>
217 <option>--disable-gtk2</option>: This switch disables building
218 the <application>GTK+ 2</application> immodule. Use it if
219 you have not installed <application>GTK+ 2</application>.
220 </para>
221
222 <para>
223 <option>--enable-gtk4</option>: This switch enables building
224 the <application>GTK 4</application> immodule. Use it if
225 you have installed <application>GTK 4</application>.
226 </para>
227
228 <para>
229 <option>--enable-python-library</option>: This switch enables
230 building the <application>Python</application> support
231 library. Use it if you have installed the optional Python modules.
232 </para>
233
234 <para>
235 <option>--enable-wayland</option>: This switch enables building
236 the <application>Wayland</application> support programs.
237 Use it if you have installed the optional dependencies.
238 </para>
239
240 <para>
241 <envar>NOCONFIGURE=1</envar>: Prevent <command>autogen.sh</command>
242 from running the generated <command>configure</command> script. We'll
243 run the script manually instead of relying on
244 <command>autogen.sh</command> to run it, because
245 <command>autogen.sh</command> would set <option>-fsanitize=address
246 -fsanitize=leak</option> in <envar>CFLAGS</envar> running
247 <command>configure</command>, but those compiler options are not
248 suitable for productive use and they may also cause a build failure.
249 <!-- GCC security policy: "Libraries like libvtv and the sanitizers
250 are intended to be used in diagnostic cases and not intended for
251 use in sensitive environments." In my build it also causes
252 "compose/sequences-little-endian" bail out with a sanitizer
253 warning and the package to FTBFS. -->
254 </para>
255
256 <para>
257 <envar>PYTHON=python3</envar>: This environment variable makes
258 the <command>autogen.sh</command> script look for
259 <application>Python 3</application>. Use it if you want
260 to build the <application>Python 3</application> support
261 library.
262 </para>
263
264 <para>
265 <envar>SAVE_DIST_FILES=1</envar>: This environment variable makes
266 the <command>autogen.sh</command> script save some pre-generated
267 header files instead of overwriting them when it is run. This prevents
268 build failures when generating <filename>ibusemojigen.h</filename>.
269 <!-- This is needed because we do not have the Emoji dictionary.-->
270 </para>
271
272 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
273 href="../../xincludes/gtk-doc-rebuild.xml"/>
274<!--
275 <para>
276 <command>gzip -dfv ...</command>: Decompress installed man pages
277 in accordance with other man pages.
278 </para>
279-->
280 </sect2>
281
282 <sect2 role="configuration">
283 <title>Configuring Ibus</title>
284
285 <para>
286 If GTK+-3 or GTK+-2 are installed and
287 <option>--disable-gtk{3,2}</option> are not used, the ibus IM module
288 for GTK+-3 or GTK+-2 will be installed. As the &root; user,
289 update a cache file of GTK+-3 or GTK+-2 so the GTK-based applications
290 can find the newly installed IM module and use ibus as an input
291 method:
292 </para>
293
294 <screen role='nodump'><userinput>gtk-query-immodules-3.0 --update-cache</userinput></screen>
295
296 <para>
297 The command above updates the cache file for GTK+-3. For GTK+-2,
298 use <command>gtk-query-immodules-2.0</command> instead of
299 <command>gtk-query-immodules-3.0</command>. GTK-4 does not require
300 a cache file for IM modules.
301 </para>
302 </sect2>
303
304 <sect2 role="content">
305 <title>Contents</title>
306
307 <segmentedlist>
308 <segtitle>Installed Programs</segtitle>
309 <segtitle>Installed Library</segtitle>
310 <segtitle>Installed Directories</segtitle>
311
312 <seglistitem>
313 <seg>
314 ibus,
315 ibus-daemon, and
316 ibus-setup
317 </seg>
318 <seg>
319 libibus-1.0.so and
320 im-ibus.so (<application>GTK+ Immodule</application>)
321 </seg>
322 <seg>
323 /etc/dconf/db/ibus.d,
324 /usr/include/ibus-1.0,
325 /usr/share/gtk-doc/html/ibus, and
326 /usr/share/ibus
327 </seg>
328 </seglistitem>
329 </segmentedlist>
330
331 <variablelist>
332 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
333 <?dbfo list-presentation="list"?>
334 <?dbhtml list-presentation="table"?>
335
336 <varlistentry id="ibus-daemon">
337 <term><command>ibus-daemon</command></term>
338 <listitem>
339 <para>
340 is the Intelligent Input Bus Daemon
341 </para>
342 <indexterm zone="ibus ibus-daemon">
343 <primary sortas="b-ibus-daemon">ibus-daemon</primary>
344 </indexterm>
345 </listitem>
346 </varlistentry>
347
348 <varlistentry id="ibus-setup">
349 <term><command>ibus-setup</command></term>
350 <listitem>
351 <para>
352 is the <application>GTK+</application> program used to configure
353 the <command>ibus-daemon</command>
354 </para>
355 <indexterm zone="ibus ibus-setup">
356 <primary sortas="b-ibus-setup">ibus-setup</primary>
357 </indexterm>
358 </listitem>
359 </varlistentry>
360
361 <varlistentry id="libibus-1.0">
362 <term><filename class="libraryfile">libibus-1.0.so</filename></term>
363 <listitem>
364 <para>
365 contains the <application>ibus</application> API functions
366 </para>
367 <indexterm zone="ibus libibus-1.0">
368 <primary sortas="c-libibus-1.0">libibus-1.0.so</primary>
369 </indexterm>
370 </listitem>
371 </varlistentry>
372
373 </variablelist>
374
375 </sect2>
376
377</sect1>
Note: See TracBrowser for help on using the repository browser.