source: x/lib/qt5-components.xml@ cda5f277

trunk
Last change on this file since cda5f277 was 7b51d98, checked in by Douglas R. Reno <renodr@…>, 6 weeks ago

Qt5 + Components: fix building QtLocation with ICU-75

  • Property mode set to 100644
File size: 6.7 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
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
7 <!ENTITY qt5-major "5.15">
8 <!ENTITY qt5-url "https://download.qt.io/archive/qt/&qt5-major;/&qt5-version;/single">
9
10 <!ENTITY qt5-download-http "&qt5-url;/qt-everywhere-opensource-src-&qt5-version;.tar.xz">
11 <!ENTITY qt5-download-ftp " ">
12 <!ENTITY qt5-md5sum "3fb1cd4f763f5d50d491508b7b99fb77">
13 <!ENTITY qt5-size "630 MB">
14 <!ENTITY qt5-buildsize "varies">
15 <!ENTITY qt5-time "varies">
16]>
17
18<sect1 id="qt5-components" xreflabel="qt-components-&qt5-version;">
19 <?dbhtml filename="qt5-components.html" ?>
20
21 <title>qt-components-&qt5-version;</title>
22
23 <indexterm zone="qt5-components">
24 <primary sortas="a-Qt5-components">Qt Components</primary>
25 </indexterm>
26
27 <sect2 role="package">
28 <title>Introduction to qt5 components</title>
29
30 <para>
31 These instructions show how to build additional Qt5 components beyond
32 <xref linkend="qt5-alternate"/>. They are not applicable if the
33 full <xref linkend="qt5"/> package has been built.
34 </para>
35
36 &lfs121_checked;
37
38 <bridgehead renderas="sect3">Package Information</bridgehead>
39 <itemizedlist spacing="compact">
40 <listitem>
41 <para>
42 Download (HTTP): <ulink url="&qt5-download-http;"/>
43 </para>
44 </listitem>
45 <listitem>
46 <para>
47 Download (FTP): <ulink url="&qt5-download-ftp;"/>
48 </para>
49 </listitem>
50 <listitem>
51 <para>
52 Download MD5 sum: &qt5-md5sum;
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download size: &qt5-size;
58 </para>
59 </listitem>
60<!--
61 <listitem>
62 <para>
63 Estimated disk space required: &qt5-buildsize;
64 </para>
65 </listitem>
66 <listitem>
67 <para>
68 Estimated build time: &qt5-time;
69 </para>
70 </listitem>
71-->
72 </itemizedlist>
73
74 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
75 <itemizedlist spacing="compact">
76 <listitem>
77 <para>
78 Now that <application>qt5</application> updates are restricted to
79 commercial customers, upstream patches for the various modules are
80 being curated at kde.
81 Patches for the modules required by packages in BLFS have been
82 aggregated for the non-modular qt5 build we use.
83 </para>
84 <para>
85 Required patch:
86 <ulink url="&patch-root;/qt-everywhere-opensource-src-&qt5-version;-kf5-1.patch"/>
87 </para>
88 <para>
89 Details of the kde curation can be found at
90 <ulink url="https://dot.kde.org/2021/04/06/announcing-kdes-qt-5-patch-collection"/>
91 and <ulink url="https://community.kde.org/Qt5PatchCollection"/>.
92 </para>
93 </listitem>
94 </itemizedlist>
95
96 <bridgehead renderas="sect3">qt5 components Dependencies</bridgehead>
97
98 <bridgehead renderas="sect4">Required</bridgehead>
99 <para role="required">
100 <xref linkend="qt5-alternate"/>
101 </para>
102
103 <bridgehead renderas="sect4">Recommended dependencies for qtimageformats</bridgehead>
104 <para role="recommended">
105 <xref linkend="jasper"/>,
106 <xref linkend="libmng"/>,
107 <xref linkend="libtiff"/>, and
108 <xref linkend="libwebp"/>
109 </para>
110
111 <bridgehead renderas="sect4">Recommended dependencies for qtmultimedia</bridgehead>
112 <para role="recommended">
113 <xref linkend="gst10-plugins-good"/>,
114 <xref linkend="gst10-plugins-bad"/>, and
115 <xref linkend="gst10-plugins-ugly"/>
116 </para>
117
118 </sect2>
119
120 <sect2 role="installation">
121 <title>Installation of qt5 components</title>
122
123 <para>
124 There are a few extra components needed for different packages in BLFS.
125 These are
126 <emphasis role="bold">qtimageformats</emphasis>,
127 <emphasis role="bold">qtlocation</emphasis>,
128 <emphasis role="bold">qtwebchannel</emphasis>,
129 <emphasis role="bold">qtdoc</emphasis>, and
130 <emphasis role="bold">qtmultimedia</emphasis>.
131 Only those components specified for a specific
132 package are needed. You only need to build the relevant component(s).
133 </para>
134
135 <para>
136 First, apply a patch to pull in the fixes curated by KDE for some of the
137 modules listed above:
138 </para>
139
140<screen><userinput remap="pre">patch -Np1 -i ../qt-everywhere-opensource-src-&qt5-version;-kf5-1.patch</userinput></screen>
141
142 <para>
143 Next, if you are installing <emphasis role="bold">qtlocation</emphasis>,
144 fix the build with GCC-13:
145 </para>
146
147<screen><userinput>sed -e "/pragma once/a#include &lt;cstdint&gt;" \
148 -i qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp \
149 qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp \
150 qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp</userinput></screen>
151
152 <para>
153 Next, if you are installing <emphasis role="bold">qtlocation</emphasis>,
154 fix the build with ICU-75:
155 </para>
156
157<screen><userinput>sed -e "/c++1z/s;^CONFIG;#CONFIG;" \
158 -e "s;c++14;c++17;" \
159 -i qtlocation/src/3rdparty/mapbox-gl-native/native-gl-native.pro</userinput></screen>
160
161 <para>
162 Install each desired component by running the following commands:
163 </para>
164
165<screen><userinput>cd <replaceable>&lt;component&gt;</replaceable>
166qmake <replaceable>&lt;component&gt;</replaceable>.pro
167make</userinput></screen>
168
169 <para>
170 As the &root; user:
171 </para>
172
173<screen role="root"><userinput>make install</userinput></screen>
174
175 <!-- EDITORS NOTE: This package uses INSTALL_ROOT= instead of DESTDIR= for
176 installing in a temporary directory. -->
177
178 <para>
179 Remove references to the build directory from installed library
180 dependency (prl) files by running the following
181 command as the &root; user:
182 </para>
183
184<screen role="root"><userinput>find $QT5DIR/ -name \*.prl \
185 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
186
187
188 </sect2>
189
190 <sect2 role="content">
191 <title>Contents</title>
192
193 <segmentedlist>
194 <segtitle>Installed Programs</segtitle>
195 <segtitle>Installed Libraries</segtitle>
196 <segtitle>Installed Directories</segtitle>
197
198 <seglistitem>
199 <seg>
200 None
201 </seg>
202 <seg>
203 libQt5&lt;component&gt;.so
204 </seg>
205 <seg>
206 $QT5DIR/qml/&lt;component&gt;,
207 $QT5DIR/lib/cmake/&lt;component&gt;, and
208 $QT5DIR/include/&lt;component&gt;
209 </seg>
210 </seglistitem>
211 </segmentedlist>
212
213 </sect2>
214
215</sect1>
Note: See TracBrowser for help on using the repository browser.