source: x/lib/qtbase.xml@ eca919c

qt5new
Last change on this file since eca919c was eca919c, checked in by Pierre Labastie <pieere@…>, 3 years ago

Update to dependencies for qtbase

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/branches/qt5new@23993 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 13.8 KB
RevLine 
[6929000d]1<?xml version="1.0" encoding="ISO-8859-1"?>
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 qtbase-download-http "&qt5-url;/qtbase-everywhere-src-&qt5-version;.tar.xz">
8 <!ENTITY qtbase-download-ftp " ">
9 <!ENTITY qtbase-md5sum "0eb522ff6c2194f9690cbdcd5b33e803">
10 <!ENTITY qtbase-size "48 MB">
11 <!ENTITY qtbase-buildsize "4.4 GB (145 MB installed)">
12 <!ENTITY qtbase-time "64 SBU (Using parallelism=4)">
13]>
14
15<sect1 id="qtbase" xreflabel="qtbase-&qt5-version;">
16 <?dbhtml filename="qtbase.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>Qt-&qt5-version; Base</title>
24
25 <indexterm zone="qtbase">
26 <primary sortas="a-qtbase">qtbase</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to Qt Library</title>
31
32 <para>
33 <application>Qt5</application> is a cross-platform application framework
34 that is widely used for developing application software with a graphical
35 user interface (GUI) (in which cases <application>Qt5</application> is
36 classified as a widget toolkit), and also used for developing non-GUI
37 programs such as command-line tools and consoles for servers. One of the
38 major users of <application>Qt</application> is <application>KDE
39 Frameworks 5 (KF5)</application>.
40 </para>
41
42 <para>
43 <application>Qt5</application> is made of several modules, which are not
44 all necessary for a given application. It has its own building tool
45 (<command>qmake</command>), and provides a complete development
46 environment. The instructions on this page allow to set up that
47 environment and to build basic modules.
48 </para>
49
50 &lfs10_checked;
51
52 <bridgehead renderas="sect3">Package Information</bridgehead>
53 <itemizedlist spacing="compact">
54 <listitem>
55 <para>
56 Download (HTTP): <ulink url="&qtbase-download-http;"/>
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download (FTP): <ulink url="&qtbase-download-ftp;"/>
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Download MD5 sum: &qtbase-md5sum;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Download size: &qtbase-size;
72 </para>
73 </listitem>
74 <listitem>
75 <para>
76 Estimated disk space required: &qtbase-buildsize;
77 </para>
78 </listitem>
79 <listitem>
80 <para>
81 Estimated build time: &qtbase-time;
82 </para>
83 </listitem>
84 </itemizedlist>
85
86 <bridgehead renderas="sect3">Qt5 Dependencies</bridgehead>
87
88 <bridgehead renderas="sect4">Required</bridgehead>
89 <para role="required">
90 <xref linkend='xorg7-lib'/>
91 </para>
92
93 <bridgehead renderas="sect4">Recommended</bridgehead>
94
95 <para role="recommended">
96 <xref linkend="cups"/>,
[eca919c]97 <xref linkend="double-conversion"/>,
[6929000d]98 <xref linkend="glib2"/>,
99 <xref linkend="harfbuzz"/>,
100 <xref linkend="icu"/>,
[eca919c]101 <xref linkend="libinput"/>,
[6929000d]102 <xref linkend="libjpeg"/>,
103 <xref linkend="libpng"/>,
104 <xref linkend="libxkbcommon"/>,
105 <xref linkend="mesa"/>,
106 <xref linkend="mitkrb"/>,
107 <xref linkend="mtdev"/>,
108 <xref linkend="pcre2"/>,
109 <xref linkend="sqlite"/>,
[eca919c]110 <xref linkend="xcb-util-image"/>,
111<!-- not sure <xref linkend="xcb-util-keysyms"/>,
[6929000d]112 <xref linkend="xcb-util-renderutil"/>, --> and
113 <xref linkend="xcb-util-wm"/>
114 </para>
115
116 <bridgehead renderas="sect4">Optional</bridgehead>
117 <para role="optional">
118 <xref linkend="gtk3"/>,
119 <xref linkend="ibus"/>,
120 <xref linkend="libinput"/>,
121 <xref linkend="mariadb"/>
122 or <ulink url="http://www.mysql.com/">MySQL</ulink>,
123 <xref linkend="postgresql"/>,
124 <xref linkend="unixodbc"/>,
125 <ulink url="http://www.firebirdsql.org/">Firebird</ulink>,
126 <ulink url="http://www.freetds.org/">FreeTDS</ulink>,
127 <ulink url="https://github.com/mity/md4c/">libmd4c</ulink>,
128 <ulink url="https://openal.org/">OpenAL</ulink>,
129 <ulink url="https://www.khronos.org/openvg/">openvg</ulink>,
130 <ulink url="http:///www.tslib.org/">tslib</ulink>, and
131 <ulink url="https://vulkan.lunarg.com/sdk/home/">Vulkan</ulink>
132 </para>
133
134 <para condition="html" role="usernotes">
135 User Notes: <ulink url="&blfs-wiki;/qtbase"/>
136 </para>
137 </sect2>
138
139 <sect2 role="qt5-prefix">
140 <title>Setting the installation prefix</title>
141
142 <bridgehead renderas="sect3">Installing in /opt/qt5</bridgehead>
143
144 <para>
145 The BLFS editors recommend installing <application>Qt5</application> in a
146 directory other than <filename class="directory">/usr</filename>, ie
147 <filename class="directory">/opt/qt5</filename>. To do this, set the
148 following environment variable:
149 </para>
150
151<screen><userinput>export QT5PREFIX=/opt/qt5</userinput></screen>
152
153 <tip>
154 <para>
155 Sometimes, the installation paths are hardcoded into installed files.
156 This is the reason why <filename class="directory">/opt/qt5</filename>
157 is used as installation prefix instead of <filename
158 class="directory">/opt/qt-&qt5-version;</filename>. To create a
159 versioned <application>Qt5</application> directory after the
160 installation is complete, you may rename the directory and create a
161 symlink:
162 </para>
163
164<screen role="root"><userinput>mkdir /opt/qt-&qt5-version;
165ln -sfnv qt-&qt5-version; /opt/qt5</userinput></screen>
166
167 <para>
168 Later on, you may want to install other versions of
169 <application>Qt5</application>. To do that, just remove the symlink
170 and use <filename class="directory">/opt/qt5</filename> as the
171 prefix again. Which version of <application>Qt5</application> you
172 use depends only on where the symlink points.
173 </para>
174 </tip>
175
176 </sect2>
177
178 <sect2 role="installation">
179 <title>Installation of qtbase</title>
180
181 <warning>
182 <para>
183 If <application>Qt5</application> is being reinstalled into the
184 same directory as an existing instance, run the commands done by
185 <systemitem class="username">root</systemitem>, such as
186 <command>make install</command>, from a console or non-Qt5 based
187 window manager. It overwrites <application>Qt5</application>
188 libraries that should not be in use during the install process.
189 </para>
190 </warning>
191
192 <caution>
193 <para>
194 If you did not install some of the recommended dependencies, examine
195 <command>./configure --help</command> output to check how to disable
196 them or use internal versions bundled in the source tarball.
197 </para>
198 </caution>
199
200 <note>
201 <para>
202 The BLFS editors do not recommend installing <application>Qt5</application>
203 into the /usr hierarchy because it becomes difficult to find
204 components and to update to a new version. If you do want to install
205 <application>Qt5</application> in /usr, the directories need to
206 be specified explicitly. In this case, set QT5PREFIX=/usr and add
207 the following to the configure arguments below:
208 </para>
209
210<screen role="nodump"><userinput> -archdatadir /usr/lib/qt5 \
211 -bindir /usr/bin \
212 -plugindir /usr/lib/qt5/plugins \
213 -importdir /usr/lib/qt5/imports \
214 -headerdir /usr/include/qt5 \
215 -datadir /usr/share/qt5 \
216 -docdir /usr/share/doc/qt5 \
217 -translationdir /usr/share/qt5/translations \
218 -examplesdir /usr/share/doc/qt5/examples</userinput></screen>
219 </note>
220
221 <para>
222 Install <application>qtbase</application> by running the following
223 commands:
224 </para>
225
226<screen><userinput>./configure -prefix $QT5PREFIX \
227 -sysconfdir /etc/xdg \
228 -confirm-license \
229 -opensource \
230 -dbus-linked \
231 -openssl-linked \
232 -system-sqlite \
233 -nomake examples \
234 -no-rpath &amp;&amp;
235make</userinput></screen>
236
237 <para>
238 This package does not come with a test suite.
239 </para>
240
241 <para>
242 Now, as the <systemitem class="username">root</systemitem> user:
243 </para>
244
245<screen role="root"><userinput>make install</userinput></screen>
246 <!-- EDITORS NOTE: If you are updating this package, use INSTALL_ROOT=
247 instead of DESTDIR= -->
248
249 <para>
250 Remove references to the build directory from installed library
251 dependency (prl) files by running the following
252 commands as the <systemitem class="username">root</systemitem> user:
253 </para>
254
255<screen role="root"><userinput>find $QT5DIR/ -name \*.prl \
256 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
257 </sect2>
258
259 <sect2 role="commands">
260 <title>Command Explanations</title>
261
262 <para>
263 <parameter>-confirm-license</parameter>: Accept license
264 without prompting user during configuration.
265 </para>
266
267 <para>
268 <parameter>-opensource</parameter>: Install the opensource
269 version of <application>Qt</application>.
270 </para>
271
272 <para>
273 <parameter>-nomake examples</parameter>: This switch
274 disables building of the example programs included
275 in the source tarball. Remove it if you want to build
276 them.
277 </para>
278
279 <para>
280 <parameter>-system-sqlite</parameter>: This switch enables use
281 of the system version of <application>SQLite</application>.
282 </para>
283
284 <para>
285 <parameter>-system-sqlite</parameter>: This switch enables use
286 of the system version of <application>SQLite</application>.
287 </para>
288
289 <para>
290 <parameter>-dbus-linked -openssl-linked</parameter>: These
291 switches enable explicit linking of the
292 <application>D-Bus</application> and
293 <application>OpenSSL</application> libraries into
294 <application>Qt5</application> libraries instead of
295 <command>dlopen()</command>-ing them.
296 </para>
297
298 </sect2>
299
300 <sect2 role="configuration">
301 <title>Configuring qtbase</title>
302
303 <sect3 id="qtbase-config">
304 <title>Configuration Information</title>
305
306 <para>
307 If you installed <application>qtbase</application> in
308 <filename class="directory">/usr</filename>, create an
309 environment variable needed by certain packages.
310 As the <systemitem class="username">root</systemitem> user:
311 </para>
312
313<screen role="nodump"><userinput>cat &gt; /etc/profile.d/qtbase.sh &lt;&lt; "EOF"
314<literal># Begin /etc/profile.d/qtbase.sh
315
316QT5DIR=/usr
317export QT5DIR
318
319# End /etc/profile.d/qtbase.sh</literal>
320EOF</userinput></screen>
321
322 <para>
323 If <xref linkend="sudo"/> is installed, QT5DIR should be available to
324 the super user as well. Execute the following commands as the
325 <systemitem class="username">root</systemitem> user:
326 </para>
327
328<screen role="root"><userinput>cat &gt; /etc/sudoers.d/qt &lt;&lt; "EOF"
329<literal>Defaults env_keep += QT5DIR</literal>
330EOF</userinput></screen>
331
332 <para>
333 If you installed <application>qtbase</application> in a location other
334 than <filename class="directory">/usr</filename>, you need to update the
335 following configuration files so that <application>qtbase</application>
336 is correctly found by other packages and system processes.
337 </para>
338
339 <para>
340 As the <systemitem class="username">root</systemitem> user, update
341 the <filename>/etc/ld.so.conf</filename> file and the dynamic linker's
342 run-time cache file:
343 </para>
344
345<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
346<literal># Begin Qt addition
347
348/opt/qt5/lib
349
350# End Qt addition</literal>
351EOF
352
353ldconfig</userinput></screen>
354
355 <indexterm zone="qtbase qtbase-config">
356 <primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>
357 </indexterm>
358
359 <para>
360 As the <systemitem class="username">root</systemitem> user, create
361 the <filename>/etc/profile.d/qtbase.sh</filename> file:
362 </para>
363
364<screen role="root"><userinput>cat &gt; /etc/profile.d/qtbase.sh &lt;&lt; "EOF"
365<literal># Begin /etc/profile.d/qtbase.sh
366
367QT5DIR=/opt/qt5
368
369pathappend $QT5DIR/bin PATH
370pathappend $QT5DIR/lib/pkgconfig PKG_CONFIG_PATH
371
372export QT5DIR
373
374# End /etc/profile.d/qtbase.sh</literal>
375EOF</userinput></screen>
376
377 </sect3>
378
379 </sect2>
380
381
382 <sect2 role="content">
383 <title>Contents</title>
384
385 <segmentedlist>
386 <segtitle>Installed Programs</segtitle>
387 <segtitle>Installed Libraries</segtitle>
388 <segtitle>Installed Directories</segtitle>
389
390 <seglistitem>
391 <seg>
392 qtwebengine_convert_dict and
393 QtWebEngineProcess (in $QT5DIR/libexec)
394 </seg>
395 <seg>
396 libQt5Pdf.so,
397 libQt5PdfWidgets.so,
398 libQt5WebEngineCore.so,
399 libQt5WebEngine.so, and
400 libQt5WebEngineWidgets.so
401 </seg>
402 <seg>
403 $QT5DIR/include/QtPdf,
404 $QT5DIR/include/QtPdfWidgets,
405 $QT5DIR/include/QtWebEngine,
406 $QT5DIR/include/QtWebEngineCore,
407 $QT5DIR/include/QtWebEngineWidgets,
408 $QT5DIR/qml/QtWebEngine, and
409 $QT5DIR/translations/qtwebengine_locales
410 </seg>
411 </seglistitem>
412 </segmentedlist>
413
414<!-- <variablelist>
415 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
416 <?dbfo list-presentation="list"?>
417 <?dbhtml list-presentation="table"?>
418
419 </variablelist>-->
420 </sect2>
421</sect1>
Note: See TracBrowser for help on using the repository browser.