glfs/x/lib/qt5-components.xml
Douglas R. Reno c40076fe24 Tags
2024-02-23 11:44:13 -06:00

207 lines
6.4 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 qt5-major "5.15">
<!ENTITY qt5-url "https://download.qt.io/archive/qt/&qt5-major;/&qt5-version;/single">
<!ENTITY qt5-download-http "&qt5-url;/qt-everywhere-opensource-src-&qt5-version;.tar.xz">
<!ENTITY qt5-download-ftp " ">
<!ENTITY qt5-md5sum "3fb1cd4f763f5d50d491508b7b99fb77">
<!ENTITY qt5-size "630 MB">
<!ENTITY qt5-buildsize "varies">
<!ENTITY qt5-time "varies">
]>
<sect1 id="qt5-components" xreflabel="qt-components-&qt5-version;">
<?dbhtml filename="qt5-components.html" ?>
<title>qt-components-&qt5-version;</title>
<indexterm zone="qt5-components">
<primary sortas="a-Qt5-components">Qt Components</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to qt5 components</title>
<para>
These instructions show how to build additional Qt5 components beyond
<xref linkend="qt5-alternate"/>. They are not applicable if the
full <xref linkend="qt5"/> package has been built.
</para>
&lfs121_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&qt5-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&qt5-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &qt5-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &qt5-size;
</para>
</listitem>
<!--
<listitem>
<para>
Estimated disk space required: &qt5-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &qt5-time;
</para>
</listitem>
-->
</itemizedlist>
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Now that <application>qt5</application> updates are restricted to
commercial customers, upstream patches for the various modules are
being curated at kde.
Patches for the modules required by packages in BLFS have been
aggregated for the non-modular qt5 build we use.
</para>
<para>
Required patch:
<ulink url="&patch-root;/qt-everywhere-opensource-src-&qt5-version;-kf5-1.patch"/>
</para>
<para>
Details of the kde curation can be found at
<ulink url="https://dot.kde.org/2021/04/06/announcing-kdes-qt-5-patch-collection"/>
and <ulink url="https://community.kde.org/Qt5PatchCollection"/>.
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">qt5 components Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="qt5-alternate"/>
</para>
<bridgehead renderas="sect4">Recommended dependencies for qtimageformats</bridgehead>
<para role="recommended">
<xref linkend="jasper"/>,
<xref linkend="libmng"/>,
<xref linkend="libtiff"/>, and
<xref linkend="libwebp"/>
</para>
<bridgehead renderas="sect4">Recommended dependencies for qtmultimedia</bridgehead>
<para role="recommended">
<xref linkend="gst10-plugins-good"/>,
<xref linkend="gst10-plugins-bad"/>, and
<xref linkend="gst10-plugins-ugly"/>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of qt5 components</title>
<para>
There are a few extra components needed for different packages in BLFS.
These are
<emphasis role="bold">qtimageformats</emphasis>,
<emphasis role="bold">qtlocation</emphasis>,
<emphasis role="bold">qtwebchannel</emphasis>,
<emphasis role="bold">qtdoc</emphasis>, and
<emphasis role="bold">qtmultimedia</emphasis>.
Only those components specified for a specific
package are needed. You only need to build the relevant component(s).
</para>
<para>
First, apply a patch to pull in the fixes curated by KDE for some of the
modules listed above:
</para>
<screen><userinput remap="pre">patch -Np1 -i ../qt-everywhere-opensource-src-&qt5-version;-kf5-1.patch</userinput></screen>
<para>
Next, if you are installing <emphasis role="bold">qtlocation</emphasis>,
fix the build with GCC-13:
</para>
<screen><userinput>sed -e "/pragma once/a#include &lt;cstdint&gt;" \
-i qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp \
qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp \
qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp</userinput></screen>
<para>
Install each desired component by running the following commands:
</para>
<screen><userinput>cd <replaceable>&lt;component&gt;</replaceable>
qmake <replaceable>&lt;component&gt;</replaceable>.pro
make</userinput></screen>
<para>
As the &root; user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
<!-- EDITORS NOTE: This package uses INSTALL_ROOT= instead of DESTDIR= for
installing in a temporary directory. -->
<para>
Remove references to the build directory from installed library
dependency (prl) files by running the following
command as the &root; user:
</para>
<screen role="root"><userinput>find $QT5DIR/ -name \*.prl \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
None
</seg>
<seg>
libQt5&lt;component&gt;.so
</seg>
<seg>
$QT5DIR/qml/&lt;component&gt;,
$QT5DIR/lib/cmake/&lt;component&gt;, and
$QT5DIR/include/&lt;component&gt;
</seg>
</seglistitem>
</segmentedlist>
</sect2>
</sect1>