mirror of
https://github.com/Zeckmathederg/glfs.git
synced 2025-02-03 23:07:23 +08:00
cb3d7ec5c9
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.
378 lines
12 KiB
XML
378 lines
12 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|
<!ENTITY % general-entities SYSTEM "../../general.ent">
|
|
%general-entities;
|
|
|
|
<!ENTITY ibus-download-http "https://github.com/ibus/ibus/archive/refs/tags/&ibus-version;/ibus-&ibus-version;.tar.gz">
|
|
<!ENTITY ibus-download-ftp " ">
|
|
<!ENTITY ibus-md5sum "2e29a7fb0f8c5ffcf42462fda45348fd">
|
|
<!ENTITY ibus-size "1.4 MB">
|
|
<!ENTITY ibus-buildsize "54 MB (add 3 MB for tests)">
|
|
<!ENTITY ibus-time "0.3 SBU (Using parallelism=4; add 0.6 SBU for tests)">
|
|
<!-- Since UCD.zip can be used by gucharmap too, let's use the same version:
|
|
This prevents version mismatches, since UCD.zip filename is not versioned.
|
|
-->
|
|
<!ENTITY ucd-download-http "https://www.unicode.org/Public/zipped/&gucharmap-major-version;.0/UCD.zip">
|
|
]>
|
|
|
|
<sect1 id="ibus" xreflabel="ibus-&ibus-version;">
|
|
<?dbhtml filename="ibus.html"?>
|
|
|
|
|
|
<title>ibus-&ibus-version;</title>
|
|
|
|
<indexterm zone="ibus">
|
|
<primary sortas="a-ibus">ibus</primary>
|
|
</indexterm>
|
|
|
|
<sect2 role="package">
|
|
<title>Introduction to ibus</title>
|
|
|
|
<para>
|
|
<application>ibus</application> is an Intelligent Input Bus. It is a new
|
|
input framework for the Linux OS. It provides a fully featured and user
|
|
friendly input method user interface.
|
|
</para>
|
|
|
|
&lfs120_checked;
|
|
|
|
<bridgehead renderas="sect3">Package Information</bridgehead>
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<para>
|
|
Download (HTTP): <ulink url="&ibus-download-http;"/>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Download (FTP): <ulink url="&ibus-download-ftp;"/>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Download MD5 sum: &ibus-md5sum;
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Download size: &ibus-size;
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Estimated disk space required: &ibus-buildsize;
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Estimated build time: &ibus-time;
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
|
|
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<para>
|
|
Unicode Character Database:
|
|
<ulink url="&ucd-download-http;"> &ucd-download-http;</ulink>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<bridgehead renderas="sect3">ibus Dependencies</bridgehead>
|
|
|
|
<bridgehead renderas="sect4">Required</bridgehead>
|
|
<para role="required">
|
|
<xref linkend="dconf"/>,
|
|
<!-- needed since we're using autogen.sh -->
|
|
<xref linkend="iso-codes"/>, and
|
|
<xref linkend="vala"/>
|
|
</para>
|
|
|
|
<bridgehead renderas="sect4">Recommended</bridgehead>
|
|
<para role="recommended">
|
|
<xref linkend="gobject-introspection"/>,
|
|
<xref linkend="gtk3"/>, and
|
|
<xref linkend="libnotify"/>
|
|
</para>
|
|
|
|
<bridgehead renderas="sect4">Optional</bridgehead>
|
|
<para role="optional">
|
|
<xref linkend="gtk4"/> (to build IM module for it),
|
|
<xref linkend="gtk-doc"/> (for generating API documentation),
|
|
<xref linkend="dbus-python"/> and
|
|
<xref linkend="pygobject3"/> (both to build the Python support library),
|
|
<!--<xref linkend="pyxdg" role="runtime"/>
|
|
(runtime, for the <command>ibus-setup</command>), and
|
|
NOTE: The reference to the 'xdg' python module is commented out in the source -->
|
|
<xref linkend="libxkbcommon"/>,
|
|
<xref linkend="wayland"/> (both to build the Wayland support programs),
|
|
<ulink url="https://www.joypixels.com/">EmojiOne</ulink>, and
|
|
<ulink url="https://github.com/AyatanaIndicators/libdbusmenu">libdbusmenu</ulink>
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="installation">
|
|
<title>Installation of ibus</title>
|
|
|
|
<!--
|
|
<para>
|
|
If the optional Unicode Character Database was downloaded, install it
|
|
now as the <systemitem class="username">root</systemitem> user:
|
|
</para>
|
|
-->
|
|
|
|
<para>
|
|
First, install the Unicode Character Database as the &root; user:
|
|
</para>
|
|
|
|
<screen role="root"><userinput>mkdir -p /usr/share/unicode/ucd &&
|
|
unzip -uo ../UCD.zip -d /usr/share/unicode/ucd</userinput></screen>
|
|
|
|
<!--
|
|
<note>
|
|
<para>
|
|
Be sure to also remove the - -disable-unicode-dict in
|
|
the configure step below.
|
|
</para>
|
|
</note>
|
|
-->
|
|
<para>
|
|
Fix an issue with deprecated schema entries:
|
|
</para>
|
|
|
|
<screen><userinput>sed -e 's@/desktop/ibus@/org/freedesktop/ibus@g' \
|
|
-i data/dconf/org.freedesktop.ibus.gschema.xml</userinput></screen>
|
|
|
|
<para>
|
|
If <xref linkend='gtk-doc'/> is not installed, remove the references
|
|
to it:
|
|
</para>
|
|
|
|
<screen><userinput>if ! [ -e /usr/bin/gtkdocize ]; then
|
|
sed '/docs/d;/GTK_DOC/d' -i Makefile.am configure.ac
|
|
fi</userinput></screen>
|
|
|
|
<para>
|
|
Install <application>ibus</application> by running the following
|
|
commands:
|
|
</para>
|
|
|
|
<screen revision='sysv'><userinput>SAVE_DIST_FILES=1 NOCONFIGURE=1 ./autogen.sh &&
|
|
|
|
PYTHON=python3 \
|
|
./configure --prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--disable-python2 \
|
|
--disable-appindicator \
|
|
--disable-emoji-dict \
|
|
--disable-systemd-services &&
|
|
make</userinput></screen>
|
|
|
|
<screen revision='systemd'><userinput>SAVE_DIST_FILES=1 NOCONFIGURE=1 ./autogen.sh &&
|
|
|
|
PYTHON=python3 \
|
|
./configure --prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--disable-python2 \
|
|
--disable-appindicator \
|
|
--disable-emoji-dict &&
|
|
make</userinput></screen>
|
|
|
|
<para>
|
|
To test the results, issue: <command>make -k check</command>.
|
|
The test named ibus-compose fails because it uses some locales
|
|
not installed in LFS.
|
|
<!-- The log says "No idea to simulate key events in Wayland"
|
|
in a Mutter wayland session. -->
|
|
</para>
|
|
|
|
<para>
|
|
Now, as the &root; user:
|
|
</para>
|
|
|
|
<screen role="root"><userinput>make install</userinput></screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="commands">
|
|
<title>Command Explanations</title>
|
|
|
|
<para>
|
|
<parameter>--disable-appindicator</parameter>: This switch disables
|
|
use of libdbusmenu. Omit if you installed the optional dependency.
|
|
</para>
|
|
|
|
<para>
|
|
<parameter>--disable-emoji-dict</parameter>: This switch disables the
|
|
use of emoticon dictionaries. Omit if you installed the optional
|
|
package.
|
|
</para>
|
|
|
|
<para>
|
|
<option>--disable-gtk2</option>: This switch disables building
|
|
the <application>GTK+ 2</application> immodule. Use it if
|
|
you have not installed <application>GTK+ 2</application>.
|
|
</para>
|
|
|
|
<para>
|
|
<option>--enable-gtk4</option>: This switch enables building
|
|
the <application>GTK 4</application> immodule. Use it if
|
|
you have installed <application>GTK 4</application>.
|
|
</para>
|
|
|
|
<para>
|
|
<option>--enable-python-library</option>: This switch enables
|
|
building the <application>Python</application> support
|
|
library. Use it if you have installed the optional Python modules.
|
|
</para>
|
|
|
|
<para>
|
|
<option>--enable-wayland</option>: This switch enables building
|
|
the <application>Wayland</application> support programs.
|
|
Use it if you have installed the optional dependencies.
|
|
</para>
|
|
|
|
<para>
|
|
<envar>NOCONFIGURE=1</envar>: Prevent <command>autogen.sh</command>
|
|
from running the generated <command>configure</command> script. We'll
|
|
run the script manually instead of relying on
|
|
<command>autogen.sh</command> to run it, because
|
|
<command>autogen.sh</command> would set <option>-fsanitize=address
|
|
-fsanitize=leak</option> in <envar>CFLAGS</envar> running
|
|
<command>configure</command>, but those compiler options are not
|
|
suitable for productive use and they may also cause a build failure.
|
|
<!-- GCC security policy: "Libraries like libvtv and the sanitizers
|
|
are intended to be used in diagnostic cases and not intended for
|
|
use in sensitive environments." In my build it also causes
|
|
"compose/sequences-little-endian" bail out with a sanitizer
|
|
warning and the package to FTBFS. -->
|
|
</para>
|
|
|
|
<para>
|
|
<envar>PYTHON=python3</envar>: This environment variable makes
|
|
the <command>autogen.sh</command> script look for
|
|
<application>Python 3</application>. Use it if you want
|
|
to build the <application>Python 3</application> support
|
|
library.
|
|
</para>
|
|
|
|
<para>
|
|
<envar>SAVE_DIST_FILES=1</envar>: This environment variable makes
|
|
the <command>autogen.sh</command> script save some pre-generated
|
|
header files instead of overwriting them when it is run. This prevents
|
|
build failures when generating <filename>ibusemojigen.h</filename>.
|
|
<!-- This is needed because we do not have the Emoji dictionary.-->
|
|
</para>
|
|
|
|
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
href="../../xincludes/gtk-doc-rebuild.xml"/>
|
|
<!--
|
|
<para>
|
|
<command>gzip -dfv ...</command>: Decompress installed man pages
|
|
in accordance with other man pages.
|
|
</para>
|
|
-->
|
|
</sect2>
|
|
|
|
<sect2 role="configuration">
|
|
<title>Configuring Ibus</title>
|
|
|
|
<para>
|
|
If GTK+-3 or GTK+-2 are installed and
|
|
<option>--disable-gtk{3,2}</option> are not used, the ibus IM module
|
|
for GTK+-3 or GTK+-2 will be installed. As the &root; user,
|
|
update a cache file of GTK+-3 or GTK+-2 so the GTK-based applications
|
|
can find the newly installed IM module and use ibus as an input
|
|
method:
|
|
</para>
|
|
|
|
<screen role='nodump'><userinput>gtk-query-immodules-3.0 --update-cache</userinput></screen>
|
|
|
|
<para>
|
|
The command above updates the cache file for GTK+-3. For GTK+-2,
|
|
use <command>gtk-query-immodules-2.0</command> instead of
|
|
<command>gtk-query-immodules-3.0</command>. GTK-4 does not require
|
|
a cache file for IM modules.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 role="content">
|
|
<title>Contents</title>
|
|
|
|
<segmentedlist>
|
|
<segtitle>Installed Programs</segtitle>
|
|
<segtitle>Installed Library</segtitle>
|
|
<segtitle>Installed Directories</segtitle>
|
|
|
|
<seglistitem>
|
|
<seg>
|
|
ibus,
|
|
ibus-daemon, and
|
|
ibus-setup
|
|
</seg>
|
|
<seg>
|
|
libibus-1.0.so and
|
|
im-ibus.so (<application>GTK+ Immodule</application>)
|
|
</seg>
|
|
<seg>
|
|
/etc/dconf/db/ibus.d,
|
|
/usr/include/ibus-1.0,
|
|
/usr/share/gtk-doc/html/ibus, and
|
|
/usr/share/ibus
|
|
</seg>
|
|
</seglistitem>
|
|
</segmentedlist>
|
|
|
|
<variablelist>
|
|
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
|
<?dbfo list-presentation="list"?>
|
|
<?dbhtml list-presentation="table"?>
|
|
|
|
<varlistentry id="ibus-daemon">
|
|
<term><command>ibus-daemon</command></term>
|
|
<listitem>
|
|
<para>
|
|
is the Intelligent Input Bus Daemon
|
|
</para>
|
|
<indexterm zone="ibus ibus-daemon">
|
|
<primary sortas="b-ibus-daemon">ibus-daemon</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="ibus-setup">
|
|
<term><command>ibus-setup</command></term>
|
|
<listitem>
|
|
<para>
|
|
is the <application>GTK+</application> program used to configure
|
|
the <command>ibus-daemon</command>
|
|
</para>
|
|
<indexterm zone="ibus ibus-setup">
|
|
<primary sortas="b-ibus-setup">ibus-setup</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="libibus-1.0">
|
|
<term><filename class="libraryfile">libibus-1.0.so</filename></term>
|
|
<listitem>
|
|
<para>
|
|
contains the <application>ibus</application> API functions
|
|
</para>
|
|
<indexterm zone="ibus libibus-1.0">
|
|
<primary sortas="c-libibus-1.0">libibus-1.0.so</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|