source: x/lib/qt5-alternate.xml@ 7ca69c6a

12.1 12.2 gimp3 ken/TL2024 lazarus plabs/newcss rahul/power-profiles-daemon trunk xry111/for-12.3 xry111/llvm18 xry111/spidermonkey128
Last change on this file since 7ca69c6a was 8525524b, checked in by Pierre Labastie <pierre.labastie@…>, 8 months ago

Update to qt5-5.15.12

  • Property mode set to 100644
File size: 21.8 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 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 "8.5 GB (154 MB installed)">
15 <!ENTITY qt5-time "7.4 SBU (using parallelism=4)">
16]>
17
18<sect1 id="qt5-alternate" xreflabel="qt-alternate-&qt5-version;">
19 <?dbhtml filename="qt5-alternate.html" ?>
20
21 <title>qt-alternate-&qt5-version;</title>
22
23 <indexterm zone="qt5">
24 <primary sortas="a-Qt">Qt</primary>
25 </indexterm>
26
27 <sect2 role="package">
28 <title>Introduction to qt5 (alternate)</title>
29
30 <para>
31 <application>Qt5</application> is a cross-platform application framework
32 that is widely used for developing application software with a graphical
33 user interface (GUI) (in which cases <application>qt5</application> is
34 classified as a widget toolkit), and also used for developing non-GUI
35 programs such as command-line tools and consoles for servers. Two of the
36 major users of <application>qt</application> are <application>KDE
37 Frameworks 5 (KF5)</application> and <application>LXQt</application>.
38 </para>
39
40 <important>
41 <para>
42 The full <application>qt5</application> package consists of 43 separate
43 components. These instructions use a small subset of the full
44 <application>qt5</application> installation instructions above.
45 They cover most, but not all, of the components needed to build
46 packages in BLFS. This page, and the next, are provided to
47 reduce the amount of time, space, and dependencies needed
48 to build these packages. They are not recommended if you will build
49 the <xref linkend="kf5-frameworks"/> based <xref linkend="plasma5-build"/> desktop
50 environment.
51 </para>
52 </important>
53
54 &lfs120_checked;
55
56 <bridgehead renderas="sect3">Package Information</bridgehead>
57 <itemizedlist spacing="compact">
58 <listitem>
59 <para>
60 Download (HTTP): <ulink url="&qt5-download-http;"/>
61 </para>
62 </listitem>
63 <listitem>
64 <para>
65 Download (FTP): <ulink url="&qt5-download-ftp;"/>
66 </para>
67 </listitem>
68 <listitem>
69 <para>
70 Download MD5 sum: &qt5-md5sum;
71 </para>
72 </listitem>
73 <listitem>
74 <para>
75 Download size: &qt5-size;
76 </para>
77 </listitem>
78 <listitem>
79 <para>
80 Estimated disk space required: &qt5-buildsize;
81 </para>
82 </listitem>
83 <listitem>
84 <para>
85 Estimated build time: &qt5-time;
86 </para>
87 </listitem>
88 </itemizedlist>
89
90 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
91 <itemizedlist spacing="compact">
92 <listitem>
93 <para>
94 Now that <application>qt5</application> updates are restricted to
95 commercial customers, upstream patches for the various modules are
96 being curated at kde.
97 Patches for the modules required by packages in BLFS have been
98 aggregated for the non-modular qt5 build we use.
99 </para>
100 <para>
101 Required patch:
102 <ulink url="&patch-root;/qt-everywhere-opensource-src-&qt5-version;-kf5-1.patch"/>
103 </para>
104 <para>
105 Details of the kde curation can be found at
106 <ulink url="https://dot.kde.org/2021/04/06/announcing-kdes-qt-5-patch-collection"/>
107 and <ulink url="https://community.kde.org/Qt5PatchCollection"/>.
108 </para>
109 </listitem>
110 </itemizedlist>
111
112 <bridgehead renderas="sect3">qt5 Dependencies</bridgehead>
113
114 <bridgehead renderas="sect4">Required</bridgehead>
115 <para role="required">
116 <xref linkend="xorg7-lib"/>
117 </para>
118
119 <bridgehead renderas="sect4">Recommended</bridgehead>
120 <para role="recommended">
121 <xref linkend="alsa-lib"/>,
122 <xref linkend="cups"/>,
123 <phrase revision='sysv'><xref linkend="dbus"/>,</phrase>
124 <xref linkend="double-conversion"/>,
125 <xref linkend="glib2"/>,
126 <xref linkend="harfbuzz"/>,
127 <xref linkend="icu"/>,
128 <xref linkend="hicolor-icon-theme"/>,
129 <xref linkend="mesa"/>,
130 <xref linkend="libjpeg"/>,
131 <xref linkend="libxkbcommon"/>,
132 <xref linkend="sqlite"/>,
133 <xref linkend="wayland"/> (<application>Mesa</application>
134 must be built with <application>Wayland</application> EGL
135 backend),
136 <xref linkend="xcb-util-image"/>,
137 <xref linkend="xcb-util-keysyms"/>,
138 <xref linkend="xcb-util-renderutil"/>, and
139 <xref linkend="xcb-util-wm"/>
140 </para>
141
142 <bridgehead renderas="sect4">Optional</bridgehead>
143 <para role="optional">
144 <xref linkend="gtk3"/>,
145 <xref linkend="libinput"/>
146 <xref linkend="mariadb"/>
147 or <ulink url="https://www.mysql.com/">MySQL</ulink>,
148 <xref linkend="mitkrb"/>,
149 <xref linkend="mtdev"/>
150 <xref linkend="postgresql"/>, and
151 <xref linkend="unixodbc"/>
152 </para>
153
154 </sect2>
155
156 <sect2 role="qt5-prefix">
157 <title>Setting the installation prefix</title>
158
159 <bridgehead renderas="sect3">Installing in /opt/qt5</bridgehead>
160
161 <para>
162 The BLFS editors recommend installing <application>qt5</application> in a
163 directory other than <filename class="directory">/usr</filename>, i.e.
164 <filename class="directory">/opt/qt5</filename>. To do this, set the
165 following environment variable:
166 </para>
167
168<screen><userinput>export QT5PREFIX=/opt/qt5</userinput></screen>
169
170 <tip>
171 <para>
172 Sometimes, the installation paths are hardcoded into installed files.
173 This is the reason why <filename class="directory">/opt/qt5</filename>
174 is used as installation prefix instead of <filename
175 class="directory">/opt/qt-&qt5-version;</filename>. To create a
176 versioned <application>qt5</application> directory after the
177 installation is complete, you may rename the directory and create a symlink:
178 </para>
179
180<screen role="root"><userinput>mkdir -pv /opt/qt-&qt5-version;
181ln -sfnv qt-&qt5-version; /opt/qt5</userinput></screen>
182
183 <para>
184 Later on, you may want to install other versions of
185 <application>qt5</application>. To do that, just remove the symlink
186 and use <filename class="directory">/opt/qt5</filename> as the
187 prefix again. Which version of <application>qt5</application> you
188 use depends only on where the symlink points.
189 </para>
190 </tip>
191
192 </sect2>
193
194 <sect2 role="installation">
195 <title>Installation of qt5</title>
196
197 <warning>
198 <para>
199 If <application>qt5</application> is being reinstalled into the
200 same directory as an existing instance, run the commands done by
201 <systemitem class="username">root</systemitem>, such as
202 <command>make install</command>, from a console or non-qt5 based
203 window manager. It overwrites <application>qt5</application>
204 libraries that should not be in use during the install process.
205 </para>
206 </warning>
207
208 <caution>
209 <para>
210 If you did not install some of the recommended dependencies, examine
211 <command>./configure --help</command> output to check how to disable
212 them or use internal versions bundled in the source tarball.
213 </para>
214 </caution>
215
216 <note>
217 <para>
218 The BLFS editors do not recommend installing
219 <application>qt5</application> into the
220 <filename class="directory">/usr</filename> hierarchy because it
221 becomes difficult to find components and to update to a new version.
222 If you do want to install <application>qt5</application> in
223 <filename class="directory">/usr</filename>, the directories need to
224 be specified explicitly. In this case, set
225 <envar>QT5PREFIX=/usr</envar> and add the following to the configure
226 arguments below:
227 </para>
228
229<screen role="nodump"><userinput> -archdatadir /usr/lib/qt5 \
230 -bindir /usr/bin \
231 -plugindir /usr/lib/qt5/plugins \
232 -importdir /usr/lib/qt5/imports \
233 -headerdir /usr/include/qt5 \
234 -datadir /usr/share/qt5 \
235 -docdir /usr/share/doc/qt5 \
236 -translationdir /usr/share/qt5/translations \
237 -examplesdir /usr/share/doc/qt5/examples</userinput></screen>
238 </note>
239
240 <para>
241 Now apply a patch to pull in the fixes curated by kde for those
242 modules which are required by packages mentioned in this book:
243 </para>
244
245<screen><userinput remap="pre">patch -Np1 -i ../qt-everywhere-opensource-src-&qt5-version;-kf5-1.patch</userinput></screen>
246
247 <para>
248 The patch is supposed to be used in a git repository. Otherwise some
249 files that should be modified by <command>configure</command> after
250 applying the patch are not touched. Fortunately, it is enough to create a
251 <filename class="directory">.git</filename> directory in the
252 <filename class="directory">qmake</filename> directory where the
253 <command>configure</command> script is run:
254 </para>
255
256 <screen><userinput remap="pre">mkdir -pv qtbase/.git</userinput></screen>
257
258 <para>
259 At this point we want to set up skipping most components. Do that with:
260 </para>
261
262<screen><userinput>ls -Fd qt* | grep / | sed 's/^/-skip /;s@/@@' > tempconf &amp;&amp;
263sed -i -r '/base|tools|x11extras|svg|declarative|wayland/d' tempconf</userinput></screen>
264
265 <para>
266 Now, install <application>qt5</application> by running the following
267 commands:
268 </para>
269
270<screen revision="sysv"><userinput>./configure -prefix $QT5PREFIX \
271 -sysconfdir /etc/xdg \
272 -confirm-license \
273 -opensource \
274 -dbus-linked \
275 -openssl-linked \
276 -system-harfbuzz \
277 -system-sqlite \
278 -nomake examples \
279 -no-rpath \
280 -syslog \
281 $(cat tempconf) \
282 &amp;&amp;
283make</userinput></screen>
284
285<screen revision="systemd"><userinput>./configure -prefix $QT5PREFIX \
286 -sysconfdir /etc/xdg \
287 -confirm-license \
288 -opensource \
289 -dbus-linked \
290 -openssl-linked \
291 -system-harfbuzz \
292 -system-sqlite \
293 -nomake examples \
294 -no-rpath \
295 -journald \
296 $(cat tempconf) \
297 &amp;&amp;
298make</userinput></screen>
299
300 <para>
301 This package does not come with a test suite.
302 </para>
303
304 <para>
305 Now, as the <systemitem class="username">root</systemitem> user:
306 </para>
307
308<screen role="root"><userinput>make install</userinput></screen>
309
310 <!-- EDITORS NOTE: This package uses INSTALL_ROOT= instead of DESTDIR= for
311 installing in a temporary directory. -->
312
313 <para>
314 Remove references to the build directory from installed library
315 dependency (prl) files by running the following
316 command as the <systemitem class="username">root</systemitem> user:
317 </para>
318
319<screen role="root"><userinput>find $QT5PREFIX/ -name \*.prl \
320 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
321
322 <para>
323 Install images and create the menu entries for installed applications.
324 The <envar>QT5BINDIR</envar> variable is used here to point to the
325 directory for the executable programs. If you have changed the bindir
326 above, <envar>QT5BINDIR</envar> will need to be adjusted below. Be sure
327 that the <envar>QT5BINDIR</envar> variable is defined in root's
328 environment and as the <systemitem class="username">root</systemitem>
329 user:
330 </para>
331
332<screen role="root"><userinput>QT5BINDIR=$QT5PREFIX/bin
333
334install -v -dm755 /usr/share/pixmaps/ &amp;&amp;
335
336install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
337 /usr/share/pixmaps/assistant-qt5.png &amp;&amp;
338
339install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
340 /usr/share/pixmaps/designer-qt5.png &amp;&amp;
341
342install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
343 /usr/share/pixmaps/linguist-qt5.png &amp;&amp;
344
345install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
346 /usr/share/pixmaps/qdbusviewer-qt5.png &amp;&amp;
347
348install -dm755 /usr/share/applications &amp;&amp;
349
350cat &gt; /usr/share/applications/assistant-qt5.desktop &lt;&lt; EOF
351<literal>[Desktop Entry]
352Name=Qt5 Assistant
353Comment=Shows Qt5 documentation and examples
354Exec=$QT5BINDIR/assistant
355Icon=assistant-qt5.png
356Terminal=false
357Encoding=UTF-8
358Type=Application
359Categories=Qt;Development;Documentation;</literal>
360EOF
361
362cat &gt; /usr/share/applications/designer-qt5.desktop &lt;&lt; EOF
363<literal>[Desktop Entry]
364Name=Qt5 Designer
365GenericName=Interface Designer
366Comment=Design GUIs for Qt5 applications
367Exec=$QT5BINDIR/designer
368Icon=designer-qt5.png
369MimeType=application/x-designer;
370Terminal=false
371Encoding=UTF-8
372Type=Application
373Categories=Qt;Development;</literal>
374EOF
375
376cat &gt; /usr/share/applications/linguist-qt5.desktop &lt;&lt; EOF
377<literal>[Desktop Entry]
378Name=Qt5 Linguist
379Comment=Add translations to Qt5 applications
380Exec=$QT5BINDIR/linguist
381Icon=linguist-qt5.png
382MimeType=text/vnd.trolltech.linguist;application/x-linguist;
383Terminal=false
384Encoding=UTF-8
385Type=Application
386Categories=Qt;Development;</literal>
387EOF
388
389cat &gt; /usr/share/applications/qdbusviewer-qt5.desktop &lt;&lt; EOF
390<literal>[Desktop Entry]
391Name=Qt5 QDbusViewer
392GenericName=D-Bus Debugger
393Comment=Debug D-Bus applications
394Exec=$QT5BINDIR/qdbusviewer
395Icon=qdbusviewer-qt5.png
396Terminal=false
397Encoding=UTF-8
398Type=Application
399Categories=Qt;Development;Debugger;</literal>
400EOF</userinput></screen>
401
402 <para>
403 Some packages such as <xref linkend='vlc'/> look for certain
404 executables with a -qt5 suffix. Run the following command as the
405 <systemitem class="username">root</systemitem> user
406 to create the necessary symlinks:
407 </para>
408
409<screen role="root"><userinput>for file in moc uic rcc qmake lconvert lrelease lupdate; do
410 ln -sfvn $QT5BINDIR/$file /usr/bin/$file-qt5
411done</userinput></screen>
412
413 </sect2>
414
415 <sect2 role="commands">
416 <title>Command Explanations</title>
417
418 <para>
419 <parameter>-confirm-license</parameter>: Accept license
420 without prompting user during configuration.
421 </para>
422
423 <para>
424 <parameter>-opensource</parameter>: Install the opensource
425 version of <application>qt</application>.
426 </para>
427
428 <para>
429 <parameter>-nomake examples</parameter>: This switch
430 disables building of the example programs included
431 in the source tarball. Remove it if you want to build
432 them.
433 </para>
434
435 <para>
436 <parameter>-system-sqlite</parameter>: This switch enables use
437 of the system version of <application>SQLite</application>.
438 </para>
439
440 <para>
441 <parameter>-system-harfbuzz</parameter>: This switch enables use
442 of the system version of <application>Harfbuzz</application>.
443 </para>
444
445 <para>
446 <parameter>-dbus-linked</parameter>
447 <parameter>-openssl-linked</parameter>: These
448 switches enable explicit linking of the
449 <application>D-Bus</application> and
450 <application>OpenSSL</application> libraries into
451 <application>qt5</application> libraries instead of
452 <command>dlopen()</command>-ing them.
453 </para>
454
455 <para revision="sysv">
456 <parameter>-syslog</parameter>: This switch allows to send qt messages
457 to the <command>syslog</command> logging system.
458 </para>
459
460 <para revision="systemd">
461 <parameter>-journald</parameter>: This switch allows to send qt messages
462 to the <command>journald</command> logging system.
463 </para>
464
465 <para>
466 <command>$(cat tempconf)</command>: This command provides a list of
467 components that should not be built. These entries are in the form of
468 "-skip &lt;component&gt;".
469 </para>
470
471 </sect2>
472
473 <sect2 role="configuration">
474 <title>Configuring qt5</title>
475
476 <sect3 id="qt5-alt-config">
477 <title>Configuration Information</title>
478
479 <para>
480 If <xref linkend="sudo"/> is installed, QT5DIR should be available to
481 the super user as well. Execute the following commands as the
482 <systemitem class="username">root</systemitem> user:
483 </para>
484
485<screen role="root"><userinput>cat &gt; /etc/sudoers.d/qt &lt;&lt; "EOF"
486<literal>Defaults env_keep += QT5DIR</literal>
487EOF</userinput></screen>
488
489 <bridgehead renderas="sect4">If you installed qt5 in /usr</bridgehead>
490
491 <para>
492 If you installed <application>qt5</application> in
493 <filename class="directory">/usr</filename>, create an
494 environment variable needed by certain packages.
495 As the <systemitem class="username">root</systemitem> user:
496 </para>
497
498<screen role="nodump"><userinput>cat &gt; /etc/profile.d/qt5.sh &lt;&lt; "EOF"
499<literal># Begin /etc/profile.d/qt5.sh
500
501QT5DIR=/usr
502export QT5DIR
503
504# End /etc/profile.d/qt5.sh</literal>
505EOF</userinput></screen>
506
507 <bridgehead renderas="sect4">If you did not install qt5 in /usr</bridgehead>
508
509 <para>
510 If you installed <application>qt5</application> in a location other
511 than <filename class="directory">/usr</filename>, you need to update the
512 following configuration files so that <application>qt5</application> is
513 correctly found by other packages and system processes.
514 </para>
515
516 <para>
517 As the <systemitem class="username">root</systemitem> user, update
518 the <filename>/etc/ld.so.conf</filename> file and the dynamic linker's
519 run-time cache file:
520 </para>
521
522<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
523<literal># Begin Qt addition
524
525/opt/qt5/lib
526
527# End Qt addition</literal>
528EOF
529
530ldconfig</userinput></screen>
531
532 <indexterm zone="qt5 qt5-config">
533 <primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>
534 </indexterm>
535
536 <para>
537 As the <systemitem class="username">root</systemitem> user, create
538 the <filename>/etc/profile.d/qt5.sh</filename> file:
539 </para>
540
541<screen role="root"><userinput>cat &gt; /etc/profile.d/qt5.sh &lt;&lt; "EOF"
542<literal># Begin /etc/profile.d/qt5.sh
543
544QT5DIR=/opt/qt5
545
546pathappend $QT5DIR/bin PATH
547pathappend $QT5DIR/lib/pkgconfig PKG_CONFIG_PATH
548
549export QT5DIR
550
551# End /etc/profile.d/qt5.sh</literal>
552EOF</userinput></screen>
553
554 </sect3>
555
556 </sect2>
557
558 <sect2 role="content">
559 <title>Contents</title>
560
561 <segmentedlist>
562 <segtitle>Installed Programs</segtitle>
563 <segtitle>Installed Libraries</segtitle>
564 <segtitle>Installed Directories</segtitle>
565
566 <seglistitem>
567 <seg>
568 assistant, designer, fixqt4headers.pl, lconvert,
569 linguist, lprodump, lrelease, lrelease-pro, lupdate, lupdate-pro,
570 moc, pixeltool, qcollectiongenerator, qdbus, qdbuscpp2xml,
571 qdbusviewer, qdbusxml2cpp, qdistancefieldgenerator, qdoc,
572 qhelpgenerator, qlalr, qmake, qml, qmlcachegen, qmleasing,
573 qmlformat, qmlimportscanner, qmllint, qmlmin, qmlplugindump,
574 qmlpreview, qmlprofiler, qmlscene, qmltestrunner, qmltime,
575 qmltyperegistrar,
576 qtattributionscanner, qtdiag, qtpaths, qtplugininfo,
577 qtwaylandscanner, qvkgen, rcc, syncqt.pl, tracegen, and
578 uic
579 </seg>
580 <seg>
581 libQt5AccessibilitySupport.a,
582 libQt5Bootstrap.a,
583 libQt5Concurrent.so,
584 libQt5Core.so,
585 libQt5DBus.so,
586 libQt5Designer.so,
587 libQt5DesignerComponents.so,
588 libQt5DeviceDiscoverySupport.a,
589 libQt5EdidSupport.a,
590 libQt5EglFSDeviceIntegration.so,
591 libQt5EglFsKmsSupport.so,
592 libQt5EglSupport.a,
593 libQt5EventDispatcherSupport.a,
594 libQt5FbSupport.a,
595 libQt5FontDatabaseSupport.a,
596 libQt5GlxSupport.a,
597 libQt5Gui.so,
598 libQt5Help.so,
599 libQt5InputSupport.a,
600 libQt5KmsSupport.a,
601 libQt5LinuxAccessibilitySupport.a,
602 libQt5Network.so,
603 libQt5OpenGL.so,
604 libQt5OpenGLExtensions.a,
605 libQt5PacketProtocol.a,
606 libQt5PlatformCompositorSupport.a,
607 libQt5PrintSupport.so,
608 libQt5Qml.so,
609 libQt5QmlDebug.a,
610 libQt5QmlDevTools.a,
611 libQt5QmlModels.so,
612 libQt5QmlWorkerScript.so,
613 libQt5Quick.so,
614 libQt5QuickParticles.so,
615 libQt5QuickShapes.so,
616 libQt5QuickTest.so,
617 libQt5QuickWidgets.so,
618 libQt5ServiceSupport.a,
619 libQt5Sql.so,
620 libQt5Svg.so,
621 libQt5Test.so,
622 libQt5ThemeSupport.a,
623 libQt5UiTools.a,
624 libQt5WaylandClient.so,
625 libQt5WaylandCompositor.so,
626 libQt5Widgets.so,
627 libQt5X11Extras.so,
628 libQt5XcbQpa.so,
629 libQt5XkbCommonSupport.a,
630 libQt5Xml.so,
631 and several plugins under /opt/qt5/{plugins,qml}
632 </seg>
633 <seg>
634 /usr/include/qt5,
635 /usr/lib/qt5,
636 /usr/share/doc/qt5, and
637 /usr/share/qt5
638 OR
639 /opt/qt5 and
640 /opt/qt-&qt5-version;
641 </seg>
642 </seglistitem>
643 </segmentedlist>
644
645 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
646 <para>See <xref linkend="qt5-descriptions"/></para>
647
648 </sect2>
649
650</sect1>
Note: See TracBrowser for help on using the repository browser.