source: general/genutils/ibus.xml@ f34b833

12.1 12.2 gimp3 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/for-12.3 xry111/llvm18 xry111/spidermonkey128
Last change on this file since f34b833 was cb3d7ec, checked in by Xi Ruoyao <xry111@…>, 10 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
RevLine 
[bb535118]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
[e1caa7a]7 <!ENTITY ibus-download-http "https://github.com/ibus/ibus/archive/refs/tags/&ibus-version;/ibus-&ibus-version;.tar.gz">
[bb535118]8 <!ENTITY ibus-download-ftp " ">
[494030b]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)">
[0cce0bf8]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">
[bb535118]17]>
18
[d47ad20c]19<sect1 id="ibus" xreflabel="ibus-&ibus-version;">
[bb535118]20 <?dbhtml filename="ibus.html"?>
21
22
[d47ad20c]23 <title>ibus-&ibus-version;</title>
[bb535118]24
25 <indexterm zone="ibus">
[d47ad20c]26 <primary sortas="a-ibus">ibus</primary>
[bb535118]27 </indexterm>
28
29 <sect2 role="package">
[d47ad20c]30 <title>Introduction to ibus</title>
[bb535118]31
32 <para>
[d47ad20c]33 <application>ibus</application> is an Intelligent Input Bus. It is a new
[8558044]34 input framework for the Linux OS. It provides a fully featured and user
[40273c46]35 friendly input method user interface.
[bb535118]36 </para>
37
[8c5fe7b]38 &lfs120_checked;
[bb535118]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>
[8558044]73
[0b12914]74 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
[321223a]75
[cbcf148]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>
[321223a]84
[d47ad20c]85 <bridgehead renderas="sect3">ibus Dependencies</bridgehead>
[bb535118]86
87 <bridgehead renderas="sect4">Required</bridgehead>
88 <para role="required">
[8b5769f]89 <xref linkend="dconf"/>,
[0b12914]90 <!-- needed since we're using autogen.sh -->
[8b5769f]91 <xref linkend="iso-codes"/>, and
92 <xref linkend="vala"/>
[bb535118]93 </para>
[8558044]94
[bb535118]95 <bridgehead renderas="sect4">Recommended</bridgehead>
96 <para role="recommended">
97 <xref linkend="gobject-introspection"/>,
[494030b]98 <xref linkend="gtk3"/>, and
[8b5769f]99 <xref linkend="libnotify"/>
[bb535118]100 </para>
101
102 <bridgehead renderas="sect4">Optional</bridgehead>
103 <para role="optional">
[2d1da1f]104 <xref linkend="gtk4"/> (to build IM module for it),
[cb3d7ec]105 <xref linkend="gtk-doc"/> (for generating API documentation),
[bb535118]106 <xref linkend="dbus-python"/> and
107 <xref linkend="pygobject3"/> (both to build the Python support library),
[cede1f0]108 <!--<xref linkend="pyxdg" role="runtime"/>
[2d1da1f]109 (runtime, for the <command>ibus-setup</command>), and
[cede1f0]110 NOTE: The reference to the 'xdg' python module is commented out in the source -->
[40273c46]111 <xref linkend="libxkbcommon"/>,
[cb3d7ec]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>
[bb535118]115 </para>
116
117 </sect2>
118
119 <sect2 role="installation">
[d47ad20c]120 <title>Installation of ibus</title>
[bb535118]121
[0b12914]122<!--
[b7a85cd9]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>
[0b12914]127-->
128
129 <para>
130 First, install the Unicode Character Database as the &root; user:
131 </para>
[321223a]132
[7199a09]133<screen role="root"><userinput>mkdir -p /usr/share/unicode/ucd &amp;&amp;
134unzip -uo ../UCD.zip -d /usr/share/unicode/ucd</userinput></screen>
[0b12914]135
[494030b]136<!--
[b7a85cd9]137 <note>
138 <para>
[494030b]139 Be sure to also remove the - -disable-unicode-dict in
[b7a85cd9]140 the configure step below.
141 </para>
142 </note>
[494030b]143-->
[b7a85cd9]144 <para>
[0b12914]145 Fix an issue with deprecated schema entries:
146 </para>
[3ca1da7]147
[494030b]148<screen><userinput>sed -e 's@/desktop/ibus@/org/freedesktop/ibus@g' \
149 -i data/dconf/org.freedesktop.ibus.gschema.xml</userinput></screen>
[63256d93]150
[cb3d7ec]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
[bb535118]160 <para>
[d47ad20c]161 Install <application>ibus</application> by running the following
[bb535118]162 commands:
163 </para>
164
[cb3d7ec]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;
[f238076]174make</userinput></screen>
175
[cb3d7ec]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;
[3ca1da7]184make</userinput></screen>
[bb535118]185
186 <para>
187 To test the results, issue: <command>make -k check</command>.
[7f5b105a]188 The test named ibus-compose fails because it uses some locales
189 not installed in LFS.
[21d89b9]190 <!-- The log says "No idea to simulate key events in Wayland"
191 in a Mutter wayland session. -->
[bb535118]192 </para>
193
194 <para>
[494030b]195 Now, as the &root; user:
[bb535118]196 </para>
197
[494030b]198<screen role="root"><userinput>make install</userinput></screen>
[bb535118]199
200 </sect2>
201
202 <sect2 role="commands">
203 <title>Command Explanations</title>
204
[40273c46]205 <para>
[cb3d7ec]206 <parameter>--disable-appindicator</parameter>: This switch disables
207 use of libdbusmenu. Omit if you installed the optional dependency.
[40273c46]208 </para>
209
[321223a]210 <para>
[cb3d7ec]211 <parameter>--disable-emoji-dict</parameter>: This switch disables the
212 use of emoticon dictionaries. Omit if you installed the optional
213 package.
[321223a]214 </para>
215
[bb535118]216 <para>
217 <option>--disable-gtk2</option>: This switch disables building
[30712eb]218 the <application>GTK+ 2</application> immodule. Use it if
[bb535118]219 you have not installed <application>GTK+ 2</application>.
220 </para>
221
[2d1da1f]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
[bb535118]228 <para>
229 <option>--enable-python-library</option>: This switch enables
[30712eb]230 building the <application>Python</application> support
[494030b]231 library. Use it if you have installed the optional Python modules.
[bb535118]232 </para>
233
234 <para>
235 <option>--enable-wayland</option>: This switch enables building
[30712eb]236 the <application>Wayland</application> support programs.
[bb535118]237 Use it if you have installed the optional dependencies.
238 </para>
239
[cb3d7ec]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
[bb535118]256 <para>
[494030b]257 <envar>PYTHON=python3</envar>: This environment variable makes
258 the <command>autogen.sh</command> script look for
[bb535118]259 <application>Python 3</application>. Use it if you want
260 to build the <application>Python 3</application> support
[494030b]261 library.
[bb535118]262 </para>
263
[0b12914]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
[bb535118]272 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
273 href="../../xincludes/gtk-doc-rebuild.xml"/>
[494030b]274<!--
[483f57a]275 <para>
276 <command>gzip -dfv ...</command>: Decompress installed man pages
277 in accordance with other man pages.
278 </para>
[494030b]279-->
[bb535118]280 </sect2>
281
[0fe14c3]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
[bb535118]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>
[8558044]314 ibus,
315 ibus-daemon, and
[a172df1]316 ibus-setup
[bb535118]317 </seg>
318 <seg>
[8558044]319 libibus-1.0.so and
[a172df1]320 im-ibus.so (<application>GTK+ Immodule</application>)
[bb535118]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>
[4c24eb0a]340 is the Intelligent Input Bus Daemon
[bb535118]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
[4c24eb0a]353 the <command>ibus-daemon</command>
[bb535118]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>
[4c24eb0a]365 contains the <application>ibus</application> API functions
[bb535118]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.