source: x/lib/qt5.xml@ 74d76938

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 74d76938 was 74d76938, checked in by Bruce Dubbs <bdubbs@…>, 11 years ago

Add alternate Qt5 build instructions

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@11616 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 20.2 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.1">
8 <!ENTITY qt5-url "http://download.qt-project.org/official_releases/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 "44a507beebef73eb364b5a2ec7bbe090">
13 <!ENTITY qt5-size "169 MB">
14 <!ENTITY qt5-buildsize "2.5 GB">
15 <!ENTITY qt5-time "50 SBU">
16]>
17
18<sect1 id="qt5" xreflabel="Qt-&qt5-version;">
19 <?dbhtml filename="qt5.html" ?>
20
21 <sect1info>
22 <othername>$LastChangedBy$</othername>
23 <date>$Date$</date>
24 </sect1info>
25
26 <title>Qt-&qt5-version;</title>
27
28 <indexterm zone="qt5">
29 <primary sortas="a-Qt">Qt</primary>
30 </indexterm>
31
32 <sect2 role="package">
33 <title>Introduction to Qt</title>
34
35 <para>
36 <application>Qt</application> is a cross-platform application
37 framework that is widely used for developing application software
38 with a graphical user interface (GUI) (in which cases Qt is classified
39 as a widget toolkit), and also used for developing non-GUI programs such
40 as command-line tools and consoles for servers. One of the major users
41 of <application>Qt</application> is <application>KDE</application>.
42 </para>
43
44 &lfs73_checked;
45
46 <bridgehead renderas="sect3">Package Information</bridgehead>
47 <itemizedlist spacing="compact">
48 <listitem>
49 <para>
50 Download (HTTP): <ulink url="&qt5-download-http;"/>
51 </para>
52 </listitem>
53 <listitem>
54 <para>
55 Download (FTP): <ulink url="&qt5-download-ftp;"/>
56 </para>
57 </listitem>
58 <listitem>
59 <para>
60 Download MD5 sum: &qt5-md5sum;
61 </para>
62 </listitem>
63 <listitem>
64 <para>
65 Download size: &qt5-size;
66 </para>
67 </listitem>
68 <listitem>
69 <para>
70 Estimated disk space required: &qt5-buildsize;
71 </para>
72 </listitem>
73 <listitem>
74 <para>
75 Estimated build time: &qt5-time;
76 </para>
77 </listitem>
78 </itemizedlist>
79
80 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
81 <itemizedlist spacing="compact">
82 <listitem>
83 <para>
84 Required patch:
85 <ulink url="&patch-root;/qt-&qt5-version;-bison_fixes-1.patch"/>
86 </para>
87 </listitem>
88 </itemizedlist>
89
90 <bridgehead renderas="sect3">Qt Dependencies</bridgehead>
91
92 <bridgehead renderas="sect4">Required</bridgehead>
93 <para role="required">
94 <xref linkend="alsa-lib"/>,
95 <xref linkend="mesalib"/>,
96 <xref linkend="qtchooser"/>,
97 <xref linkend="xcb-util-image"/>,
98 <xref linkend="xcb-util-keysyms"/>,
99 <xref linkend="xcb-util-renderutil"/>, and
100 <xref linkend="xcb-util-wm"/>
101 </para>
102
103 <bridgehead renderas="sect4">Recommended</bridgehead>
104 <para role="recommended">
105 <xref linkend="cacerts"/>,
106 <xref linkend="cups"/>,
107 <xref linkend="dbus"/>,
108 <xref linkend="glib2"/>,
109 <xref linkend="gst-plugins-base"/>,
110 <xref linkend="icu"/>,
111 <xref linkend="libjpeg"/>,
112 <xref linkend="libpng"/>,
113 <xref linkend="libtiff"/>,
114 <xref linkend="openssl"/>,
115 <xref linkend="pcre"/>, and
116 <xref linkend="sqlite"/>
117 </para>
118
119 <bridgehead renderas="sect4">Optional</bridgehead>
120 <para role="optional">
121 <xref linkend="gst10-plugins-base"/> (QtWebKit HTML5 Video Support),
122 <xref linkend="gtk2"/> (GTK+ Theme Support),
123 <ulink url="http://xkbcommon.org/">libxkbcommon</ulink>,
124 <xref linkend="mysql"/>,
125 <xref linkend="postgresql"/>,
126 <xref linkend="pulseaudio"/>, and
127 <xref linkend="unixodbc"/>
128 </para>
129
130 <para condition="html" role="usernotes">User Notes:
131 <ulink url="&blfs-wiki;/qt5"/>
132 </para>
133 </sect2>
134
135 <sect2 role="installation">
136 <title>Installation of Qt</title>
137
138 <warning>
139 <para>
140 If you did not install some of the recommended dependencies, examine
141 <command>./configure --help</command> output to check how to disable
142 them or use internal versions bundled in the source tarball.
143 </para>
144 </warning>
145
146 <para>
147 Install <application>Qt</application> by running the
148 following commands:
149 </para>
150
151<screen><userinput>patch -Np1 -i ../qt-&qt5-version;-bison_fixes-1.patch &amp;&amp;
152
153./configure -prefix /usr \
154 -sysconfdir /etc/xdg \
155 -bindir /usr/lib/qt5/bin \
156 -headerdir /usr/include/qt5 \
157 -archdatadir /usr/lib/qt5 \
158 -datadir /usr/share/qt5 \
159 -docdir /usr/share/doc/qt5 \
160 -translationdir /usr/share/qt5/translations \
161 -examplesdir /usr/share/doc/qt5/examples \
162 -confirm-license \
163 -opensource \
164 -dbus-linked \
165 -openssl-linked \
166 -system-sqlite \
167 -plugin-sql-sqlite \
168 -no-nis \
169 -nomake examples \
170 -opengl es2 \
171 -optimized-qmake &amp;&amp;
172make</userinput></screen>
173
174 <para>
175 Remove references to the build directory from pkg-confg
176 files by running the following command:
177 </para>
178
179<screen><userinput>find . -name "*.pc" -exec perl -pi -e "s, -L$PWD/?\S+,,g" {} \;</userinput></screen>
180
181 <para>
182 This package does not come with a test suite.
183 </para>
184
185 <para>
186 Now, as the <systemitem class="username">root</systemitem> user:
187 </para>
188
189<screen role="root"><userinput>make install &amp;&amp;
190install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
191 /usr/share/pixmaps/assistant-qt5.png &amp;&amp;
192install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
193 /usr/share/pixmaps/designer-qt5.png &amp;&amp;
194install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
195 /usr/share/pixmaps/linguist-qt5.png &amp;&amp;
196install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
197 /usr/share/pixmaps/qdbusviewer-qt5.png</userinput></screen>
198
199 <para>
200 Remove references to the build directory from installed files by
201 running the following commands as the
202 <systemitem class="username">root</systemitem> user:
203 </para>
204
205<screen role="root"><userinput>sed -i -e "s:$PWD/qtbase:/usr/lib/qt5:g" \
206 /usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap.pri &amp;&amp;
207find /usr/lib/*.prl -exec sed -i -e \
208 '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;</userinput></screen>
209
210 <para>
211 Symlink the <application>Qt</application> executables into
212 <filename class="directory">/usr/bin</filename> by running the
213 following commands as the
214 <systemitem class="username">root</systemitem> user:
215 </para>
216
217<screen role="root"><userinput>for file in /usr/lib/qt5/bin/*
218do
219 ln -sfv ../lib/qt5/bin/$(basename $file) /usr/bin/$(basename $file)-qt5
220done</userinput></screen>
221
222 </sect2>
223
224 <sect2 role="installation">
225 <title>Alternate Qt Installation Instructions</title>
226
227 <para>This section provides an alternate way to install Qt by installing
228 almost all of the files in the <filename class='directory'>/opt</filename>
229 directory. This allows management of all Qt related files in one unit.
230 For instance, a new version of Qt5 can be installed without over-writing
231 the existing installation and entire Qt5 instances can be easily removed.
232 However, it has the disadvantage of needing some extra configuration.</para>
233
234<screen><userinput>patch -Np1 -i ../qt-&qt5-version;-bison_fixes-1.patch &amp;&amp;
235
236QT5DIR=/opt/qt-&qt5-version;
237
238./configure -prefix $QT5DIR \
239 -sysconfdir /etc/xdg \
240 -confirm-license \
241 -opensource \
242 -dbus-linked \
243 -openssl-linked \
244 -system-sqlite \
245 -plugin-sql-sqlite \
246 -no-nis \
247 -nomake examples \
248 -opengl es2 \
249 -optimized-qmake &amp;&amp;
250make</userinput></screen>
251
252 <para>
253 Now, as the <systemitem class="username">root</systemitem> user:
254 </para>
255
256<screen role="root"><userinput>make install &amp;&amp;
257
258install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
259 /usr/share/pixmaps/assistant-qt5.png &amp;&amp;
260install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
261 /usr/share/pixmaps/designer-qt5.png &amp;&amp;
262install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
263 /usr/share/pixmaps/linguist-qt5.png &amp;&amp;
264install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
265 /usr/share/pixmaps/qdbusviewer-qt5.png</userinput></screen>
266
267 <para>
268 Remove references to the build directory from installed files by
269 running the following commands as the
270 <systemitem class="username">root</systemitem> user:
271 </para>
272
273<screen role="root"><userinput>find $QT5DIR -name qt_lib_bootstrap.pri \
274 -exec sed -i -e "s:$PWD/qtbase:/$QT5DIR/lib/:g" {} \; &amp;&amp;
275
276find $QT5DIR -name \*.prl \
277 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
278
279 <para>
280 Symlink the <application>Qt</application> executables into
281 <filename class="directory">/usr/bin</filename> by running the
282 following commands as the
283 <systemitem class="username">root</systemitem> user:
284 </para>
285
286<screen role="root"><userinput>ln -svf $QT5DIR /opt/qt5 &amp;&amp;
287
288for file in /opt/qt5/bin/*; do
289 ln -sfv $file /usr/bin/$(basename $file)-qt5
290done</userinput></screen>
291
292 <para>At this point is is useful to add some configuration items as
293 the <systemitem class="username">root</systemitem> user:</para>
294
295<screen role="root"><userinput>echo /opt/qt5 &gt;&gt; /etc/ld.so.conf &amp;&amp;
296ldconfig &amp;&amp;
297
298cat &gt;&gt; /etc/profile.d/qt5.sh &lt;&lt; "EOF"
299pathappend /opt/qt5/lib/pkgconfig PKG_CONFIG_PATH
300EOF</userinput></screen>
301
302 </sect2>
303
304 <sect2 role="commands">
305 <title>Command Explanations</title>
306
307 <para>
308 <parameter>-confirm-license</parameter>: Accept license
309 without prompting user during configuration.
310 </para>
311
312 <para>
313 <parameter>-opensource</parameter>: Install the opensource
314 version of <application>Qt</application>.
315 </para>
316
317 <para>
318 <parameter>-release</parameter>: This switch disables
319 building with debugging symbols.
320 </para>
321
322 <para>
323 <parameter>-nomake examples</parameter>: This switch
324 disables building of the example programs included
325 in the source tarball. Remove it if you want to build
326 them.
327 </para>
328
329 <para>
330 <parameter>-system-sqlite</parameter>: This switch enables use
331 of the system version of <application>SQLite</application>.
332 </para>
333
334 <para>
335 <parameter>-no-nis</parameter>: This switch disables support
336 for Network Information Service (NIS) which has been
337 removed from recent versions of <application>Glibc</application>.
338 </para>
339
340 <para>
341 <parameter>-dbus-linkend -openssl-linkend</parameter>: These
342 switches enable explicit linking of the
343 <application>D-Bus</application> and
344 <application>OpenSSL</application> libraries into
345 <application>Qt</application> libraries instead of
346 <command>dlopen()</command>-ing them.
347 </para>
348
349 <para>
350 <parameter>-plugin-sql-<replaceable>&lt;driver&gt;</replaceable></parameter>:
351 These switches enable SQL support in the
352 <application>Qt</application> libraries. Available drivers are:
353 ibase, mysql, psql, sqlite and odbc.
354 </para>
355
356 <para>
357 <parameter>-opengl es2</parameter>: This switch enables OpenGL ES2
358 support in <application>Qt</application>.
359 </para>
360
361 <para>
362 <parameter>-optimized-qmake</parameter>: This switch enables
363 building of the optimized <command>qmake</command> program.
364 </para>
365
366 </sect2>
367
368 <sect2 role="configuration">
369 <title>Configuring Qt</title>
370
371 <sect3 id="qt5-config">
372 <title>Configuration Information</title>
373
374 <para>
375 Create the menu entries for installed applications.
376 As the <systemitem class="username">root</systemitem> user:
377 </para>
378
379<screen role="root"><userinput>install -dm755 /usr/share/applications
380cat &gt; /usr/share/applications/assistant-qt5.desktop &lt;&lt; "EOF"
381<literal>[Desktop Entry]
382Name=Qt5 Assistant
383Comment=Shows Qt5 documentation and examples
384Exec=assistant-qt5
385Icon=assistant-qt5
386Terminal=false
387Encoding=UTF-8
388Type=Application
389Categories=Qt;Development;Documentation;</literal>
390EOF
391cat &gt; /usr/share/applications/designer-qt5.desktop &lt;&lt; "EOF"
392<literal>[Desktop Entry]
393Name=Qt5 Designer
394GenericName=Interface Designer
395Comment=Design GUIs for Qt5 applications
396Exec=designer-qt5
397Icon=designer-qt5
398MimeType=application/x-designer;
399Terminal=false
400Encoding=UTF-8
401Type=Application
402Categories=Qt;Development;</literal>
403EOF
404cat &gt; /usr/share/applications/linguist-qt5.desktop &lt;&lt; "EOF"
405<literal>[Desktop Entry]
406Name=Qt5 Linguist
407Comment=Add translations to Qt5 applications
408Exec=linguist-qt5
409Icon=linguist-qt5
410MimeType=text/vnd.trolltech.linguist;application/x-linguist;
411Terminal=false
412Encoding=UTF-8
413Type=Application
414Categories=Qt;Development;</literal>
415EOF
416cat &gt; /usr/share/applications/qdbusviewer-qt5.desktop &lt;&lt; "EOF"
417<literal>[Desktop Entry]
418Name=Qt5 QDbusViewer
419GenericName=D-Bus Debugger
420Comment=Debug D-Bus applications
421Exec=qdbusviewer-qt5
422Icon=qdbusviewer-qt5
423Terminal=false
424Encoding=UTF-8
425Type=Application
426Categories=Qt;Development;Debugger;</literal>
427EOF</userinput></screen>
428
429 </sect3>
430
431 </sect2>
432
433 <sect2 role="content">
434 <title>Contents</title>
435
436 <segmentedlist>
437 <segtitle>Installed Programs</segtitle>
438 <segtitle>Installed Libraries</segtitle>
439 <segtitle>Installed Directories</segtitle>
440
441 <seglistitem>
442 <seg>
443 assistant-qt5, designer-qt5, lconvert-qt5, linguist-qt5, lrelease-qt5,
444 lupdate-qt5, moc-qt5, pixeltool-qt5, qcollectiongenerator-qt5,
445 qdbuscpp2xml-qt5, qdbus-qt5, qdbusviewer-qt5, qdbusxml2cpp-qt5, qdoc-qt5,
446 qhelpconverter-qt5, qhelpgenerator-qt5, qmake-qt5, qml1plugindump-qt5,
447 qmlbundle-qt5, qmlmin-qt5, qmlplugindump-qt5, qmlprofiler-qt5, qmlscene-qt5,
448 qmltestrunner-qt5, qmlviewer-qt5, rcc-qt5, syncqt.pl-qt5, uic-qt5,
449 xmlpatterns-qt5 and xmlpatternsvalidator-qt5
450 </seg>
451 <seg>
452 libqgsttools_p.so, libQt5Bootstrap.a, libQt5CLucene.so, libQt5Concurrent.so,
453 libQt5Core.so, libQt5DBus.so, libQt5Declarative.so, libQt5DesignerComponents.so,
454 libQt5Designer.so, libQt5Gui.so, libQt5Help.so, libQt5MultimediaQuick_p.so,
455 libQt5Multimedia.so, libQt5MultimediaWidgets.so, libQt5Network.so,
456 libQt5OpenGLExtensions.a, libQt5OpenGL.so, libQt5PlatformSupport.a,
457 libQt5PrintSupport.so, libQt5QmlDevTools.a, libQt5Qml.so, libQt5QuickParticles.so,
458 libQt5Quick.so, libQt5QuickTest.so, libQt5Script.so, libQt5ScriptTools.so,
459 libQt5Sensors.so, libQt5SerialPort.so, libQt5Sql.so, libQt5Svg.so, libQt5Test.so,
460 libQt5UiTools.a, libQt5V8.so, libQt5WebKit.so, libQt5WebKitWidgets.so,
461 libQt5Widgets.so, libQt5X11Extras.so, libQt5XmlPatterns.so and libQt5Xml.so
462 </seg>
463 <seg>
464 /usr/include/qt5,
465 /usr/lib/qt5,
466 /usr/share/doc/qt5 and
467 /usr/share/qt5
468 </seg>
469 </seglistitem>
470 </segmentedlist>
471
472 <variablelist>
473 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
474 <?dbfo list-presentation="list"?>
475 <?dbhtml list-presentation="table"?>
476
477 <varlistentry id="assistant-qt5">
478 <term><command>assistant-qt5</command></term>
479 <listitem>
480 <para>
481 is a tool for presenting on-line documentation.
482 </para>
483 <indexterm zone="qt5 assistant-qt5">
484 <primary sortas="b-assistant-qt5">assistant-qt5</primary>
485 </indexterm>
486 </listitem>
487 </varlistentry>
488
489 <varlistentry id="designer-qt5">
490 <term><command>designer-qt5</command></term>
491 <listitem>
492 <para>
493 is a full-fledged GUI builder. It includes
494 powerful features such as preview mode, automatic widget
495 layout, support for custom widgets, and an advanced
496 property editor.
497 </para>
498 <indexterm zone="qt5 designer-qt5">
499 <primary sortas="b-designer-qt5">designer-qt5</primary>
500 </indexterm>
501 </listitem>
502 </varlistentry>
503
504 <varlistentry id="linguist-qt5">
505 <term><command>linguist-qt5</command></term>
506 <listitem>
507 <para>
508 provides support for translating applications into
509 local languages.
510 </para>
511 <indexterm zone="qt5 linguist-qt5">
512 <primary sortas="b-linguist-qt5">linguist-qt5</primary>
513 </indexterm>
514 </listitem>
515 </varlistentry>
516
517 <varlistentry id="lrelease-qt5">
518 <term><command>lrelease-qt5</command></term>
519 <listitem>
520 <para>
521 is a simple command line tool. It reads a Qt project
522 file and produces message files used by the application.
523 </para>
524 <indexterm zone="qt5 lrelease-qt5">
525 <primary sortas="b-lrelease-qt5">lrelease-qt5</primary>
526 </indexterm>
527 </listitem>
528 </varlistentry>
529
530 <varlistentry id="lupdate-qt5">
531 <term><command>lupdate-qt5</command></term>
532 <listitem>
533 <para>
534 reads a Qt project file, finds the translatable
535 strings in the specified source, header and Qt Designer
536 interface files, and produces or updates the translation
537 files listed in the project file.
538 </para>
539 <indexterm zone="qt5 lupdate-qt5">
540 <primary sortas="b-lupdate-qt5">lupdate-qt5</primary>
541 </indexterm>
542 </listitem>
543 </varlistentry>
544
545 <varlistentry id="moc-qt5">
546 <term><command>moc-qt5</command></term>
547 <listitem>
548 <para>
549 generates Qt meta object support code.
550 </para>
551 <indexterm zone="qt5 moc-qt5">
552 <primary sortas="b-moc-qt5">moc-qt5</primary>
553 </indexterm>
554 </listitem>
555 </varlistentry>
556
557 <varlistentry id="pixeltool-qt5">
558 <term><command>pixeltool-qt5</command></term>
559 <listitem>
560 <para>
561 is a desktop magnifier and as you move your mouse around
562 the screen it will show the magnified contents in its window.
563 </para>
564 <indexterm zone="qt5 pixeltool-qt5">
565 <primary sortas="b-pixeltool-qt5">pixeltool-qt5</primary>
566 </indexterm>
567 </listitem>
568 </varlistentry>
569
570 <varlistentry id="qmake-qt5">
571 <term><command>qmake-qt5</command></term>
572 <listitem>
573 <para>
574 uses information stored in project files to
575 determine what should go in the makefiles it
576 generates.
577 </para>
578 <indexterm zone="qt5 qmake-qt5">
579 <primary sortas="b-qmake-qt5">qmake-qt5</primary>
580 </indexterm>
581 </listitem>
582 </varlistentry>
583
584 <varlistentry id="rcc-qt5">
585 <term><command>rcc-qt5</command></term>
586 <listitem>
587 <para>
588 is a resource compiler used in conjunction with designer.
589 </para>
590 <indexterm zone="qt5 rcc-qt5">
591 <primary sortas="b-rcc-qt5">rcc-qt5</primary>
592 </indexterm>
593 </listitem>
594 </varlistentry>
595
596 <varlistentry id="uic-qt5">
597 <term><command>uic-qt5</command></term>
598 <listitem>
599 <para>
600 is a Qt user interface compiler.
601 </para>
602 <indexterm zone="qt5 uic-qt5">
603 <primary sortas="b-uic-qt5">uic-qt5</primary>
604 </indexterm>
605 </listitem>
606 </varlistentry>
607
608 </variablelist>
609
610 </sect2>
611
612</sect1>
Note: See TracBrowser for help on using the repository browser.