source: x/lib/qtbase.xml@ 5a5a41c

qt5new
Last change on this file since 5a5a41c was 5a5a41c, checked in by Pierre Labastie <pierre.labastie@…>, 17 months ago

Update configure switches in qtbase

  • Property mode set to 100644
File size: 19.5 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 &lfs113_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 -system-harfbuzz \
235 -nomake examples \
236 -syslog \
237 -no-rpath &amp;&amp;
238make</userinput></screen>
239
240 <para>
241 This package does not come with a test suite.
242 </para>
243
244 <para>
245 Now, as the <systemitem class="username">root</systemitem> user:
246 </para>
247
248<screen role="root"><userinput>make install</userinput></screen>
249 <!-- EDITORS NOTE: If you are updating this package, use INSTALL_ROOT=
250 instead of DESTDIR= -->
251
252 <para>
253 Remove references to the build directory from installed library
254 dependency (prl) files by running the following
255 commands as the <systemitem class="username">root</systemitem> user:
256 </para>
257
258<screen role="root"><userinput>find $QT5PREFIX/ -name \*.prl \
259 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
260
261<!-- dubious, looks like VLC can cope with non suffixed programs.
262 Furthermore, qmlcachegen is needed by VLC, and not installed
263 by qtbase. Means this should be done after qttools install. -->
264 <para>
265 Some packages such as <xref linkend='vlc'/> look for certain
266 executables with a -qt5 suffix. Run the following command as the
267 <systemitem class="username">root</systemitem> user
268 to create the necessary symlinks:
269 </para>
270
271<screen role="root"><userinput>for file in moc qmake rcc uic; do
272 ln -sfrvn $QT5PREFIX/bin/$file /usr/bin/$file-qt5
273done</userinput></screen>
274
275 </sect2>
276
277 <sect2 role="commands">
278 <title>Command Explanations</title>
279
280 <para>
281 <parameter>-confirm-license</parameter>: Accept license
282 without prompting user during configuration.
283 </para>
284
285 <para>
286 <parameter>-opensource</parameter>: Install the opensource
287 version of <application>Qt</application>.
288 </para>
289
290 <para>
291 <parameter>-nomake examples</parameter>: This switch
292 disables building of the example programs included
293 in the source tarball. Remove it if you want to build
294 them.
295 </para>
296
297 <para>
298 <parameter>-system-sqlite</parameter>: This switch enables use
299 of the system version of <application>SQLite</application>.
300 </para>
301
302 <para>
303 <parameter>-system-harfbuzz</parameter>: This switch enables use
304 of the system version of <application>Harfbuzz</application>.
305 </para>
306
307 <para>
308 <parameter>-dbus-linked -openssl-linked</parameter>: These
309 switches enable explicit linking of the
310 <application>D-Bus</application> and
311 <application>OpenSSL</application> libraries into
312 <application>Qt5</application> libraries instead of
313 <command>dlopen()</command>-ing them.
314 </para>
315
316 <para>
317 <parameter>-syslog</parameter>: This switch allows to send Qt messages
318 to the <command>syslog</command> logging system.
319 </para>
320
321 </sect2>
322
323 <sect2 role="configuration">
324 <title>Configuring qtbase</title>
325
326 <sect3 id="qtbase-config">
327 <title>Configuration Information</title>
328
329 <para>
330 If you installed <application>qtbase</application> in
331 <filename class="directory">/usr</filename>, create an
332 environment variable needed by certain packages.
333 As the <systemitem class="username">root</systemitem> user:
334 </para>
335
336<screen role="nodump"><userinput>cat &gt; /etc/profile.d/qt5.sh &lt;&lt; "EOF"
337<literal># Begin /etc/profile.d/qt5.sh
338
339QT5DIR=/usr
340export QT5DIR
341
342# End /etc/profile.d/qt5.sh</literal>
343EOF</userinput></screen>
344
345 <para>
346 If <xref linkend="sudo"/> is installed, QT5DIR should be available to
347 the super user as well. Execute the following commands as the
348 <systemitem class="username">root</systemitem> user:
349 </para>
350
351<screen role="root"><userinput>cat &gt; /etc/sudoers.d/qt &lt;&lt; "EOF"
352<literal>Defaults env_keep += QT5DIR</literal>
353EOF</userinput></screen>
354
355 <para>
356 If you installed <application>qtbase</application> in a location other
357 than <filename class="directory">/usr</filename>, you need to update the
358 following configuration files so that <application>qtbase</application>
359 is correctly found by other packages and system processes.
360 </para>
361
362 <para>
363 As the <systemitem class="username">root</systemitem> user, update
364 the <filename>/etc/ld.so.conf</filename> file and the dynamic linker's
365 run-time cache file:
366 </para>
367
368<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
369<literal># Begin Qt addition
370
371/opt/qt5/lib
372
373# End Qt addition</literal>
374EOF
375
376ldconfig</userinput></screen>
377
378 <indexterm zone="qtbase qtbase-config">
379 <primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>
380 </indexterm>
381
382 <para>
383 As the <systemitem class="username">root</systemitem> user, create
384 the <filename>/etc/profile.d/qt5.sh</filename> file:
385 </para>
386
387<screen role="root"><userinput>cat &gt; /etc/profile.d/qt5.sh &lt;&lt; "EOF"
388<literal># Begin /etc/profile.d/qt5.sh
389
390QT5DIR=/opt/qt5
391
392pathappend $QT5DIR/bin PATH
393pathappend $QT5DIR/lib/pkgconfig PKG_CONFIG_PATH
394
395export QT5DIR
396
397# End /etc/profile.d/qt5.sh</literal>
398EOF</userinput></screen>
399
400 </sect3>
401
402 </sect2>
403
404
405 <sect2 role="content">
406 <title>Contents</title>
407
408 <segmentedlist>
409 <segtitle>Installed Programs</segtitle>
410 <segtitle>Installed Libraries</segtitle>
411 <segtitle>Installed Directories</segtitle>
412
413 <seglistitem>
414 <seg>
415 fixqt4headers.pl,
416 moc,
417 qdbuscpp2xml,
418 qdbusxml2cpp,
419 qlalr,
420 qmake,
421 qvkgen,
422 rcc,
423 syncqt.pl,
424 tracegen, and
425 uic
426 </seg>
427 <seg>
428 libQt5AccessibilitySupport.a,
429 libQt5Bootstrap.a,
430 libQt5Concurrent.so,
431 libQt5Core.so,
432 libQt5DBus.so,
433 libQt5DeviceDiscoverySupport.a,
434 libQt5EdidSupport.a,
435 libQt5EglFSDeviceIntegration.so,
436 libQt5EglFsKmsSupport.so,
437 libQt5EglSupport.a,
438 libQt5EventDispatcherSupport.a,
439 libQt5FbSupport.a,
440 libQt5FontDatabaseSupport.a,
441 libQt5GlxSupport.a,
442 libQt5Gui.so,
443 libQt5InputSupport.a,
444 libQt5KmsSupport.a,
445 libQt5Network.so,
446 libQt5OpenGLExtensions.a,
447 libQt5OpenGL.so,
448 libQt5PlatformCompositorSupport.a,
449 libQt5PrintSupport.so,
450 libQt5ServiceSupport.a,
451 libQt5Sql.so,
452 libQt5Test.so,
453 libQt5themeSupport.a,
454 libQt5Widgets.so,
455 libQt5XcbQpa.so,
456 libQt5XkbCommonSupport.a, and
457 libQt5Xml.so
458 </seg>
459 <seg>
460 /opt/qt5 and /opt/qt-&qt5-version;, or, if installing
461 in /usr: /usr/include/qt5, /usr/lib/qt5, /usr/share/{,doc}/qt5
462 </seg>
463 </seglistitem>
464 </segmentedlist>
465
466 <variablelist>
467 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
468 <?dbfo list-presentation="list"?>
469 <?dbhtml list-presentation="table"?>
470
471 <varlistentry id="fixqt4headers.pl">
472 <term><command>fixqt4headers.pl</command></term>
473 <listitem>
474 <para>
475 is a script to replace all Qt 4 style includes with Qt 5 includes.
476 </para>
477 <indexterm zone="qtbase fixqt4headers.pl">
478 <primary sortas="b-fixqt4headers.pl">fixqt4headers.pl</primary>
479 </indexterm>
480 </listitem>
481 </varlistentry>
482
483 <varlistentry id="moc-qt5">
484 <term><command>moc</command></term>
485 <listitem>
486 <para>
487 generates Qt meta object support code.
488 </para>
489 <indexterm zone="qtbase moc-qt5">
490 <primary sortas="b-moc-qt5">moc</primary>
491 </indexterm>
492 </listitem>
493 </varlistentry>
494
495 <varlistentry id="qdbuscpp2xml-qt5">
496 <term><command>qdbuscpp2xml</command></term>
497 <listitem>
498 <para>
499 takes a C++ source file and generates a D-Bus XML definition
500 of the interface.
501 </para>
502 <indexterm zone="qtbase qdbuscpp2xml-qt5">
503 <primary sortas="b-qdbuscpp2xml-qt5">qdbuscpp2xml</primary>
504 </indexterm>
505 </listitem>
506 </varlistentry>
507
508 <varlistentry id="qdbusxml2cpp-qt5">
509 <term><command>qdbusxml2cpp</command></term>
510 <listitem>
511 <para>
512 is a tool that can be used to parse interface descriptions
513 and produce static code representing those interfaces,
514 </para>
515 <indexterm zone="qtbase qdbusxml2cpp-qt5">
516 <primary sortas="b-qdbusxml2cpp-qt5">qdbusxml2cpp</primary>
517 </indexterm>
518 </listitem>
519 </varlistentry>
520
521 <varlistentry id="qlalr-qt5">
522 <term><command>qlalr</command></term>
523 <listitem>
524 <para>
525 is a tool used to generate code from grammar specifications.
526 </para>
527 <indexterm zone="qtbase qlalr-qt5">
528 <primary sortas="b-qlalr-qt5">qlalr</primary>
529 </indexterm>
530 </listitem>
531 </varlistentry>
532
533 <varlistentry id="qmake-qt5">
534 <term><command>qmake</command></term>
535 <listitem>
536 <para>
537 uses information stored in project files to
538 determine what should go in the makefiles it
539 generates.
540 </para>
541 <indexterm zone="qtbase qmake-qt5">
542 <primary sortas="b-qmake-qt5">qmake</primary>
543 </indexterm>
544 </listitem>
545 </varlistentry>
546
547 <varlistentry id="qvkgen">
548 <term><command>qvkgen</command></term>
549 <listitem>
550 <para>
551 converts Vulkan specfiles to C++ headers and code.
552 </para>
553 <indexterm zone="qtbase qvkgen">
554 <primary sortas="b-qvkgen">qvkgen</primary>
555 </indexterm>
556 </listitem>
557 </varlistentry>
558
559 <varlistentry id="rcc-qt5">
560 <term><command>rcc</command></term>
561 <listitem>
562 <para>
563 is a resource compiler used in conjunction with designer.
564 </para>
565 <indexterm zone="qtbase rcc-qt5">
566 <primary sortas="b-rcc-qt5">rcc</primary>
567 </indexterm>
568 </listitem>
569 </varlistentry>
570
571 <varlistentry id="syncqt.pl-qt5">
572 <term><command>syncqt.pl</command></term>
573 <listitem>
574 <para>
575 is a script to create the forwarding headers in the include
576 directories. It is an internal development tool.
577 </para>
578 <indexterm zone="qtbase syncqt.pl-qt5">
579 <primary sortas="b-syncqt.pl-qt5">syncqt.pl</primary>
580 </indexterm>
581 </listitem>
582 </varlistentry>
583
584 <varlistentry id="tracegen">
585 <term><command>tracegen</command></term>
586 <listitem>
587 <para>
588 is a trace generator for LTTng or ETW.
589 </para>
590 <indexterm zone="qtbase tracegen">
591 <primary sortas="b-tracegen">tracegen</primary>
592 </indexterm>
593 </listitem>
594 </varlistentry>
595
596 <varlistentry id="uic-qt5">
597 <term><command>uic</command></term>
598 <listitem>
599 <para>
600 is a Qt user interface compiler.
601 </para>
602 <indexterm zone="qtbase uic-qt5">
603 <primary sortas="b-uic-qt5">uic</primary>
604 </indexterm>
605 </listitem>
606 </varlistentry>
607
608 </variablelist>
609 </sect2>
610</sect1>
Note: See TracBrowser for help on using the repository browser.