mirror of
https://github.com/glfs-book/glfs.git
synced 2026-01-14 00:49:06 +00:00
FreeType2: Remove passes, load HarfBuzz dynamically.
This commit is contained in:
@ -43,6 +43,10 @@
|
||||
<listitem>
|
||||
<para>November 14th, 2025</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[zeckma] - FreeType2: Remove passes, load HarfBuzz
|
||||
dynamically.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>[zeckma] - Cython: 3.1.6 -> 3.2.1.</para>
|
||||
</listitem>
|
||||
|
||||
@ -25,9 +25,8 @@
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="x/libxcb.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="other/which.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="other/libpng.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="other/freetype2-pass1.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="other/freetype2.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="other/harfbuzz.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="other/freetype2-pass2.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="other/fontconfig.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="x/x7lib.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="x/libxcvt.xml"/>
|
||||
|
||||
@ -49,7 +49,7 @@
|
||||
<bridgehead renderas="sect3">Fontconfig Dependencies</bridgehead>
|
||||
|
||||
<para role="required">
|
||||
<xref linkend="freetype2-pass2"/> and
|
||||
<xref linkend="freetype2"/> and
|
||||
<xref linkend="mesonfiles"/> (for lib32)
|
||||
</para>
|
||||
|
||||
|
||||
@ -1,164 +0,0 @@
|
||||
<?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 freetype2-download "&sourceforge-dl;/freetype/freetype-&freetype2-version;.tar.xz">
|
||||
]>
|
||||
|
||||
<sect1 id="freetype2-pass2" xreflabel="FreeType-&freetype2-version; - Pass 2">
|
||||
<?dbhtml filename="freetype2-pass2.html"?>
|
||||
|
||||
<title>FreeType-&freetype2-version; - Pass 2</title>
|
||||
|
||||
<indexterm zone="freetype2-pass2">
|
||||
<primary sortas="a-FreeType-pass2">FreeType-Pass-2</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title>Introduction to FreeType2 - Pass 2</title>
|
||||
|
||||
<para>
|
||||
Now that <xref linkend="harfbuzz"/> has been installed, it is time
|
||||
to recompile this package again. This is the second pass.
|
||||
</para>
|
||||
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>
|
||||
Download: <ulink url="&freetype2-download;"/>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead renderas="sect3">FreeType2 Dependencies</bridgehead>
|
||||
|
||||
<para role="recommended">
|
||||
<xref linkend="freetype2-pass1"/>,
|
||||
<xref linkend="harfbuzz"/>,
|
||||
<xref linkend="libpng"/>, and
|
||||
<xref linkend="which"/>
|
||||
</para>
|
||||
|
||||
<para role="optional">
|
||||
<ulink url="https://pypi.org/project/docwriter/">docwriter</ulink>
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of FreeType2 - Pass 2</title>
|
||||
|
||||
<para>
|
||||
Reuse the directory you built the first pass from, or else you will have
|
||||
to prepare the source tree for compilation again as showed in <xref
|
||||
linkend="freetype2-pass1"/>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Clean the directory:
|
||||
</para>
|
||||
|
||||
<screen><userinput>make distclean</userinput></screen>
|
||||
|
||||
&freetype-m64;
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>lib32 Installation of FreeType2 - Pass 2</title>
|
||||
|
||||
&freetype-m32;
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="commands">
|
||||
<title>Command Explanations</title>
|
||||
|
||||
&options-configure;
|
||||
|
||||
<para>
|
||||
<parameter>--enable-freetype-config</parameter>: This switch
|
||||
ensure that the man page for freetype-config is installed.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<option>--without-harfbuzz</option>: If
|
||||
harfbuzz is installed prior to
|
||||
freetype without
|
||||
freetype support, use this switch to avoid a
|
||||
build failure.
|
||||
</para>
|
||||
|
||||
&static-libraries;
|
||||
|
||||
<!-- No longer valid with 2.10.1, /usr/bin/freetype-config is installed
|
||||
by the 'make install' command.
|
||||
<para>
|
||||
<command>cp builds/unix/freetype-config /usr/bin</command>: Manually
|
||||
place the freetype configuration program needed by other programs when
|
||||
using the freetype library.
|
||||
</para>
|
||||
-->
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 role="content">
|
||||
<title>Contents</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed Program</segtitle>
|
||||
<segtitle>Installed Library</segtitle>
|
||||
<segtitle>Installed Directories</segtitle>
|
||||
|
||||
<seglistitem>
|
||||
<seg>
|
||||
freetype-config
|
||||
</seg>
|
||||
<seg>
|
||||
libfreetype
|
||||
</seg>
|
||||
<seg>
|
||||
/usr/include/freetype2 and
|
||||
/usr/share/doc/freetype-&freetype2-version;
|
||||
</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
<variablelist>
|
||||
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<varlistentry id="freetype-config-pass2">
|
||||
<term><command>freetype-config</command></term>
|
||||
<listitem>
|
||||
<para>
|
||||
is used to get FreeType compilation
|
||||
and linking information
|
||||
</para>
|
||||
<indexterm zone="freetype2-pass2 freetype-config-pass2">
|
||||
<primary sortas="b-freetype-config-pass2">freetype2-config</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libfreetype-pass2">
|
||||
<term><filename class="libraryfile">libfreetype</filename></term>
|
||||
<listitem>
|
||||
<para>
|
||||
contains functions for rendering various font types, such
|
||||
as TrueType and Type1
|
||||
</para>
|
||||
<indexterm zone="freetype2-pass2 libfreetype-pass2">
|
||||
<primary sortas="c-libfreetype-pass2">libfreetype</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
@ -9,29 +9,26 @@
|
||||
<!ENTITY freetype2-doc-download "&sourceforge-dl;/freetype/freetype-doc-&freetype2-doc-version;.tar.xz">
|
||||
]>
|
||||
|
||||
<sect1 id="freetype2-pass1" xreflabel="FreeType-&freetype2-version; - Pass 1">
|
||||
<?dbhtml filename="freetype2-pass1.html"?>
|
||||
<sect1 id="freetype2" xreflabel="FreeType-&freetype2-version;">
|
||||
<?dbhtml filename="freetype2.html"?>
|
||||
|
||||
<title>FreeType-&freetype2-version; - Pass 1</title>
|
||||
<title>FreeType-&freetype2-version;</title>
|
||||
|
||||
<indexterm zone="freetype2-pass1">
|
||||
<primary sortas="a-FreeType-pass1">FreeType-Pass-1</primary>
|
||||
<indexterm zone="freetype2">
|
||||
<primary sortas="a-FreeType">FreeType</primary>
|
||||
</indexterm>
|
||||
|
||||
<sect2 role="package">
|
||||
<title>Introduction to FreeType2 - Pass 1</title>
|
||||
<title>Introduction to FreeType2</title>
|
||||
|
||||
<para>
|
||||
The FreeType2 package contains
|
||||
a library which allows applications to properly render
|
||||
TrueType fonts.
|
||||
The FreeType2 package contains a library which allows applications to
|
||||
properly render TrueType fonts.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This package has a circular dependency on <xref
|
||||
linkend="harfbuzz"/>, so this package must be installed first,
|
||||
harfBuzz second, then lastly this
|
||||
package again. This is the first pass.
|
||||
Ensure to install <xref linkend="harfbuzz"/> after this installation, as
|
||||
many packages expect this package to have HarfBuzz support.
|
||||
</para>
|
||||
|
||||
<itemizedlist spacing="compact">
|
||||
@ -55,7 +52,8 @@
|
||||
<bridgehead renderas="sect3">FreeType2 Dependencies</bridgehead>
|
||||
|
||||
<para role="recommended">
|
||||
<xref linkend="libpng"/> and
|
||||
<xref linkend="harfbuzz"/> (runtime),
|
||||
<xref linkend="libpng"/>, and
|
||||
<xref linkend="which"/>
|
||||
</para>
|
||||
|
||||
@ -66,7 +64,7 @@
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Installation of FreeType2 - Pass 1</title>
|
||||
<title>Installation of FreeType2</title>
|
||||
|
||||
<para>
|
||||
If you downloaded the additional documentation, unpack it into the
|
||||
@ -91,7 +89,21 @@ sed -r "s:.*(#.*SUBPIXEL_RENDERING) .*:\1:" \
|
||||
<command>sed -r</command> command is the one that enables SR.
|
||||
</para></note>
|
||||
|
||||
&freetype-m64;
|
||||
<para>
|
||||
Install <application>FreeType2</application> by running the following
|
||||
commands:
|
||||
</para>
|
||||
<screen><userinput>./configure --prefix=/usr \
|
||||
--disable-static \
|
||||
--enable-freetype-config \
|
||||
--with-harfbuzz=dynamic &&
|
||||
make</userinput></screen>
|
||||
|
||||
<para>
|
||||
Now, as the &root; user:
|
||||
</para>
|
||||
|
||||
<screen role='root'><userinput>make install</userinput></screen>
|
||||
|
||||
<para>
|
||||
If you downloaded the optional documentation, install it as the
|
||||
@ -104,9 +116,30 @@ rm -v /usr/share/doc/freetype-&freetype2-version;/freetype-config.1</userinput><
|
||||
</sect2>
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>lib32 Installation of FreeType2 - Pass 1</title>
|
||||
<title>lib32 Installation of FreeType2</title>
|
||||
|
||||
&freetype-m32;
|
||||
<para>
|
||||
Install lib32-<application>FreeType2</application> by running the
|
||||
following commands:
|
||||
</para>
|
||||
|
||||
<screen><userinput>make distclean &&
|
||||
CC="gcc -m32" CXX="g++ -m32" \
|
||||
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
|
||||
./configure --prefix=/usr \
|
||||
--libdir=/usr/lib32 \
|
||||
--host=i686-pc-linux-gnu \
|
||||
--disable-static \
|
||||
--with-harfbuzz=dynamic &&
|
||||
|
||||
make</userinput></screen>
|
||||
<para>
|
||||
Now, as the &root; user:
|
||||
</para>
|
||||
<screen role='root'><userinput>make DESTDIR=$PWD/DESTDIR install &&
|
||||
cp -vr DESTDIR/usr/lib32/* /usr/lib32 &&
|
||||
rm -rf DESTDIR &&
|
||||
ldconfig</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
@ -115,21 +148,19 @@ rm -v /usr/share/doc/freetype-&freetype2-version;/freetype-config.1</userinput><
|
||||
|
||||
&options-configure;
|
||||
|
||||
&static-libraries;
|
||||
|
||||
<para>
|
||||
<parameter>--enable-freetype-config</parameter>: This switch
|
||||
ensure that the man page for freetype-config is installed.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<option>--without-harfbuzz</option>: If
|
||||
harfbuzz is installed prior to
|
||||
freetype without
|
||||
freetype support, use this switch to avoid a
|
||||
build failure.
|
||||
<parameter>--with-harfbuzz=dynamic</parameter>: This switch ensures this
|
||||
package doesn't need to get rebuilt after HarfBuzz is instead, instead is
|
||||
loaded dynamically if present.
|
||||
</para>
|
||||
|
||||
&static-libraries;
|
||||
|
||||
<!-- No longer valid with 2.10.1, /usr/bin/freetype-config is installed
|
||||
by the 'make install' command.
|
||||
<para>
|
||||
@ -168,28 +199,28 @@ rm -v /usr/share/doc/freetype-&freetype2-version;/freetype-config.1</userinput><
|
||||
<?dbfo list-presentation="list"?>
|
||||
<?dbhtml list-presentation="table"?>
|
||||
|
||||
<varlistentry id="freetype-config-pass1">
|
||||
<varlistentry id="freetype-config">
|
||||
<term><command>freetype-config</command></term>
|
||||
<listitem>
|
||||
<para>
|
||||
is used to get FreeType compilation
|
||||
and linking information
|
||||
</para>
|
||||
<indexterm zone="freetype2-pass1 freetype-config-pass1">
|
||||
<primary sortas="b-freetype-config-pass1">freetype2-config</primary>
|
||||
<indexterm zone="freetype2 freetype-config">
|
||||
<primary sortas="b-freetype-config">freetype2-config</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libfreetype-pass1">
|
||||
<varlistentry id="libfreetype">
|
||||
<term><filename class="libraryfile">libfreetype</filename></term>
|
||||
<listitem>
|
||||
<para>
|
||||
contains functions for rendering various font types, such
|
||||
as TrueType and Type1
|
||||
</para>
|
||||
<indexterm zone="freetype2-pass1 libfreetype-pass1">
|
||||
<primary sortas="c-libfreetype-pass1">libfreetype</primary>
|
||||
<indexterm zone="freetype2 libfreetype">
|
||||
<primary sortas="c-libfreetype">libfreetype</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -42,7 +42,7 @@
|
||||
<xref linkend="glib2"/> (required for Pango; GObject Introspection
|
||||
required for building GNOME),
|
||||
<xref linkend="icu"/>,
|
||||
<xref role="first" linkend="freetype2-pass1"/>, and
|
||||
<xref role="first" linkend="freetype2"/>, and
|
||||
<xref linkend="mesonfiles"/> (for lib32)
|
||||
</para>
|
||||
|
||||
|
||||
@ -64,7 +64,7 @@
|
||||
<para>
|
||||
<xref linkend="dav1d"/>,
|
||||
<xref linkend="fdk-aac"/>,
|
||||
<xref linkend="freetype2-pass2"/>,
|
||||
<xref linkend="freetype2"/>,
|
||||
<xref linkend="lame"/>,
|
||||
<xref linkend="libaom"/>,
|
||||
<xref linkend="libvorbis"/>,
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
Display server (<xref linkend="xorg-server"/> or
|
||||
<xref linkend="wayland"/> w/ <xref linkend="xwayland"/>),
|
||||
<xref linkend="fontconfig"/>,
|
||||
<xref linkend="freetype2-pass2"/>,
|
||||
<xref linkend="freetype2"/>,
|
||||
<xref linkend="gnutls"/>,
|
||||
<xref linkend="libunwind"/> (if 64-bit/WoW64; not used by Wine 32-bit),
|
||||
&opengl;, and
|
||||
|
||||
34
xent.ent
34
xent.ent
@ -116,37 +116,3 @@ ninja</userinput></screen>
|
||||
|
||||
<screen role='root'><userinput>chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper &&
|
||||
chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper</userinput></screen>">
|
||||
|
||||
<!ENTITY freetype-m64 "<para>
|
||||
Install <application>FreeType2</application> by running the following
|
||||
commands:
|
||||
</para>
|
||||
<screen><userinput>./configure --prefix=/usr \
|
||||
--enable-freetype-config \
|
||||
--disable-static &&
|
||||
make</userinput></screen>
|
||||
<para>
|
||||
Now, as the &root; user:
|
||||
</para>
|
||||
<screen role='root'><userinput>make install</userinput></screen>">
|
||||
<!ENTITY freetype-m32 "<para>
|
||||
Install lib32-<application>FreeType2</application> by running the following
|
||||
commands:
|
||||
</para>
|
||||
<screen><userinput>make distclean &&
|
||||
CC="gcc -m32" CXX="g++ -m32" \
|
||||
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
|
||||
./configure --prefix=/usr \
|
||||
--libdir=/usr/lib32 \
|
||||
--host=i686-pc-linux-gnu \
|
||||
--enable-freetype-config \
|
||||
--disable-static &&
|
||||
|
||||
make</userinput></screen>
|
||||
<para>
|
||||
Now, as the &root; user:
|
||||
</para>
|
||||
<screen role='root'><userinput>make DESTDIR=$PWD/DESTDIR install &&
|
||||
cp -vr DESTDIR/usr/lib32/* /usr/lib32 &&
|
||||
rm -rf DESTDIR &&
|
||||
ldconfig</userinput></screen>">
|
||||
|
||||
Reference in New Issue
Block a user