source: x/lib/qtbase.xml@ ce5723af

qt5new
Last change on this file since ce5723af was ce5723af, checked in by Pierre Labastie <pierre.labastie@…>, 3 years ago

Add proper &lfs_checked entity for qtbase

  • Property mode set to 100644
File size: 19.4 KB
Line 
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 "2.4 GB (96 MB installed)">
12 <!ENTITY qtbase-time "4.7 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 &lfs110a_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">Qtbase 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"/>,
97 <xref linkend="double-conversion"/>,
98 <xref linkend="glib2"/>,
99 <xref linkend="harfbuzz"/>,
100 <xref linkend="icu"/>,
101 <xref linkend="libinput"/>,
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"/>,
110 <xref linkend="xcb-util-image"/>,
111 <xref linkend="xcb-util-keysyms"/>,
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="at-spi2-core"/>,
119 <xref linkend="gtk3"/>,
120 <xref linkend="ibus"/>,
121 <xref linkend="libinput"/>,
122 <xref linkend="mariadb"/>
123 or <ulink url="http://www.mysql.com/">MySQL</ulink>,
124 <xref linkend="postgresql"/>,
125 <xref linkend="unixodbc"/>,
126 <ulink url="http://www.firebirdsql.org/">Firebird</ulink>,
127 <ulink url="http://www.freetds.org/">FreeTDS</ulink>,
128 <ulink url="https://github.com/mity/md4c/">libmd4c</ulink>,
129 <ulink url="https://openal.org/">OpenAL</ulink>,
130 <ulink url="https://www.khronos.org/openvg/">openvg</ulink>,
131 <ulink url="http:///www.tslib.org/">tslib</ulink>, and
132 <ulink url="https://vulkan.lunarg.com/sdk/home/">Vulkan</ulink>
133 </para>
134
135 <para condition="html" role="usernotes">
136 User Notes: <ulink url="&blfs-wiki;/qtbase"/>
137 </para>
138 </sect2>
139
140 <sect2 role="qt5-prefix">
141 <title>Setting the installation prefix</title>
142
143 <bridgehead renderas="sect3">Installing in /opt/qt5</bridgehead>
144
145 <para>
146 The BLFS editors recommend installing <application>Qt5</application> in a
147 directory other than <filename class="directory">/usr</filename>, ie
148 <filename class="directory">/opt/qt5</filename>. To do this, set the
149 following environment variable:
150 </para>
151
152<screen><userinput>export QT5PREFIX=/opt/qt5</userinput></screen>
153
154 <tip>
155 <para>
156 Sometimes, the installation paths are hardcoded into installed files.
157 This is the reason why <filename class="directory">/opt/qt5</filename>
158 is used as installation prefix instead of <filename
159 class="directory">/opt/qt-&qt5-version;</filename>. To create a
160 versioned <application>Qt5</application> directory after the
161 installation is complete, you may rename the directory and create a
162 symlink:
163 </para>
164
165<screen role="root"><userinput>mkdir /opt/qt-&qt5-version;
166ln -sfnv qt-&qt5-version; /opt/qt5</userinput></screen>
167
168 <para>
169 Later on, you may want to install other versions of
170 <application>Qt5</application>. To do that, just remove the symlink
171 and use <filename class="directory">/opt/qt5</filename> as the
172 prefix again. Which version of <application>Qt5</application> you
173 use depends only on where the symlink points.
174 </para>
175 </tip>
176
177 </sect2>
178
179 <sect2 role="installation">
180 <title>Installation of qtbase</title>
181
182 <warning>
183 <para>
184 If <application>Qt5</application> is being reinstalled into the
185 same directory as an existing instance, run the commands done by
186 <systemitem class="username">root</systemitem>, such as
187 <command>make install</command>, from a console or non-Qt5 based
188 window manager. It overwrites <application>Qt5</application>
189 libraries that should not be in use during the install process.
190 </para>
191 </warning>
192
193 <caution>
194 <para>
195 If you did not install some of the recommended dependencies, examine
196 <command>./configure --help</command> output to check how to disable
197 them or use internal versions bundled in the source tarball.
198 </para>
199 </caution>
200
201 <note>
202 <para>
203 The BLFS editors do not recommend installing <application>Qt5</application>
204 into the /usr hierarchy because it becomes difficult to find
205 components and to update to a new version. If you do want to install
206 <application>Qt5</application> in /usr, the directories need to
207 be specified explicitly. In this case, set QT5PREFIX=/usr and add
208 the following to the configure arguments below:
209 </para>
210
211<screen role="nodump"><userinput> -archdatadir /usr/lib/qt5 \
212 -bindir /usr/bin \
213 -plugindir /usr/lib/qt5/plugins \
214 -importdir /usr/lib/qt5/imports \
215 -headerdir /usr/include/qt5 \
216 -datadir /usr/share/qt5 \
217 -docdir /usr/share/doc/qt5 \
218 -translationdir /usr/share/qt5/translations \
219 -examplesdir /usr/share/doc/qt5/examples</userinput></screen>
220 </note>
221
222 <para>
223 Install <application>qtbase</application> by running the following
224 commands:
225 </para>
226
227<screen><userinput>./configure -prefix $QT5PREFIX \
228 -sysconfdir /etc/xdg \
229 -confirm-license \
230 -opensource \
231 -dbus-linked \
232 -openssl-linked \
233 -system-sqlite \
234 -nomake examples \
235 -no-rpath &amp;&amp;
236make</userinput></screen>
237
238 <para>
239 This package does not come with a test suite.
240 </para>
241
242 <para>
243 Now, as the <systemitem class="username">root</systemitem> user:
244 </para>
245
246<screen role="root"><userinput>make install</userinput></screen>
247 <!-- EDITORS NOTE: If you are updating this package, use INSTALL_ROOT=
248 instead of DESTDIR= -->
249
250 <para>
251 Remove references to the build directory from installed library
252 dependency (prl) files by running the following
253 commands as the <systemitem class="username">root</systemitem> user:
254 </para>
255
256<screen role="root"><userinput>find $QT5PREFIX/ -name \*.prl \
257 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
258
259<!-- dubious, looks like VLC can cope with non suffixed programs.
260 Furthermore, qmlcachegen is needed by VLC, and not installed
261 by qtbase. Means this should be done after qttools install. -->
262 <para>
263 Some packages such as <xref linkend='vlc'/> look for certain
264 executables with a -qt5 suffix. Run the following command as the
265 <systemitem class="username">root</systemitem> user
266 to create the necessary symlinks:
267 </para>
268
269<screen role="root"><userinput>for file in moc qmake rcc uic; do
270 ln -sfrvn $QT5PREFIX/bin/$file /usr/bin/$file-qt5
271done</userinput></screen>
272
273 </sect2>
274
275 <sect2 role="commands">
276 <title>Command Explanations</title>
277
278 <para>
279 <parameter>-confirm-license</parameter>: Accept license
280 without prompting user during configuration.
281 </para>
282
283 <para>
284 <parameter>-opensource</parameter>: Install the opensource
285 version of <application>Qt</application>.
286 </para>
287
288 <para>
289 <parameter>-nomake examples</parameter>: This switch
290 disables building of the example programs included
291 in the source tarball. Remove it if you want to build
292 them.
293 </para>
294
295 <para>
296 <parameter>-system-sqlite</parameter>: This switch enables use
297 of the system version of <application>SQLite</application>.
298 </para>
299
300 <para>
301 <parameter>-system-sqlite</parameter>: This switch enables use
302 of the system version of <application>SQLite</application>.
303 </para>
304
305 <para>
306 <parameter>-dbus-linked -openssl-linked</parameter>: These
307 switches enable explicit linking of the
308 <application>D-Bus</application> and
309 <application>OpenSSL</application> libraries into
310 <application>Qt5</application> libraries instead of
311 <command>dlopen()</command>-ing them.
312 </para>
313
314 </sect2>
315
316 <sect2 role="configuration">
317 <title>Configuring qtbase</title>
318
319 <sect3 id="qtbase-config">
320 <title>Configuration Information</title>
321
322 <para>
323 If you installed <application>qtbase</application> in
324 <filename class="directory">/usr</filename>, create an
325 environment variable needed by certain packages.
326 As the <systemitem class="username">root</systemitem> user:
327 </para>
328
329<screen role="nodump"><userinput>cat &gt; /etc/profile.d/qt5.sh &lt;&lt; "EOF"
330<literal># Begin /etc/profile.d/qt5.sh
331
332QT5DIR=/usr
333export QT5DIR
334
335# End /etc/profile.d/qt5.sh</literal>
336EOF</userinput></screen>
337
338 <para>
339 If <xref linkend="sudo"/> is installed, QT5DIR should be available to
340 the super user as well. Execute the following commands as the
341 <systemitem class="username">root</systemitem> user:
342 </para>
343
344<screen role="root"><userinput>cat &gt; /etc/sudoers.d/qt &lt;&lt; "EOF"
345<literal>Defaults env_keep += QT5DIR</literal>
346EOF</userinput></screen>
347
348 <para>
349 If you installed <application>qtbase</application> in a location other
350 than <filename class="directory">/usr</filename>, you need to update the
351 following configuration files so that <application>qtbase</application>
352 is correctly found by other packages and system processes.
353 </para>
354
355 <para>
356 As the <systemitem class="username">root</systemitem> user, update
357 the <filename>/etc/ld.so.conf</filename> file and the dynamic linker's
358 run-time cache file:
359 </para>
360
361<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
362<literal># Begin Qt addition
363
364/opt/qt5/lib
365
366# End Qt addition</literal>
367EOF
368
369ldconfig</userinput></screen>
370
371 <indexterm zone="qtbase qtbase-config">
372 <primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>
373 </indexterm>
374
375 <para>
376 As the <systemitem class="username">root</systemitem> user, create
377 the <filename>/etc/profile.d/qt5.sh</filename> file:
378 </para>
379
380<screen role="root"><userinput>cat &gt; /etc/profile.d/qt5.sh &lt;&lt; "EOF"
381<literal># Begin /etc/profile.d/qt5.sh
382
383QT5DIR=/opt/qt5
384
385pathappend $QT5DIR/bin PATH
386pathappend $QT5DIR/lib/pkgconfig PKG_CONFIG_PATH
387
388export QT5DIR
389
390# End /etc/profile.d/qt5.sh</literal>
391EOF</userinput></screen>
392
393 </sect3>
394
395 </sect2>
396
397
398 <sect2 role="content">
399 <title>Contents</title>
400
401 <segmentedlist>
402 <segtitle>Installed Programs</segtitle>
403 <segtitle>Installed Libraries</segtitle>
404 <segtitle>Installed Directories</segtitle>
405
406 <seglistitem>
407 <seg>
408 fixqt4headers.pl,
409 moc,
410 qdbuscpp2xml,
411 qdbusxml2cpp,
412 qlalr,
413 qmake,
414 qvkgen,
415 rcc,
416 syncqt.pl,
417 tracegen, and
418 uic
419 </seg>
420 <seg>
421 libQt5AccessibilitySupport.a,
422 libQt5Bootstrap.a,
423 libQt5Concurrent.so,
424 libQt5Core.so,
425 libQt5DBus.so,
426 libQt5DeviceDiscoverySupport.a,
427 libQt5EdidSupport.a,
428 libQt5EglFSDeviceIntegration.so,
429 libQt5EglFsKmsSupport.so,
430 libQt5EglSupport.a,
431 libQt5EventDispatcherSupport.a,
432 libQt5FbSupport.a,
433 libQt5FontDatabaseSupport.a,
434 libQt5GlxSupport.a,
435 libQt5Gui.so,
436 libQt5InputSupport.a,
437 libQt5KmsSupport.a,
438 libQt5Network.so,
439 libQt5OpenGLExtensions.a,
440 libQt5OpenGL.so,
441 libQt5PlatformCompositorSupport.a,
442 libQt5PrintSupport.so,
443 libQt5ServiceSupport.a,
444 libQt5Sql.so,
445 libQt5Test.so,
446 libQt5themeSupport.a,
447 libQt5Widgets.so,
448 libQt5XcbQpa.so,
449 libQt5XkbCommonSupport.a, and
450 libQt5Xml.so
451 </seg>
452 <seg>
453 /opt/qt5 and /opt/qt-&qt5-version;, or, if installing
454 in /usr: /usr/include/qt5, /usr/lib/qt5, /usr/share/{,doc}/qt5
455 </seg>
456 </seglistitem>
457 </segmentedlist>
458
459 <variablelist>
460 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
461 <?dbfo list-presentation="list"?>
462 <?dbhtml list-presentation="table"?>
463
464 <varlistentry id="fixqt4headers.pl">
465 <term><command>fixqt4headers.pl</command></term>
466 <listitem>
467 <para>
468 is a script to replace all Qt 4 style includes with Qt 5 includes.
469 </para>
470 <indexterm zone="qtbase fixqt4headers.pl">
471 <primary sortas="b-fixqt4headers.pl">fixqt4headers.pl</primary>
472 </indexterm>
473 </listitem>
474 </varlistentry>
475
476 <varlistentry id="moc-qt5">
477 <term><command>moc</command></term>
478 <listitem>
479 <para>
480 generates Qt meta object support code.
481 </para>
482 <indexterm zone="qtbase moc-qt5">
483 <primary sortas="b-moc-qt5">moc</primary>
484 </indexterm>
485 </listitem>
486 </varlistentry>
487
488 <varlistentry id="qdbuscpp2xml-qt5">
489 <term><command>qdbuscpp2xml</command></term>
490 <listitem>
491 <para>
492 takes a C++ source file and generates a D-Bus XML definition
493 of the interface.
494 </para>
495 <indexterm zone="qtbase qdbuscpp2xml-qt5">
496 <primary sortas="b-qdbuscpp2xml-qt5">qdbuscpp2xml</primary>
497 </indexterm>
498 </listitem>
499 </varlistentry>
500
501 <varlistentry id="qdbusxml2cpp-qt5">
502 <term><command>qdbusxml2cpp</command></term>
503 <listitem>
504 <para>
505 is a tool that can be used to parse interface descriptions
506 and produce static code representing those interfaces,
507 </para>
508 <indexterm zone="qtbase qdbusxml2cpp-qt5">
509 <primary sortas="b-qdbusxml2cpp-qt5">qdbusxml2cpp</primary>
510 </indexterm>
511 </listitem>
512 </varlistentry>
513
514 <varlistentry id="qlalr-qt5">
515 <term><command>qlalr</command></term>
516 <listitem>
517 <para>
518 is a tool used to generate code from grammar specifications.
519 </para>
520 <indexterm zone="qtbase qlalr-qt5">
521 <primary sortas="b-qlalr-qt5">qlalr</primary>
522 </indexterm>
523 </listitem>
524 </varlistentry>
525
526 <varlistentry id="qmake-qt5">
527 <term><command>qmake</command></term>
528 <listitem>
529 <para>
530 uses information stored in project files to
531 determine what should go in the makefiles it
532 generates.
533 </para>
534 <indexterm zone="qtbase qmake-qt5">
535 <primary sortas="b-qmake-qt5">qmake</primary>
536 </indexterm>
537 </listitem>
538 </varlistentry>
539
540 <varlistentry id="qvkgen">
541 <term><command>qvkgen</command></term>
542 <listitem>
543 <para>
544 converts Vulkan specfiles to C++ headers and code.
545 </para>
546 <indexterm zone="qtbase qvkgen">
547 <primary sortas="b-qvkgen">qvkgen</primary>
548 </indexterm>
549 </listitem>
550 </varlistentry>
551
552 <varlistentry id="rcc-qt5">
553 <term><command>rcc</command></term>
554 <listitem>
555 <para>
556 is a resource compiler used in conjunction with designer.
557 </para>
558 <indexterm zone="qtbase rcc-qt5">
559 <primary sortas="b-rcc-qt5">rcc</primary>
560 </indexterm>
561 </listitem>
562 </varlistentry>
563
564 <varlistentry id="syncqt.pl-qt5">
565 <term><command>syncqt.pl</command></term>
566 <listitem>
567 <para>
568 is a script to create the forwarding headers in the include
569 directories. It is an internal development tool.
570 </para>
571 <indexterm zone="qtbase syncqt.pl-qt5">
572 <primary sortas="b-syncqt.pl-qt5">syncqt.pl</primary>
573 </indexterm>
574 </listitem>
575 </varlistentry>
576
577 <varlistentry id="tracegen">
578 <term><command>tracegen</command></term>
579 <listitem>
580 <para>
581 is a trace generator for LTTng or ETW.
582 </para>
583 <indexterm zone="qtbase tracegen">
584 <primary sortas="b-tracegen">tracegen</primary>
585 </indexterm>
586 </listitem>
587 </varlistentry>
588
589 <varlistentry id="uic-qt5">
590 <term><command>uic</command></term>
591 <listitem>
592 <para>
593 is a Qt user interface compiler.
594 </para>
595 <indexterm zone="qtbase uic-qt5">
596 <primary sortas="b-uic-qt5">uic</primary>
597 </indexterm>
598 </listitem>
599 </varlistentry>
600
601 </variablelist>
602 </sect2>
603</sect1>
Note: See TracBrowser for help on using the repository browser.