glfs/x/lib/pango.xml
2024-01-19 22:39:35 +01:00

300 lines
9.3 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!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 pango-download-http "&gnome-download-http;/pango/&pango-minor;/pango-&pango-version;.tar.xz">
<!ENTITY pango-download-ftp " ">
<!ENTITY pango-md5sum "baa2a0a67c71935165a205a76da25954">
<!ENTITY pango-size "4.1 MB">
<!ENTITY pango-buildsize "47 MB (with tests)">
<!ENTITY pango-time "0.1 SBU (Using parallelism=4; with tests)">
]>
<sect1 id="pango" xreflabel="Pango-&pango-version;">
<?dbhtml filename="pango.html" ?>
<title>Pango-&pango-version;</title>
<indexterm zone="pango">
<primary sortas="a-Pango">Pango</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Pango</title>
<para>
<application>Pango</application> is a library for laying out and rendering
text, with an emphasis on internationalization. It can be used anywhere
that text layout is needed, though most of the work on
<application>Pango</application> so far has been done in the context of
the <application>GTK+</application> widget toolkit.
</para>
&lfs120_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&pango-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&pango-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &pango-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &pango-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &pango-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &pango-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Pango Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="fontconfig"/> (must be built with
<xref linkend="freetype2"/> using <xref linkend="harfbuzz"/>),
<xref linkend="fribidi"/>, and
<xref linkend="glib2"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="cairo"/>,
<xref linkend="gobject-introspection"/> (Required if building GNOME), and
<xref linkend="xorg7-lib"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="cantarell-fonts"/> (for tests),
<!--<xref linkend="gtk-doc"/>,-->
<!--<xref linkend="sysprof"/>,-->
<xref linkend="gi-docgen"/> (to generate documentation),
<ulink url="https://ftpmirror.gnu.org/gnu/help2man">help2man</ulink>,
<ulink url="https://linux.thai.net/projects/libthai">libthai</ulink>, and
<ulink url="&sysprof-url;">sysprof</ulink>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of Pango</title>
<para>
First work around a bug in gcc-13 which triggers a false warning
that breaks a release build:
</para>
<screen><userinput>sed -i '/array-bounds/d' meson.build</userinput></screen>
<para>
Install <application>Pango</application> by running the following
commands:
</para>
<screen><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
meson setup --prefix=/usr \
--buildtype=release \
--wrap-mode=nofallback \
.. &amp;&amp;
ninja</userinput></screen>
<para>
If you have <xref linkend='gi-docgen'/> installed and wish to build
the API documentation for this package, issue:
</para>
<screen remap='doc'><userinput>sed "/docs_dir =/s@\$@ / 'pango-&pango-version;'@" -i ../docs/meson.build &amp;&amp;
meson configure -Dgtk_doc=true &amp;&amp;
ninja</userinput></screen>
<para>
To test the results, issue: <command>ninja test</command>. One test,
<filename>test-font</filename> is known to fail. Some tests may
fail if no Opentype or Truetype fonts are installed in
<filename class='directory'>/usr/share/fonts</filename>.
<!--<filename>test-itemize</filename>, are are known to fail. if
<xref linkend="cantarell-fonts"/> are not installed.-->
<!-- the other problematic tests get skipped now -->
<!-- Even with cantarell-fonts, pango-1.50.9 test-font fails again. -->
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>ninja install</userinput></screen>
<!--
This requires the external help2man program to generate pango-view.1. The version
from lsb_release is insufficient. I'm not sure if the command below is needed
or not if the newer help2man is present. - Bruce
install -vm 644 ../utils/pango-view.1.in /usr/share/man/man1/pango-view.1</userinput></screen>
-->
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/meson-buildtype-release.xml"/>
<para>
<option>-Dintrospection=disabled</option>: Use this switch if you do not
want to use <xref linkend="gobject-introspection"/>.
</para>
<!-- gi-docgen can get installed without this, if deps exist -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/meson-wrap-nofallback.xml"/>
</sect2>
<sect2 role="configuration">
<title>Configuring Pango</title>
<sect3 id="pango-config">
<title>Config Files</title>
<para>
<filename>/etc/pango/pangorc</filename>, <filename>~/.pangorc</filename>
and the file specified in the environment variable
<envar>PANGO_RC_FILE</envar>
</para>
<indexterm zone="pango pango-config">
<primary sortas="e-etc-pango-pangorc">/etc/pango/pangorc</primary>
</indexterm>
<indexterm zone="pango pango-config">
<primary sortas="e-AA.pangorc">~/.pangorc</primary>
</indexterm>
</sect3>
<!--
<sect3>
<title>Configuration Information</title>
<para>
The <application>Pango</application> module path is specified by the key
<userinput><parameter>Pango/ModulesPath</parameter></userinput> in the
<application>Pango</application> config database, which is read from the
config files listed above.
</para>
</sect3>-->
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
pango-list, pango-segmentation, and pango-view
</seg>
<seg>
libpango-1.0.so, libpangocairo-1.0.so, libpangoft2-1.0.so,
and libpangoxft-1.0.so
</seg>
<seg>
/usr/include/pango-1.0 and
/usr/share/doc/pango-&pango-version; (if gi-docgen is available)
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="pango-list">
<term><command>pango-list</command></term>
<listitem>
<para>
displays a list of fonts that <application>Pango</application>
can use that are currently installed on the system
</para>
<indexterm zone="pango pango-list">
<primary sortas="b-pango-list">pango-list</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pango-segmentation">
<term><command>pango-segmentation</command></term>
<listitem>
<para>
shows text segmentation as determined by Pango.
</para>
<indexterm zone="pango pango-segmentation">
<primary sortas="b-pango-segmentation">pango-segmentation</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pango-view">
<term><command>pango-view</command></term>
<listitem>
<para>
renders a given text file through <application>Pango</application>
for viewing purposes
</para>
<indexterm zone="pango pango-view">
<primary sortas="b-pango-view">pango-view</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libpango-1">
<term><filename class="libraryfile">libpango-1.0.so</filename></term>
<listitem>
<para>
contains low level layout rendering routines, a high level driver for
laying out entire blocks of text, and routines to assist in editing
internationalized text
</para>
<indexterm zone="pango libpango-1">
<primary sortas="c-libpango-1">libpango-1.0.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>