glfs/x/lib/qt5.xml

611 lines
20 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!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 qt5-major "5.1">
<!ENTITY qt5-url "http://download.qt-project.org/official_releases/qt/&qt5-major;/&qt5-version;/single">
<!ENTITY qt5-download-http "&qt5-url;/qt-everywhere-opensource-src-&qt5-version;.tar.xz">
<!ENTITY qt5-download-ftp " ">
<!ENTITY qt5-md5sum "44a507beebef73eb364b5a2ec7bbe090">
<!ENTITY qt5-size "169 MB">
<!ENTITY qt5-buildsize "2.5 GB">
<!ENTITY qt5-time "50 SBU">
]>
<sect1 id="qt5" xreflabel="Qt-&qt5-version;">
<?dbhtml filename="qt5.html" ?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>Qt-&qt5-version;</title>
<indexterm zone="qt5">
<primary sortas="a-Qt">Qt</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Qt</title>
<para>
<application>Qt</application> is a cross-platform application
framework that is widely used for developing application software
with a graphical user interface (GUI) (in which cases Qt is classified
as a widget toolkit), and also used for developing non-GUI programs such
as command-line tools and consoles for servers. One of the major users
of <application>Qt</application> is <application>KDE</application>.
</para>
&lfs73_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&qt5-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&qt5-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &qt5-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &qt5-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &qt5-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &qt5-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Qt Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="alsa-lib"/>,
<xref linkend="mesalib"/>,
<xref linkend="qtchooser"/>,
<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">Recommended</bridgehead>
<para role="recommended">
<xref linkend="cacerts"/>,
<xref linkend="cups"/>,
<xref linkend="dbus"/>,
<xref linkend="glib2"/>,
<xref linkend="gst-plugins-base"/>,
<xref linkend="icu"/>,
<xref linkend="libjpeg"/>,
<xref linkend="libmng"/>,
<xref linkend="libpng"/>,
<xref linkend="libtiff"/>,
<xref linkend="openssl"/>,
<xref linkend="pcre"/>, and
<xref linkend="sqlite"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="gst10-plugins-base"/> (QtWebKit HTML5 Video Support),
<xref linkend="gtk2"/> (GTK+ Theme Support),
<ulink url="http://xkbcommon.org/">libxkbcommon</ulink>,
<xref linkend="mysql"/>,
<xref linkend="postgresql"/>,
<xref linkend="pulseaudio"/>, and
<xref linkend="unixodbc"/>
</para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/qt5"/>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of Qt</title>
<warning>
<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>
</warning>
<para>
Install <application>Qt</application> by running the
following commands:
</para>
<screen><userinput>sed -i "s:Context\* context}:&amp;\n%lex-param {YYLEX_PARAM}:" \
qtwebkit/Source/ThirdParty/ANGLE/src/compiler/glslang.y &amp;&amp;
sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
qtimageformats/config.tests/libmng/libmng.cpp &amp;&amp;
./configure -prefix /usr \
-sysconfdir /etc/xdg \
-bindir /usr/lib/qt5/bin \
-headerdir /usr/include/qt5 \
-archdatadir /usr/lib/qt5 \
-datadir /usr/share/qt5 \
-docdir /usr/share/doc/qt5 \
-translationdir /usr/share/qt5/translations \
-examplesdir /usr/share/doc/qt5/examples \
-confirm-license \
-opensource \
-dbus-linked \
-openssl-linked \
-system-sqlite \
-no-nis \
-nomake examples \
-opengl es2 \
-optimized-qmake &amp;&amp;
make</userinput></screen>
<para>
Remove references to the build directory from pkg-confg
files by running the following command:
</para>
<screen><userinput>find . -name "*.pc" -exec perl -pi -e "s, -L$PWD/?\S+,,g" {} \;</userinput></screen>
<para>
This package does not come with a test suite.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install &amp;&amp;
install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
/usr/share/pixmaps/assistant-qt5.png &amp;&amp;
install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
/usr/share/pixmaps/designer-qt5.png &amp;&amp;
install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
/usr/share/pixmaps/linguist-qt5.png &amp;&amp;
install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
/usr/share/pixmaps/qdbusviewer-qt5.png</userinput></screen>
<para>
Remove references to the build directory from installed files by
running the following commands as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>sed -i -e "s:$PWD/qtbase:/usr/lib/qt5:g" \
/usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap.pri &amp;&amp;
find /usr/lib/*.prl -exec sed -i -e \
'/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;</userinput></screen>
<para>
Symlink the <application>Qt</application> executables into
<filename class="directory">/usr/bin</filename> by running the
following commands as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>for file in /usr/lib/qt5/bin/*
do
ln -sfv ../lib/qt5/bin/$(basename $file) /usr/bin/$(basename $file)-qt5
done</userinput></screen>
</sect2>
<sect2 role="installation">
<title>Alternate Qt Installation Instructions</title>
<para>
This section provides an alternate way to install Qt by installing
almost all of the files in the <filename class="directory">/opt</filename>
directory. This allows management of all Qt related files in one unit.
For instance, a new version of Qt5 can be installed without over-writing
the existing installation and entire Qt5 instances can be easily removed.
However, it has the disadvantage of needing some extra configuration.
</para>
<screen><userinput>patch -Np1 -i ../qt-&qt5-version;-bison_fixes-1.patch &amp;&amp;
QT5DIR=/opt/qt-&qt5-version;
./configure -prefix $QT5DIR \
-sysconfdir /etc/xdg \
-confirm-license \
-opensource \
-dbus-linked \
-openssl-linked \
-system-sqlite \
-plugin-sql-sqlite \
-no-nis \
-nomake examples \
-opengl es2 \
-optimized-qmake &amp;&amp;
make</userinput></screen>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install &amp;&amp;
install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
/usr/share/pixmaps/assistant-qt5.png &amp;&amp;
install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
/usr/share/pixmaps/designer-qt5.png &amp;&amp;
install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
/usr/share/pixmaps/linguist-qt5.png &amp;&amp;
install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
/usr/share/pixmaps/qdbusviewer-qt5.png</userinput></screen>
<para>
Remove references to the build directory from installed files by
running the following commands as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>find $QT5DIR -name qt_lib_bootstrap.pri \
-exec sed -i -e "s:$PWD/qtbase:/$QT5DIR/lib/:g" {} \; &amp;&amp;
find $QT5DIR -name \*.prl \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
<para>
Symlink the <application>Qt</application> executables into
<filename class="directory">/usr/bin</filename> by running the
following commands as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>ln -svf $QT5DIR /opt/qt5 &amp;&amp;
for file in /opt/qt5/bin/*; do
ln -sfv $file /usr/bin/$(basename $file)-qt5
done</userinput></screen>
<para>
At this point is is useful to add some configuration items as
the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>echo /opt/qt5 &gt;&gt; /etc/ld.so.conf &amp;&amp;
ldconfig &amp;&amp;
cat &gt;&gt; /etc/profile.d/qt5.sh &lt;&lt; "EOF"
pathappend /opt/qt5/lib/pkgconfig PKG_CONFIG_PATH
EOF</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<command>sed -i "..." ...</command>: First command fixes
building with <application>Bison</application> 3.0 and
second command fixes detection of
<application>libmng</application> 2.0.
</para>
<para>
<parameter>-confirm-license</parameter>: Accept license
without prompting user during configuration.
</para>
<para>
<parameter>-opensource</parameter>: Install the opensource
version of <application>Qt</application>.
</para>
<para>
<parameter>-release</parameter>: This switch disables
building with debugging symbols.
</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>-system-sqlite</parameter>: This switch enables use
of the system version of <application>SQLite</application>.
</para>
<para>
<parameter>-no-nis</parameter>: This switch disables support
for Network Information Service (NIS) which has been
removed from recent versions of <application>Glibc</application>.
</para>
<para>
<parameter>-dbus-linkend -openssl-linkend</parameter>: These
switches enable explicit linking of the
<application>D-Bus</application> and
<application>OpenSSL</application> libraries into
<application>Qt</application> libraries instead of
<command>dlopen()</command>-ing them.
</para>
<para>
<parameter>-opengl es2</parameter>: This switch enables OpenGL ES2
support in <application>Qt</application>.
</para>
<para>
<parameter>-optimized-qmake</parameter>: This switch enables
building of the optimized <command>qmake</command> program.
</para>
</sect2>
<sect2 role="configuration">
<title>Configuring Qt</title>
<sect3 id="qt5-config">
<title>Configuration Information</title>
<para>
Create the menu entries for installed applications.
As the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>install -dm755 /usr/share/applications
cat &gt; /usr/share/applications/assistant-qt5.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Name=Qt5 Assistant
Comment=Shows Qt5 documentation and examples
Exec=assistant-qt5
Icon=assistant-qt5
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;</literal>
EOF
cat &gt; /usr/share/applications/designer-qt5.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Name=Qt5 Designer
GenericName=Interface Designer
Comment=Design GUIs for Qt5 applications
Exec=designer-qt5
Icon=designer-qt5
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;</literal>
EOF
cat &gt; /usr/share/applications/linguist-qt5.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Name=Qt5 Linguist
Comment=Add translations to Qt5 applications
Exec=linguist-qt5
Icon=linguist-qt5
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-qt5.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Name=Qt5 QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=qdbusviewer-qt5
Icon=qdbusviewer-qt5
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;</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>
assistant-qt5, designer-qt5, lconvert-qt5, linguist-qt5, lrelease-qt5,
lupdate-qt5, moc-qt5, pixeltool-qt5, qcollectiongenerator-qt5,
qdbuscpp2xml-qt5, qdbus-qt5, qdbusviewer-qt5, qdbusxml2cpp-qt5, qdoc-qt5,
qhelpconverter-qt5, qhelpgenerator-qt5, qmake-qt5, qml1plugindump-qt5,
qmlbundle-qt5, qmlmin-qt5, qmlplugindump-qt5, qmlprofiler-qt5, qmlscene-qt5,
qmltestrunner-qt5, qmlviewer-qt5, rcc-qt5, syncqt.pl-qt5, uic-qt5,
xmlpatterns-qt5 and xmlpatternsvalidator-qt5
</seg>
<seg>
libqgsttools_p.so, libQt5Bootstrap.a, libQt5CLucene.so, libQt5Concurrent.so,
libQt5Core.so, libQt5DBus.so, libQt5Declarative.so, libQt5DesignerComponents.so,
libQt5Designer.so, libQt5Gui.so, libQt5Help.so, libQt5MultimediaQuick_p.so,
libQt5Multimedia.so, libQt5MultimediaWidgets.so, libQt5Network.so,
libQt5OpenGLExtensions.a, libQt5OpenGL.so, libQt5PlatformSupport.a,
libQt5PrintSupport.so, libQt5QmlDevTools.a, libQt5Qml.so, libQt5QuickParticles.so,
libQt5Quick.so, libQt5QuickTest.so, libQt5Script.so, libQt5ScriptTools.so,
libQt5Sensors.so, libQt5SerialPort.so, libQt5Sql.so, libQt5Svg.so, libQt5Test.so,
libQt5UiTools.a, libQt5V8.so, libQt5WebKit.so, libQt5WebKitWidgets.so,
libQt5Widgets.so, libQt5X11Extras.so, libQt5XmlPatterns.so and libQt5Xml.so
</seg>
<seg>
/usr/include/qt5,
/usr/lib/qt5,
/usr/share/doc/qt5 and
/usr/share/qt5
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="assistant-qt5">
<term><command>assistant-qt5</command></term>
<listitem>
<para>
is a tool for presenting on-line documentation.
</para>
<indexterm zone="qt5 assistant-qt5">
<primary sortas="b-assistant-qt5">assistant-qt5</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="designer-qt5">
<term><command>designer-qt5</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="qt5 designer-qt5">
<primary sortas="b-designer-qt5">designer-qt5</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="linguist-qt5">
<term><command>linguist-qt5</command></term>
<listitem>
<para>
provides support for translating applications into
local languages.
</para>
<indexterm zone="qt5 linguist-qt5">
<primary sortas="b-linguist-qt5">linguist-qt5</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lrelease-qt5">
<term><command>lrelease-qt5</command></term>
<listitem>
<para>
is a simple command line tool. It reads a Qt project
file and produces message files used by the application.
</para>
<indexterm zone="qt5 lrelease-qt5">
<primary sortas="b-lrelease-qt5">lrelease-qt5</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lupdate-qt5">
<term><command>lupdate-qt5</command></term>
<listitem>
<para>
reads a Qt project file, finds the translatable
strings in the specified source, header and Qt Designer
interface files, and produces or updates the translation
files listed in the project file.
</para>
<indexterm zone="qt5 lupdate-qt5">
<primary sortas="b-lupdate-qt5">lupdate-qt5</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="moc-qt5">
<term><command>moc-qt5</command></term>
<listitem>
<para>
generates Qt meta object support code.
</para>
<indexterm zone="qt5 moc-qt5">
<primary sortas="b-moc-qt5">moc-qt5</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pixeltool-qt5">
<term><command>pixeltool-qt5</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="qt5 pixeltool-qt5">
<primary sortas="b-pixeltool-qt5">pixeltool-qt5</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmake-qt5">
<term><command>qmake-qt5</command></term>
<listitem>
<para>
uses information stored in project files to
determine what should go in the makefiles it
generates.
</para>
<indexterm zone="qt5 qmake-qt5">
<primary sortas="b-qmake-qt5">qmake-qt5</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rcc-qt5">
<term><command>rcc-qt5</command></term>
<listitem>
<para>
is a resource compiler used in conjunction with designer.
</para>
<indexterm zone="qt5 rcc-qt5">
<primary sortas="b-rcc-qt5">rcc-qt5</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="uic-qt5">
<term><command>uic-qt5</command></term>
<listitem>
<para>
is a Qt user interface compiler.
</para>
<indexterm zone="qt5 uic-qt5">
<primary sortas="b-uic-qt5">uic-qt5</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>