glfs/x/lib/qt6.xml
2024-02-18 12:19:44 -06:00

1180 lines
38 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY qt6-major "6.6">
<!ENTITY qt6-url "https://download.qt.io/archive/qt/&qt6-major;/&qt6-version;/single">
<!ENTITY qt6-download-http "&qt6-url;/qt-everywhere-src-&qt6-version;.tar.xz">
<!ENTITY qt6-download-ftp " ">
<!ENTITY qt6-md5sum "b92112e12298f4b27050ef7060658191">
<!ENTITY qt6-size "764 MB">
<!ENTITY qt6-buildsize "31 GB (354 MB installed)">
<!ENTITY qt6-time "16 SBU (using parallelism=8)">
]>
<sect1 id="qt6" xreflabel="Qt-&qt6-version;">
<?dbhtml filename="qt6.html" ?>
<title>Qt-&qt6-version;</title>
<indexterm zone="qt6">
<primary sortas="a-Qt6">Qt6</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Qt6</title>
<para>
<application>Qt6</application> is a cross-platform application framework
that is widely used for developing application software with a graphical
user interface (GUI) (in which cases <application>Qt6</application> is
classified as a widget toolkit), and also used for developing non-GUI
programs such as command-line tools and consoles for servers. <!--Two of the
major users of <application>Qt</application> are <application>KDE
Frameworks 5 (KF5)</application> and <application>LXQt</application>.-->
</para>
&lfs121_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&qt6-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&qt6-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &qt6-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &qt6-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &qt6-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &qt6-time;
</para>
</listitem>
</itemizedlist>
<!--
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Now that <application>Qt5</application> updates are restricted to
commercial customers, upstream patches for the various modules are
being curated at kde.
Patches for the modules required by packages in BLFS have been
aggregated for the non-modular Qt5 build we use.
</para>
<para>
Required patch:
<ulink url="&patch-root;/qt-everywhere-opensource-src-&qt6-version;-kf5-1.patch"/>
</para>
<para>
Details of the kde curation can be found at
<ulink url="https://dot.kde.org/2021/04/06/announcing-kdes-qt-5-patch-collection"/>
and <ulink url="https://community.kde.org/Qt5PatchCollection"/>.
</para>
</listitem>
</itemizedlist>
-->
<bridgehead renderas="sect3">Qt6 Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="xorg7-lib"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="alsa-lib"/>,
<xref linkend="make-ca"/>,
<xref linkend="cups"/>,
<phrase revision='sysv'><xref linkend="dbus"/>,</phrase>
<xref linkend="double-conversion"/>,
<xref linkend="glib2"/>,
<xref linkend="gst10-plugins-base"/> (QtMultimedia backend),
<xref linkend="harfbuzz"/>,
<xref linkend="icu"/>,
<xref linkend="jasper"/>,
<xref linkend="libjpeg"/>,
<xref linkend="libmng"/>,
<xref linkend="libpng"/>,
<xref linkend="libtiff"/>,
<xref linkend="libwebp"/>,
<xref linkend="libxkbcommon"/>,
<xref linkend="mesa"/>,
<xref linkend="mtdev"/>,
<xref linkend="pcre2"/>,
<xref linkend="sqlite"/>,
<xref linkend="wayland"/> (<application>Mesa</application>
must be built with <application>Wayland</application> EGL
backend),
<xref linkend="xcb-util-cursor"/>,
<xref linkend="xcb-util-image"/>,
<xref linkend="xcb-util-keysyms"/>,
<xref linkend="xcb-util-renderutil"/>, and
<xref linkend="xcb-util-wm"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref role="runtime" linkend="bluez"/> (for sdpscanner, and at runtime for
QtConnectivity module),
<xref linkend="gtk3"/>,
<xref linkend="ibus"/>,
<xref linkend="libinput"/>,
<xref linkend="mariadb"/>
or <ulink url="https://www.mysql.com/">MySQL</ulink>,
<xref linkend="mitkrb"/>,
<xref linkend="pciutils"/>,
<xref linkend="postgresql"/>,
<xref linkend="pulseaudio"/>,
<xref linkend="sdl2"/>,
<xref linkend="unixodbc"/>,
<ulink url="https://www.assimp.org/">assimp</ulink>,
<ulink url="https://github.com/festvox/flite">Flite</ulink>,
<ulink url="https://www.firebirdsql.org/">Firebird</ulink>,
<ulink url="https://www.freetds.org/">FreeTDS</ulink>,
<ulink url="https://libproxy.github.io/libproxy/">libproxy</ulink>,
<ulink url="https://openal.org/">OpenAL</ulink>,
<ulink url="https://freebsoft.org/speechd/">speech-dispatcher</ulink>, and
<ulink url="http:///www.tslib.org/">tslib</ulink>
<!--<ulink url="https://vulkan.lunarg.com/sdk/home/">Vulkan</ulink>-->
</para>
<!-- Many of the dependencies in the qmake/configure output do not apply
to Linux-based platforms. I've selected the ones that do and put
them in as optional dependencies. Not checked yet for Qt6 -->
</sect2>
<sect2 role="qt6-prefix">
<title>Setting the installation prefix</title>
<bridgehead renderas="sect3">Installing in /opt/qt6</bridgehead>
<para>
The BLFS editors recommend installing <application>Qt6</application> in a
directory other than <filename class="directory">/usr</filename>, ie
<filename class="directory">/opt/qt6</filename>. This is needed
to avoid conflicts with Qt5. To do this, set the
following environment variable:
</para>
<screen><userinput>export QT6PREFIX=/opt/qt6</userinput></screen>
<tip>
<para>
Sometimes the installation paths are hardcoded into installed files.
This is the reason why <filename class="directory">/opt/qt6</filename>
is used as installation prefix instead of <filename
class="directory">/opt/qt-&qt6-version;</filename>. To create a
versioned <application>Qt6</application> directory,
you may rename the directory and create a symlink:
</para>
<screen role="root"><userinput>mkdir -pv /opt/qt-&qt6-version;
ln -sfnv qt-&qt6-version; /opt/qt6</userinput></screen>
<para>
Later on, you may want to install other versions of
<application>Qt6</application>. To do that, just remove the symlink,
create the new versioned directory, and recreate the
<filename class="directory">/opt/qt6</filename> symlink again before
building the new version.
Which version of <application>Qt6</application> you
use depends only on where the symlink points.
</para>
</tip>
<!-- Not sure about this for Qt6
<note>
<para>
If <xref linkend="qca"/> has been installed and you are
reinstalling or updating this package, then
<application>qca</application> will need to be reinstalled.
</para>
</note>
-->
</sect2>
<sect2 role="installation">
<title>Installation of Qt6</title>
<warning>
<para>
If <application>Qt6</application> is being reinstalled into the
same directory as an existing instance, run the commands done by
<systemitem class="username">root</systemitem>, such as
<command>make install</command>, from a console or non-Qt6 based
window manager. It overwrites <application>Qt6</application>
libraries that should not be in use during the install process.
</para>
</warning>
<caution>
<para>
If you did not install some of the recommended dependencies, examine
<command>./configure --help</command> output to check how to disable
them or use internal versions bundled in the source tarball.
</para>
</caution>
<note>
<para>
The build time and space required for the full
<application>Qt6</application> is quite long. The instructions below
do not build the tutorials and examples. Removing the
<parameter>-nomake</parameter> line will create additional resources..
</para>
</note>
<note>
<para>
The BLFS editors do not recommend installing <application>Qt6</application>
into the /usr hierarchy because it becomes difficult to find
components and to update to a new version. There are also some programs
that conflict with those installed by Qt5.
<!--If you do want to install
<application>Qt5</application> in /usr, the directories need to
be specified explicitly. In this case, set QT5PREFIX=/usr and add
the following to the configure arguments below:
</para>
<screen role="nodump"><userinput> -archdatadir /usr/lib/qt6 \
-bindir /usr/bin \
-plugindir /usr/lib/qt6/plugins \
-importdir /usr/lib/qt6/imports \
-headerdir /usr/include/qt6 \
-datadir /usr/share/qt6 \
-docdir /usr/share/doc/qt6 \
-translationdir /usr/share/qt6/translations \
-examplesdir /usr/share/doc/qt6/examples</userinput></screen>-->
</para>
</note>
<para>
Install <application>Qt6</application> by running the following commands:
</para>
<screen revision="sysv"><userinput>./configure -prefix $QT6PREFIX \
-sysconfdir /etc/xdg \
-dbus-linked \
-openssl-linked \
-system-sqlite \
-nomake examples \
-no-rpath \
-syslog \
-skip qt3d \
-skip qtquick3dphysics \
-skip qtwebengine \
-Wno-dev &amp;&amp;
ninja</userinput></screen>
<screen revision="systemd"><userinput>./configure -prefix $QT6PREFIX \
-sysconfdir /etc/xdg \
-dbus-linked \
-openssl-linked \
-system-sqlite \
-nomake examples \
-no-rpath \
-journald \
-skip qt3d \
-skip qtquick3dphysics \
-skip qtwebengine \
-Wno-dev &amp;&amp;
ninja</userinput></screen>
<para>
This package does not come with a test suite.
</para>
<para>
Now, as the &root; user:
</para>
<screen role="root"><userinput>ninja install</userinput></screen>
<!-- Not sure this is correct for Qt6
EDITORS NOTE: This package uses INSTALL_ROOT= instead of DESTDIR= for
installing in a temporary directory. -->
<para>
Remove references to the build directory from installed library
dependency (prl) <!--and profile include (pri)--> files by running the following
command as the &root; user:
</para>
<screen role="root"><userinput>find $QT6PREFIX/ -name \*.prl \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
<para>
Install images and create the menu entries for installed applications.
<!--The <envar>QT6BINDIR</envar> variable is used here to point to the
directory for the executable programs. If you have changed the bindir
above, <envar>QT5BINDIR</envar> will need to be adjusted below. Be sure
that the <envar>QT5BINDIR</envar> variable is defined in root's
environment and as the &root; user:-->
Again as the &root; user:
</para>
<screen role="root"><userinput>pushd qttools/src &amp;&amp;
install -v -Dm644 assistant/assistant/images/assistant-128.png \
/usr/share/pixmaps/assistant-qt6.png &amp;&amp;
install -v -Dm644 designer/src/designer/images/designer.png \
/usr/share/pixmaps/designer-qt6.png &amp;&amp;
install -v -Dm644 linguist/linguist/images/icons/linguist-128-32.png \
/usr/share/pixmaps/linguist-qt6.png &amp;&amp;
install -v -Dm644 qdbus/qdbusviewer/images/qdbusviewer-128.png \
/usr/share/pixmaps/qdbusviewer-qt6.png &amp;&amp;
popd &amp;&amp;
cat &gt; /usr/share/applications/assistant-qt6.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt6 Assistant
Comment=Shows Qt6 documentation and examples
Exec=$QT6PREFIX/bin/assistant
Icon=assistant-qt6.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;</literal>
EOF
cat &gt; /usr/share/applications/designer-qt6.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt6 Designer
GenericName=Interface Designer
Comment=Design GUIs for Qt6 applications
Exec=$QT6PREFIX/bin/designer
Icon=designer-qt6.png
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;</literal>
EOF
cat &gt; /usr/share/applications/linguist-qt6.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt6 Linguist
Comment=Add translations to Qt6 applications
Exec=$QT6PREFIX/bin/linguist
Icon=linguist-qt6.png
MimeType=text/vnd.trolltech.linguist;application/x-linguist;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;</literal>
EOF
cat &gt; /usr/share/applications/qdbusviewer-qt6.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt6 QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=$QT6PREFIX/bin/qdbusviewer
Icon=qdbusviewer-qt6.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;</literal>
EOF</userinput></screen>
<!--
<para>
Some packages such as <xref linkend='vlc'/> look for certain
executables with a -qt6 suffix. Run the following command as the
<systemitem class="username">root</systemitem> user
to create the necessary symlinks:
</para>
<screen role="root"><userinput>for file in moc uic rcc qmake lconvert lrelease lupdate; do
ln -sfvn $QT5BINDIR/$file /usr/bin/$file-qt6
done</userinput></screen>
-->
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<!--
<para>
<command>sed ...</command>: Allows using
<application>Python 3</application> instead of <application>Python
2</application>. This command destroys the build for QtWebEngine, so do
not use it if you remove the <parameter>-skip qtwebengine</parameter>
switch.
</para>
Ignored
<para>
<parameter>-confirm-license</parameter>: Accept license
without prompting user during configuration.
</para>
Ignored
<para>
<parameter>-opensource</parameter>: Install the opensource
version of <application>Qt</application>.
</para>
-->
<para>
<parameter>-nomake examples</parameter>: This switch
disables building of the example programs included
in the source tarball. Remove it if you want to build
them.
</para>
<para>
<parameter>-skip qt3d</parameter>: This switch
disables building qt3d support. There is a problem
building these files without an external library
and no packages in BLFS use qt3d.
</para>
<!-- Auto: not for me [pierre 2023/11/20]-->
<para>
<parameter>-system-sqlite</parameter>: This switch enables use
of the system version of <application>SQLite</application>.
</para>
<para>
<parameter>-dbus-linked</parameter>
<parameter>-openssl-linked</parameter>: These
switches enable explicit linking of the
<application>D-Bus</application> and
<application>OpenSSL</application> libraries into
<application>Qt6</application> libraries instead of
<command>dlopen()</command>-ing them.
</para>
<para revision="sysv">
<parameter>-syslog</parameter>: This switch allows to send Qt messages
to the <command>syslog</command> logging system.
</para>
<para revision="systemd">
<parameter>-journald</parameter>: This switch allows to send Qt messages
to the <command>journald</command> logging system.
</para>
<para>
<parameter>-skip qtwebengine</parameter>: This switch disables building
the QtWebEngine. The BLFS editors have chosen to build <xref
linkend="qtwebengine"/> separately.
</para>
<para>
<parameter>-skip qtquick3dphysics</parameter>: This switch disables
building the Qt Quick 3D Physics submodule. On 32-bit systems, this will
cause the build process to fail with an inlining error in Qt6's bundled
copy of the PhysX SDK.
</para>
<!-- Auto
<para>
<parameter>-system-harfbuzz</parameter>: This switch enables use
of the system version of <application>Harfbuzz</application>.
</para>
-->
</sect2>
<sect2 role="configuration">
<title>Configuring Qt6</title>
<sect3 id="qt6-config">
<title>Configuration Information</title>
<para>
If <xref linkend="sudo"/> is installed, QT6DIR should be available to
the super user as well. Execute the following commands as the
&root; user:
</para>
<screen role="root"><userinput>cat &gt; /etc/sudoers.d/qt &lt;&lt; "EOF"
<literal>Defaults env_keep += QT6DIR</literal>
EOF</userinput></screen>
<!--
<bridgehead renderas="sect4">If you installed Qt5 in /usr</bridgehead>
<para>
If you installed <application>Qt5</application> in
<filename class="directory">/usr</filename>, create an
environment variable needed by certain packages.
As the <systemitem class="username">root</systemitem> user:
</para>
<screen role="nodump"><userinput>cat &gt; /etc/profile.d/qt6.sh &lt;&lt; "EOF"
<literal># Begin /etc/profile.d/qt6.sh
QT5DIR=/usr
export QT5DIR
# End /etc/profile.d/qt6.sh</literal>
EOF</userinput></screen>
<bridgehead renderas="sect4">If you did not install Qt5 in /usr</bridgehead>
i-->
<para>
You now need to update the
following configuration files so that <application>Qt6</application> is
correctly found by other packages and system processes.
</para>
<para>
As the &root; user, update
the <filename>/etc/ld.so.conf</filename> file and the dynamic linker's
run-time cache file:
</para>
<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
<literal># Begin Qt addition
/opt/qt6/lib
# End Qt addition</literal>
EOF
ldconfig</userinput></screen>
<indexterm zone="qt6 qt6-config">
<primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>
</indexterm>
<para>
As the &root; user, create
the <filename>/etc/profile.d/qt6.sh</filename> file:
</para>
<screen role="root"><userinput>cat &gt; /etc/profile.d/qt6.sh &lt;&lt; "EOF"
<literal># Begin /etc/profile.d/qt6.sh
QT6DIR=/opt/qt6
pathappend $QT6DIR/bin PATH
pathappend $QT6DIR/lib/pkgconfig PKG_CONFIG_PATH
export QT6DIR
# End /etc/profile.d/qt6.sh</literal>
EOF</userinput></screen>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
androiddeployqt (hard link to androiddeployqt6),
androiddeployqt6,
androidtestrunner,
assistant,
balsam,
balsamui,
canbusutil,
cooker,
designer,
instancer,
lconvert,
linguist,
lrelease,
lupdate,
materialeditor,
meshdebug,
pixeltool,
qdbus,
qdbuscpp2xml,
qdbusviewer,
qdbusxml2cpp,
qdistancefieldgenerator,
qdoc,
qmake (hard link to qmake6),
qmake6,
qml,
qmldom,
qmleasing,
qmlformat,
qmllint,
qmlls,
qmlplugindump,
qmlpreview,
qmlprofiler,
qmlscene,
qmltc,
qmltestrunner,
qmltime,
qqem,
qsb,
qtdiag (hard link to qtdiag6),
qtdiag6,
qtpaths (hard link to qtpaths6),
qtpaths6,
qtplugininfo,
qt-cmake,
qt-cmake-create,
qt-configure-module,
shadergen, and
shapegen
</seg>
<seg>
libQt6Bluetooth.so,
libQt6Bodymovin.so,
libQt6BundledEmbree.a,
libQt6BundledPhysX.a,
libQt6BundledResonanceAudio.a,
libQt6Charts.so,
libQt6ChartsQml.so,
libQt6Coap.so,
libQt6Concurrent.so,
libQt6Core.so,
libQt6Core5Compat.so,
libQt6DBus.so,
libQt6DataVisualization.so,
libQt6DataVisualizationQml.so,
libQt6DeclarativeOpcua.so,
libQt6Designer.so,
libQt6DesignerComponents.so,
libQt6DeviceDiscoverySupport.a,
libQt6EglFSDeviceIntegration.so,
libQt6EglFsKmsGbmSupport.so,
libQt6EglFsKmsSupport.so,
libQt6ExampleIcons.a,
libQt6FbSupport.a,
libQt6Graphs.so,
libQt6Grpc.so,
libQt6Gui.so,
libQt6Help.so,
libQt6HttpServer.so,
libQt6InputSupport.a,
libQt6JsonRpc.so,
libQt6KmsSupport.a,
libQt6LabsAnimation.so,
libQt6LabsFolderListModel.so,
libQt6LabsQmlModels.so,
libQt6LabsSettings.so,
libQt6LabsSharedImage.so,
libQt6LabsWavefrontMesh.so,
libQt6LanguageServer.so,
libQt6Location.so,
libQt6Mqtt.so,
libQt6Multimedia.so,
libQt6MultimediaQuick.so,
libQt6MultimediaWidgets.so,
libQt6Network.so,
libQt6NetworkAuth.so,
libQt6Nfc.so,
libQt6OpcUa.so,
libQt6OpenGL.so,
libQt6OpenGLWidgets.so,
libQt6PacketProtocol.a,
libQt6Positioning.so,
libQt6PositioningQuick.so,
libQt6PrintSupport.so,
libQt6Protobuf.so,
libQt6Qml.so,
libQt6QmlCompiler.so,
libQt6QmlCore.so,
libQt6QmlDebug.a,
libQt6QmlDom.a,
libQt6QmlLocalStorage.so,
libQt6QmlLS.a,
libQt6QmlModels.so,
libQt6QmlToolingSettings.a,
libQt6QmlTypeRegistrar.a,
libQt6QmlWorkerScript.so,
libQt6QmlXmlListModel.so,
libQt6Quick.so,
libQt6Quick3D.so,
libQt6Quick3DAssetImport.so,
libQt6Quick3DAssetUtils.so,
libQt6Quick3DEffects.so,
libQt6Quick3DGlslParser.so,
libQt6Quick3DHelpers.so,
libQt6Quick3DHelpersImpl.so,
libQt6Quick3DIblBaker.so,
libQt6Quick3DParticleEffects.so,
libQt6Quick3DParticles.so,
libQt6Quick3DPhysics.so,
libQt6Quick3DPhysicsHelpers.so,
libQt6Quick3DRuntimeRender.so,
libQt6Quick3DSpatialAudio.so,
libQt6Quick3DUtils.so,
libQt6QuickControls2.so,
libQt6QuickControls2Impl.so,
libQt6QuickControlsTestUtils.a,
libQt6QuickDialogs2.so,
libQt6QuickDialogs2QuickImpl.so,
libQt6QuickDialogs2Utils.so,
libQt6QuickEffects.so,
libQt6QuickLayouts.so,
libQt6QuickParticles.so,
libQt6QuickShapes.so,
libQt6QuickTemplates2.so,
libQt6QuickTest.so,
libQt6QuickTestUtils.a,
libQt6QuickTimeline.so,
libQt6QuickWidgets.so,
libQt6RemoteObjects.so,
libQt6RemoteObjectsQml.so,
libQt6Scxml.so,
libQt6ScxmlQml.so,
libQt6Sensors.so,
libQt6SensorsQuick.so,
libQt6SerialBus.so,
libQt6SerialPort.so,
libQt6ShaderTools.so,
libQt6SpatialAudio.so,
libQt6Sql.so,
libQt6StateMachine.so,
libQt6StateMachineQml.so,
libQt6Svg.so,
libQt6SvgWidgets.so,
libQt6TextToSpeech.so,
libQt6UiTools.so,
libQt6VirtualKeyboard.so,
libQt6WaylandClient.so,
libQt6WaylandCompositor.so,
libQt6WaylandEglClientHwIntegration.so,
libQt6WaylandEglCompositorHwIntegration.so,
libQt6WebChannel.so,
libQt6WebChannelQuick.so,
libQt6WebSockets.so,
libQt6WebView.so,
libQt6WebViewQuick.so,
libQt6Widgets.so,
libQt6WlShellIntegration.so,
libQt6XcbQpa.so, and
libQt6Xml.so
</seg>
<seg>
<!--/usr/include/qt6,
/usr/lib/qt6,
/usr/share/doc/qt6, and
/usr/share/qt6
OR-->
/opt/qt6 and
/opt/qt-&qt6-version;
</seg>
</seglistitem>
</segmentedlist>
<variablelist id='qt6-descriptions' xreflabel="Qt6 Short Descriptions">
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="assistant-qt6">
<term><command>assistant</command></term>
<listitem>
<para>
is a tool for presenting on-line documentation
</para>
<indexterm zone="qt6 assistant-qt6">
<primary sortas="b-assistant-qt6">assistant</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="balsam-qt6">
<term><command>balsam</command></term>
<listitem>
<para>
is a tool to convert 3D scenes from various creation tools
to QML format, for use by the new QtQuick 3D library
</para>
<indexterm zone="qt6 balsam-qt6">
<primary sortas="b-balsam-qt6">balsam</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="canbusutil-qt6">
<term><command>canbustil</command></term>
<listitem>
<para>
is a tool to deal with arbitrary CAN bus frames.
A Controller Area Network (CAN) is a vehicle bus standard designed
to allow microcontrollers and devices to communicate with each other
in applications without a host computer
</para>
<indexterm zone="qt6 canbusutil-qt6">
<primary sortas="b-canbusutil-qt6">canbusutil</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="designer-qt6">
<term><command>designer</command></term>
<listitem>
<para>
is a full-fledged GUI builder. It includes
powerful features such as preview mode, automatic widget
layout, support for custom widgets, and an advanced
property editor
</para>
<indexterm zone="qt6 designer-qt6">
<primary sortas="b-designer-qt6">designer</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lconvert-qt6">
<term><command>lconvert</command></term>
<listitem>
<para>
is part of Qt6's Linguist tool chain. It can be used as a
standalone tool to convert and filter translation data files
</para>
<indexterm zone="qt6 lconvert-qt6">
<primary sortas="b-lconvert-qt6">lconvert</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="linguist-qt6">
<term><command>linguist</command></term>
<listitem>
<para>
provides support for translating applications into
local languages
</para>
<indexterm zone="qt6 linguist-qt6">
<primary sortas="b-linguist-qt6">linguist</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lrelease-qt6">
<term><command>lrelease</command></term>
<listitem>
<para>
is a simple command line tool. It reads XML-based translation
file in TS format and produces message files used by the
application
</para>
<indexterm zone="qt6 lrelease-qt6">
<primary sortas="b-lrelease-qt6">lrelease</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lupdate-qt6">
<term><command>lupdate</command></term>
<listitem>
<para>
finds the translatable
strings in the specified source, header and Qt Designer
interface files, and stores the extracted messages in
translation files to be processed by lrelease
</para>
<indexterm zone="qt6 lupdate-qt6">
<primary sortas="b-lupdate-qt6">lupdate</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="meshdebug-qt6">
<term><command>meshdebug</command></term>
<listitem>
<para>
displays information about qtquick-3d mesh files
</para>
<indexterm zone="qt6 meshdebug-qt6">
<primary sortas="b-meshdebug-qt6">meshdebug</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pixeltool-qt6">
<term><command>pixeltool</command></term>
<listitem>
<para>
is a desktop magnifier and as you move your mouse around
the screen it will show the magnified contents in its window
</para>
<indexterm zone="qt6 pixeltool-qt6">
<primary sortas="b-pixeltool-qt6">pixeltool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qdbus-qt6">
<term><command>qdbus</command></term>
<listitem>
<para>
lists available services, object paths, methods, signals, and
properties of objects on a bus
</para>
<indexterm zone="qt6 qdbus-qt6">
<primary sortas="b-qdbus-qt6">qdbus</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qdbuscpp2xml-qt6">
<term><command>qdbuscpp2xml</command></term>
<listitem>
<para>
takes a C++ source file and generates a D-Bus XML definition
of the interface
</para>
<indexterm zone="qt6 qdbuscpp2xml-qt6">
<primary sortas="b-qdbuscpp2xml-qt6">qdbuscpp2xml</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qdbusviewer-qt6">
<term><command>qdbusviewer</command></term>
<listitem>
<para>
is a graphical D-Bus browser
</para>
<indexterm zone="qt6 qdbusviewer-qt6">
<primary sortas="b-qdbusviewer-qt6">qdbusviewer</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qdbusxml2cpp-qt6">
<term><command>qdbusxml2cpp</command></term>
<listitem>
<para>
is a tool that can be used to parse interface descriptions
and produce static code representing those interfaces,
</para>
<indexterm zone="qt6 qdbusxml2cpp-qt6">
<primary sortas="b-qdbusxml2cpp-qt6">qdbusxml2cpp</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qdistancefieldgenerator-qt6">
<term><command>qdistancefieldgenerator</command></term>
<listitem>
<para>
allows a font cache to be pregenerated for Text.QtRendering to speed
up an application's startup if the user interface has a lot of text,
or multiple fonts, or a large amount of distinct characters, e.g. in
CJK writing systems
</para>
<indexterm zone="qt6 qdistancefieldgenerator-qt6">
<primary sortas="b-qdistancefieldgenerator-qt6">qdistancefieldgenerator</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qdoc-qt6">
<term><command>qdoc</command></term>
<listitem>
<para>
is a tool used by <application>Qt</application> Developers to
generate documentation for software projects
</para>
<indexterm zone="qt6 qdoc-qt6">
<primary sortas="b-qdoc-qt6">qdoc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmake-qt6">
<term><command>qmake</command></term>
<listitem>
<para>
uses information stored in project files to
determine what should go in the makefiles it
generates
</para>
<indexterm zone="qt6 qmake-qt6">
<primary sortas="b-qmake-qt6">qmake</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qml-qt6">
<term><command>qml</command></term>
<listitem>
<para>
executes a QML file
</para>
<indexterm zone="qt6 qml-qt6">
<primary sortas="b-qml-qt6">qml</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmleasing-qt6">
<term><command>qmleasing</command></term>
<listitem>
<para>
is a tool used to define the easing curves using an
interactive curve editor
</para>
<indexterm zone="qt6 qmleasing-qt6">
<primary sortas="b-qmleasing-qt6">qmleasing</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmlformat-qt6">
<term><command>qmlformat</command></term>
<listitem>
<para>
formats QML files according to the QML coding conventions
</para>
<indexterm zone="qt6 qmlformat-qt6">
<primary sortas="b-qmlformat-qt6">qmlformat</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmllint-qt6">
<term><command>qmllint</command></term>
<listitem>
<para>
is a syntax checker for QML files
</para>
<indexterm zone="qt6 qmllint-qt6">
<primary sortas="b-qmllint-qt6">qmllint</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmlplugindump-qt6">
<term><command>qmlplugindump</command></term>
<listitem>
<para>
is a tool to create a qmltypes file
</para>
<indexterm zone="qt6 qmlplugindump-qt6">
<primary sortas="b-qmlplugindump-qt6">qmlplugindump</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmlpreview-qt6">
<term><command>qmlpreview</command></term>
<listitem>
<para>
is a tool used to analyze QML applications
</para>
<indexterm zone="qt6 qmlpreview-qt6">
<primary sortas="b-qmlpreviewr-qt6">qmlpreview</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmlprofiler-qt6">
<term><command>qmlprofiler</command></term>
<listitem>
<para>
is a tool which watches QML and JavaScript files on disk and
updates the application live with any changes
</para>
<indexterm zone="qt6 qmlprofiler-qt6">
<primary sortas="b-qmlprofiler-qt6">qmlprofiler</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmlscene-qt6">
<term><command>qmlscene</command></term>
<listitem>
<para>
is a utility that loads and displays QML documents even before
the application is complete
</para>
<indexterm zone="qt6 qmlscene-qt6">
<primary sortas="b-qmlscene-qt6">qmlscene</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmltestrunner-qt6">
<term><command>qmltestrunner</command></term>
<listitem>
<para>
is a tool used to make tests
</para>
<indexterm zone="qt6 qmltestrunner-qt6">
<primary sortas="b-qmltestrunner-qt6">qmltestrunner</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qtdiag-qt6">
<term><command>qtdiag</command></term>
<listitem>
<para>
is a tool for reporting diagnostic information about Qt and its
environment
</para>
<indexterm zone="qt6 qtdiag-qt6">
<primary sortas="b-qtdiag-qt6">qtdiag</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qtpaths-qt6">
<term><command>qtpaths</command></term>
<listitem>
<para>
is a tool to query Qt path information
</para>
<indexterm zone="qt6 qtpaths-qt6">
<primary sortas="b-qtpaths-qt6">qtpaths</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qtplugininfo-qt6">
<term><command>qtplugininfo</command></term>
<listitem>
<para>
dumps meta-data about Qt plugins in JSON format
</para>
<indexterm zone="qt6 qtplugininfo-qt6">
<primary sortas="b-qtplugininfo-qt6">qtplugininfo</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>