Rewrite Qt pages

Add corrections for some paths (e.g. man pages)
Tags


git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@12783 af4574ff-66df-0310-9fd7-8a98e5e911e0
This commit is contained in:
Bruce Dubbs 2014-02-25 19:00:30 +00:00
parent 014d750fd0
commit ec7940be5b
15 changed files with 458 additions and 499 deletions

View File

@ -1,12 +1,12 @@
<!-- $LastChangedBy$ $Date$ -->
<!ENTITY day "23"> <!-- Always 2 digits -->
<!ENTITY day "25"> <!-- Always 2 digits -->
<!ENTITY month "02"> <!-- Always 2 digits -->
<!ENTITY year "2014">
<!ENTITY copyrightdate "2001-&year;">
<!ENTITY copyholder "The BLFS Development Team">
<!ENTITY version "&year;-&month;-&day;">
<!ENTITY releasedate "February 23rd, &year;">
<!ENTITY releasedate "February 25th, &year;">
<!ENTITY pubdate "&year;-&month;-&day;"> <!-- metadata req. by TLDP -->
<!ENTITY blfs-version "svn"> <!-- svn|[release #] -->
<!ENTITY lfs-version "development"> <!-- version|testing|unstable|development] -->

View File

@ -33,7 +33,6 @@ $Date$
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="iso-codes.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="lsof.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pinentry.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="qtchooser.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="rarian.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="rep-gtk.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="screen.xml"/>

View File

@ -98,15 +98,24 @@
commands:
</para>
<screen><userinput>./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/guile-&guile-version; &amp;&amp;
<screen><userinput>./configure --prefix=/usr --disable-static &amp;&amp;
make &amp;&amp;
make html &amp;&amp;
makeinfo --plaintext -o doc/r5rs/r5rs.txt doc/r5rs/r5rs.texi &amp;&amp;
makeinfo --plaintext -o doc/ref/guile.txt doc/ref/guile.texi</userinput></screen>
<para>
If you have <xref linkend="texlive"/> installed and wish to build alternate
formats (PDF and postscript) of the documentation, issue the following
commands:
</para>
<screen><userinput>for DIRNAME in r5rs ref; do
make -k -C doc/${DIRNAME} pdf ps
done &amp;&amp;
unset DIRNAME</userinput></screen>
<para>
To test the results, issue: <command>make check</command>.
</para>
@ -115,21 +124,37 @@ makeinfo --plaintext -o doc/ref/guile.txt doc/ref/guile.texi</userinput></screen
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install &amp;&amp;
make install-html &amp;&amp;
<screen role="root"><userinput>make install &amp;&amp;
mv /usr/share/doc/guile-&guile-version;/{guile.html,ref} &amp;&amp;
mv /usr/share/doc/guile-&guile-version;/r5rs{.html,} &amp;&amp;
find examples -name "Makefile*" -delete &amp;&amp;
install -v -dm755 /usr/share/doc/guile-&guile-version; &amp;&amp;
cp -vR examples /usr/share/doc/guile-&guile-version; &amp;&amp;
find examples -name "Makefile*" -exec rm {} \; &amp;&amp;
cp -vR examples /usr/share/doc/guile-&guile-version; &amp;&amp;
for DIRNAME in r5rs ref
do
for DIRNAME in r5rs ref; do
install -v -dm755 /usr/share/doc/guile-&guile-version;/${DIRNAME} &amp;&amp;
install -v -m644 doc/${DIRNAME}/*.txt \
/usr/share/doc/guile-&guile-version;/${DIRNAME} &amp;&amp;
if [ -d doc/${DIRNAME}/${DIRNAME}.html ]; then
cp -Rv doc/${DIRNAME}/${DIRNAME}.html \
/usr/share/doc/guile-&guile-version;/${DIRNAME}
done &amp;&amp;
unset DIRNAME</userinput></screen>
fi
done
cp -vR doc/ref/guile.html /usr/share/doc/guile-&guile-version;/ref</userinput></screen>
<para>
If you built the alternate formats of the documentation, install them
using the following commands issued by the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>for DIRNAME in r5rs ref
do
install -v -m644 doc/${DIRNAME}/*.{pdf,ps,dvi} \
/usr/share/doc/guile-&guile-version;/${DIRNAME}
done</userinput></screen>
</sect2>

View File

@ -116,7 +116,7 @@ make</userinput></screen>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
<screen role="root"><userinput>make profiledir=/etc/bash_completion.d install</userinput></screen>
</sect2>

View File

@ -32,7 +32,7 @@
<para>This package provides a <application>Phonon</application> backend which
utilizes the <application>GStreamer</application> media framework.</para>
&lfs74_checked;
&lfs75_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">

View File

@ -38,7 +38,7 @@
additional configuration changes. Best practice is to add those to your
system or personal profile:</para>
<screen><userinput>cat &gt; /etc/profile.d/kde.sh &lt;&lt; EOF
<screen><userinput>cat &gt; /etc/profile.d/kde.sh &lt;&lt; 'EOF'
<literal># Begin /etc/profile.d/kde.sh
&kde-dir-var;=/opt/kde

View File

@ -36,7 +36,7 @@
This is useful for programs and applications needing to decode MPEG-2 and
MPEG-1 video streams.</para>
&lfs74_checked;
&lfs75_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">

View File

@ -11,7 +11,7 @@
<!ENTITY glib-networking-md5sum "99293f58a8256214b2b9b331afeb1aee">
<!ENTITY glib-networking-size "356 KB">
<!ENTITY glib-networking-buildsize "8.5 MB">
<!ENTITY glib-networking-time "0.15 SBU">
<!ENTITY glib-networking-time "0.1 SBU">
]>
<sect1 id="glib-networking" xreflabel="glib-networking-&glib-networking-version;">

View File

@ -11,7 +11,7 @@
<!ENTITY libsoup-md5sum "92aa3667357157e8f3489bcca287f2fa">
<!ENTITY libsoup-size "732 KB">
<!ENTITY libsoup-buildsize "27 MB (additional 2 MB to run the test suite)">
<!ENTITY libsoup-time "0.55 SBU (additional 0.16 SBU to run the test suite)">
<!ENTITY libsoup-time "0.5 SBU (additional 0.2 SBU to run the test suite)">
]>
<sect1 id="libsoup" xreflabel="libsoup-&libsoup-version;">
@ -35,7 +35,7 @@
The <application>libsoup</application> is HTTP client/server library for
<application>GNOME</application>. It uses GObject and the GLib main loop
to integrate with <application>GNOME</application> applications and
it also has asynchronous API for use in threaded applications.
it also has an asynchronous API for use in threaded applications.
</para>
&lfs75_checked;

View File

@ -128,6 +128,7 @@ pathappend () {
export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1"
}
export -f pathremove pathprepend pathappend
# Set the initial path
export PATH=/bin:/usr/bin
@ -157,9 +158,6 @@ for script in /etc/profile.d/*.sh ; do
fi
done
# Now to clean up
unset pathremove pathprepend pathappend
# End /etc/profile</literal>
EOF</userinput></screen>

View File

@ -105,10 +105,8 @@
<xref linkend="gst-plugins-base"/> (For QtWebKit HTML5 Video),
<xref linkend="mariadb"/> or <xref linkend="mysql"/>,
<xref linkend="postgresql"/>,
<xref linkend="pulseaudio"/>,
<xref linkend="unixodbc"/>, and
<xref linkend="qtchooser"/> (runtime, if also installing Qt5 and
installing in /usr)
<xref linkend="pulseaudio"/>, and
<xref linkend="unixodbc"/>
</para>
<para condition="html" role="usernotes">User Notes:
@ -116,63 +114,11 @@
</para>
</sect2>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../xincludes/qt-alternatives.xml"/>
<sect2 role="installation">
<title>Installation of Qt</title>
<para>
There are several ways to install a complicated package such as
<application>Qt</application>. The files are not completely position
independent. Installation procedures execute the program
<command>pkg-config</command> to determine the location of package
executables, libraries, headers, and other files. For
<application>Qt</application>, <command>pkg-config</command> will look
for the appropriate <filename>lib/pkgconfig/Qt*.pc</filename> files
which must be modified if relocating the package. These files are set up
correctly by the build process.
</para>
<para>
The default installation places the files in <filename
class='directory'>/usr/local/qt/</filename>. Many commercial
distributions place the files in the system's <filename
class='directory'>/usr</filename> hierarchy. The package can also be
installed in an arbitrary directory.
</para>
<para>
The advantage of installing in <filename
class='directory'>/usr</filename> is that no updates to the
<filename>/etc/ld.so.conf</filename> or
<filename>/etc/man_db.conf</filename> files are required. The package
files are distributed within several subdirectories of the <filename
class='directory'>/usr</filename> hierarchy. This is the method that
most commercial distributions use. It is also supported by the
optional <application>qtchooser</application> application.
</para>
<para>
The disadvantage of installing in <filename
class='directory'>/usr</filename> is that the executable filenames
for <application>Qt4</application> and <application>Qt5</application>
conflict if both packages are installed in the
same directory. The instructions below give a workaround for
this problem using the helper program <xref linkend='qtchooser'/>.
This requires renaming the Qt executables with a version suffix.
</para>
<para>
The advantage of installing <application>Qt4</application> in a custom
directory such as <filename
class='directory'>/opt/qt-&qt4-version;</filename> is that it keeps all
the package files consolidated in a dedicated directory hierarchy. By
using this method, an update can be made without overwriting a previous
installation and users can easily revert to a previous version by
changing one symbolic link or merely changing the PATH variable. It
also allows a developer to maintain multiple versions of
<application>Qt4</application> or <application>Qt5</application>
for testing.
</para>
<caution>
<para>
If you did not install some of the recommended dependencies, examine
@ -200,26 +146,25 @@
</para>
</note>
<!-- ==== Method 1 ====== -->
<bridgehead renderas="sect3">Method 1: Installing in /usr</bridgehead>
<para>
Install <application>Qt4</application> by running the
following commands:
Install <application>Qt4</application> into the <filename
class='directory'>/usr</filename> hierarchy by running the following
commands:
</para>
<note><para>
If <emphasis>not</emphasis> also installing <application>Qt5</application>
into the /usr directory, change the entry for -bindir below to /usr/bin.
</para></note>
<screen><userinput>export QTLINK=/usr
<screen><userinput>sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
config.tests/unix/libmng/libmng.cpp &amp;&amp;
sed -i '/CONFIG -/ a\isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../..' \
src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro &amp;&amp;
./configure -prefix /usr \
-bindir /usr/lib/qt4/bin \
-bindir /usr/bin \
-plugindir /usr/lib/qt4/plugins \
-importdir /usr/lib/qt4/imports \
-headerdir /usr/include/qt4 \
@ -257,22 +202,10 @@ make</userinput></screen>
<screen><userinput>find . -name "*.pc" -exec perl -pi -e "s, -L$PWD/?\S+,,g" {} \;</userinput></screen>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<para>Now as the <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>make install &amp;&amp;
rm -rf /usr/tests &amp;&amp;
install -v -Dm644 src/gui/dialogs/images/qtlogo-64.png \
/usr/share/pixmaps/qt4logo.png &amp;&amp;
install -v -Dm644 tools/assistant/tools/assistant/images/assistant-128.png \
/usr/share/pixmaps/assistant-qt4.png &amp;&amp;
install -v -Dm644 tools/designer/src/designer/images/designer.png \
/usr/share/pixmaps/designer-qt4.png &amp;&amp;
install -v -Dm644 tools/linguist/linguist/images/icons/linguist-128-32.png \
/usr/share/pixmaps/linguist-qt4.png &amp;&amp;
install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \
/usr/share/pixmaps/qdbusviewer-qt4.png</userinput></screen>
rm -rf /usr/tests</userinput></screen>
<para>
Remove references to the build directory from installed files by
@ -282,51 +215,32 @@ install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \
<screen role="root"><userinput>for file in 3Support CLucene Core DBus Declarative DesignerComponents \
Designer Gui Help Multimedia Network OpenGL Script \
ScriptTools Sql Svg Test UiTools WebKit XmlPatterns Xml phonon
do
[ -e /usr/lib/libQt${file}.prl ] &amp;&amp; sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' \
/usr/lib/libQt${file}.prl
ScriptTools Sql Svg Test UiTools WebKit XmlPatterns Xml phonon; do
[ -e /usr/lib/libQt${file}.prl ] &amp;&amp;
sed -r '/^QMAKE_PRL_BUILD_DIR/d;s/(QMAKE_PRL_LIBS =).*/\1/' \
-i /usr/lib/libQt${file}.prl
done
unset file</userinput></screen>
<para>
If also installing Qt5 into /usr,
symlink the <application>Qt4</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/qt4/bin/*
do
ln -sfv ../lib/qt4/bin/$(basename $file) /usr/bin/$(basename $file)-qt4
done</userinput></screen>
<!-- ==== Method 2 ====== -->
<bridgehead renderas="sect3">Method 2: Installing in /opt/qt-&qt4-version;</bridgehead>
<para>
This section provides an alternate way to install Qt4 by installing
almost all of the files in the <filename class="directory">/opt</filename>
directory. This allows management of all Qt4 related files in one unit.
For instance, a new version of Qt4 can be installed without over-writing
the existing installation and entire Qt4 instances can be easily removed.
However, it has the disadvantage of needing some extra configuration.
</para>
<para>
Install <application>Qt</application> in /opt/qt-&qt4-version;
by running the following commands:
This section provides for installing Qt4 almost all of the files in the
<filename class="directory">/opt</filename> directory.
</para>
<screen><userinput>sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
<screen><userinput>export QTDIR=/opt/qt-&qt4-version; &amp;&amp;
export QTLINK=/opt/qt &amp;&amp;
sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
config.tests/unix/libmng/libmng.cpp &amp;&amp;
sed -i '/CONFIG -/ a\isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../..' \
src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro &amp;&amp;
export QTDIR=/opt/qt-&qt4-version;
./configure -prefix $QTDIR \
./configure -prefix $QTDIR \
-sysconfdir /etc/xdg \
-confirm-license \
-opensource \
@ -349,19 +263,8 @@ make</userinput></screen>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install &amp;&amp;
install -v -dm755 /usr/share/pixmaps/ &amp;&amp;
install -v -Dm644 src/gui/dialogs/images/qtlogo-64.png \
/usr/share/pixmaps/qt4logo.png &amp;&amp;
install -v -Dm644 tools/assistant/tools/assistant/images/assistant-128.png \
/usr/share/pixmaps/assistant-qt4.png &amp;&amp;
install -v -Dm644 tools/designer/src/designer/images/designer.png \
/usr/share/pixmaps/designer-qt4.png &amp;&amp;
install -v -Dm644 tools/linguist/linguist/images/icons/linguist-128-32.png \
/usr/share/pixmaps/linguist-qt4.png &amp;&amp;
install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \
/usr/share/pixmaps/qdbusviewer-qt4.png</userinput></screen>
<screen role="root"><userinput>make install
ln -svfn $QTDIR /opt/qt</userinput></screen>
<para>
Remove references to the build directory from installed files by
@ -370,25 +273,104 @@ install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \
</para>
<screen role="root"><userinput>for file in `basename -a -s .prl $QTDIR/lib/lib*.prl`; do
sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' \
$QTDIR/lib/${file}.prl
perl -pi -e "s, -L$PWD/?\S+,,g" $QTDIR/lib/pkgconfig/${file##lib}.pc
sed -r '/^QMAKE_PRL_BUILD_DIR/d' \
-r 's/(QMAKE_PRL_LIBS =).*/\1/' \
-i $QTDIR/lib/${file}.prl
perl -pi -e "s, -L$PWD/?\S+,,g" $QTDIR/lib/pkgconfig/${file##lib}.pc
done
unset file</userinput></screen>
<para>
Symlink the <application>Qt4</application> executables into
<filename class="directory">/usr/bin</filename> by running the
following commands as the
<systemitem class="username">root</systemitem> user:
</para>
<!-- ==== Common ====== -->
<bridgehead renderas="sect3">Continuing for Both Methods</bridgehead>
<screen role="root"><userinput>ln -svf $QTDIR /opt/qt &amp;&amp;
<para>
For all methods, install images and create the menu entries
for installed applications. Be sure that the <envar>QTLINK</envar>
variable is defined in root's environment and
as the <systemitem class="username">root</systemitem> user:
</para>
for file in /opt/qt/bin/*; do
ln -sfvn $file /usr/bin/$(basename $file)-qt4
done</userinput></screen>
<screen role="root"><userinput>install -v -Dm644 src/gui/dialogs/images/qtlogo-64.png \
/usr/share/pixmaps/qt4logo.png &amp;&amp;
install -v -Dm644 tools/assistant/tools/assistant/images/assistant-128.png \
/usr/share/pixmaps/assistant-qt4.png &amp;&amp;
install -v -Dm644 tools/designer/src/designer/images/designer.png \
/usr/share/pixmaps/designer-qt4.png &amp;&amp;
install -v -Dm644 tools/linguist/linguist/images/icons/linguist-128-32.png \
/usr/share/pixmaps/linguist-qt4.png &amp;&amp;
install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \
/usr/share/pixmaps/qdbusviewer-qt4.png &amp;&amp;
install -dm755 /usr/share/applications &amp;&amp;
cat &gt; /usr/share/applications/assistant-qt4.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt4 Assistant
Comment=Shows Qt4 documentation and examples
Exec=$QTLINK/bin/assistant
Icon=assistant-qt4.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;</literal>
EOF
cat &gt; /usr/share/applications/designer-qt4.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt4 Designer
Comment=Design GUIs for Qt4 applications
Exec=$QTLINK/bin/designer
Icon=designer-qt4.png
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;</literal>
EOF
cat &gt; /usr/share/applications/linguist-qt4.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt4 Linguist
Comment=Add translations to Qt4 applications
Exec=$QTLINK/bin/linguist
Icon=linguist-qt4.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-qt4.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt4 QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=$QTLINK/bin/qdbusviewer
Icon=qdbusviewer-qt4.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;</literal>
EOF
cat &gt; /usr/share/applications/qtconfig-qt4.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt4 Config
Comment=Configure Qt4 behavior, styles, fonts
Exec=$QTLINK/bin/qtconfig-qt4
Icon=qt4logo.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Settings;</literal>
EOF</userinput></screen>
</sect2>
@ -398,7 +380,7 @@ done</userinput></screen>
<para>
<command>sed -i ...</command>: First command fixes detection of
<application>libmng</application> 2.0 and second one prevents configure
script to write in root directory if building as privileged user.
script from writing to the root directory if building as privileged user.
</para>
<para>
@ -419,7 +401,7 @@ done</userinput></screen>
<para>
<parameter>-nomake examples -nomake demos</parameter>:
These switches disable building programs that are only of
interest to a <application>Qt</application> developer.
interest to a developer using <application>Qt</application>.
</para>
<para>
@ -483,7 +465,6 @@ done</userinput></screen>
<literal># Begin /etc/profile.d/qt.sh
QTDIR=/usr
export QTDIR
# End /etc/profile.d/qt.sh</literal>
@ -532,78 +513,11 @@ export QTDIR
# End /etc/profile.d/qt.sh</literal>
EOF</userinput></screen>
<para>
For all methods, 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/qtconfig-qt4.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Name=Qt4 Config
Comment=Configure Qt4 behavior, styles, fonts
Exec=qtconfig-qt4
Icon=qt4logo
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Settings;</literal>
EOF
cat &gt; /usr/share/applications/assistant-qt4.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Name=Qt4 Assistant
Comment=Shows Qt4 documentation and examples
Exec=assistant-qt4
Icon=assistant-qt4
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;</literal>
EOF
cat &gt; /usr/share/applications/designer-qt4.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Name=Qt4 Designer
Comment=Design GUIs for Qt4 applications
Exec=designer-qt4
Icon=designer-qt4
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;</literal>
EOF
cat &gt; /usr/share/applications/linguist-qt4.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Name=Qt4 Linguist
Comment=Add translations to Qt4 applications
Exec=linguist-qt4
Icon=linguist-qt4
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-qt4.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Name=Qt4 QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=qdbusviewer-qt4
Icon=qdbusviewer-qt4
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;</literal>
EOF</userinput></screen>
</sect3>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/setqt.xml"/>
</sect2>
<sect2 role="content">
@ -616,13 +530,13 @@ EOF</userinput></screen>
<seglistitem>
<seg>
assistant-qt4, designer-qt4, lconvert-qt4, linguist-qt4,
lrelease-qt4, lupdate-qt4, moc-qt4, pixeltool-qt4,
qcollectiongenerator-qt4, qdbuscpp2xml-qt4, qdbus-qt4,
qdbusviewer-qt4, qdbusxml2cpp-qt4, qdoc3-qt4, qhelpconverter-qt4,
qhelpgenerator-qt4, qmake-qt4, qmlplugindump-qt4, qmlviewer-qt4,
qt3to4-qt4, qtconfig-qt4, qttracereplay-qt4, rcc-qt4, uic3-qt4,
uic-qt4, xmlpatterns-qt4 and xmlpatternsvalidator-qt4
assistant, designer, lconvert, linguist,
lrelease, lupdate, moc, pixeltool,
qcollectiongenerator, qdbuscpp2xml, qdbus,
qdbusviewer, qdbusxml2cpp, qdoc3, qhelpconverter,
qhelpgenerator, qmake, qmlplugindump, qmlviewer,
qt3to4, qtconfig, qttracereplay, rcc, uic3,
uic, xmlpatterns, and xmlpatternsvalidator
</seg>
<seg>
libQt3Support.so, libQtCLucene.so, libQtCore.so, libQtDBus.so,
@ -630,14 +544,16 @@ EOF</userinput></screen>
libQtDesigner.so, libQtGui.so, libQtHelp.so, libQtMultimedia.so,
libQtNetwork.so, libQtOpenGL.so, libQtScript.so, libQtScriptTools.so,
libQtSql.so, libQtSvg.so, libQtTest.so, libQtWebKit.so,
libQtXmlPatterns.so and libQtXml.so
libQtXmlPatterns.so, and libQtXml.so
</seg>
<seg>
/usr/include/qt4,
/usr/lib/qt4,
/usr/share/doc/qt4, and
/usr/share/qt4 (OR $QTDIR)
(OR $QTDIR)
/usr/share/qt4
OR
/opt/qt and
/opt/qt-&qt4-version;
</seg>
</seglistitem>
</segmentedlist>
@ -648,19 +564,19 @@ EOF</userinput></screen>
<?dbhtml list-presentation="table"?>
<varlistentry id="assistant-qt4">
<term><command>assistant-qt4</command></term>
<term><command>assistant</command></term>
<listitem>
<para>
is a tool for presenting on-line documentation.
</para>
<indexterm zone="qt4 assistant-qt4">
<primary sortas="b-assistant-qt4">assistant-qt4</primary>
<primary sortas="b-assistant-qt4">assistant</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="designer-qt4">
<term><command>designer-qt4</command></term>
<term><command>designer</command></term>
<listitem>
<para>
is a full-fledged GUI builder. It includes
@ -669,39 +585,39 @@ EOF</userinput></screen>
property editor.
</para>
<indexterm zone="qt4 designer-qt4">
<primary sortas="b-designer-qt4">designer-qt4</primary>
<primary sortas="b-designer-qt4">designer</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="linguist-qt4">
<term><command>linguist-qt4</command></term>
<term><command>linguist</command></term>
<listitem>
<para>
provides support for translating applications into
local languages.
</para>
<indexterm zone="qt4 linguist-qt4">
<primary sortas="b-linguist-qt4">linguist-qt4</primary>
<primary sortas="b-linguist-qt4">linguist</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lrelease-qt4">
<term><command>lrelease-qt4</command></term>
<term><command>lrelease</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="qt4 lrelease-qt4">
<primary sortas="b-lrelease-qt4">lrelease-qt4</primary>
<primary sortas="b-lrelease-qt4">lrelease</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lupdate-qt4">
<term><command>lupdate-qt4</command></term>
<term><command>lupdate</command></term>
<listitem>
<para>
reads a Qt project file, finds the translatable
@ -710,38 +626,38 @@ EOF</userinput></screen>
files listed in the project file.
</para>
<indexterm zone="qt4 lupdate-qt4">
<primary sortas="b-lupdate-qt4">lupdate-qt4</primary>
<primary sortas="b-lupdate-qt4">lupdate</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="moc-qt4">
<term><command>moc-qt4</command></term>
<term><command>moc</command></term>
<listitem>
<para>
generates Qt meta object support code.
</para>
<indexterm zone="qt4 moc-qt4">
<primary sortas="b-moc-qt4">moc-qt4</primary>
<primary sortas="b-moc-qt4">moc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pixeltool-qt4">
<term><command>pixeltool-qt4</command></term>
<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="qt4 pixeltool-qt4">
<primary sortas="b-pixeltool-qt4">pixeltool-qt4</primary>
<primary sortas="b-pixeltool-qt4">pixeltool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmake-qt4">
<term><command>qmake-qt4</command></term>
<term><command>qmake</command></term>
<listitem>
<para>
uses information stored in project files to
@ -749,61 +665,61 @@ EOF</userinput></screen>
generates.
</para>
<indexterm zone="qt4 qmake-qt4">
<primary sortas="b-qmake-qt4">qmake-qt4</primary>
<primary sortas="b-qmake-qt4">qmake</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qt3to4-qt4">
<term><command>qt3to4-qt4</command></term>
<term><command>qt3to4</command></term>
<listitem>
<para>
qt3to4 is a tool to help update Qt3 code to Qt4.
</para>
<indexterm zone="qt4 qt3to4-qt4">
<primary sortas="b-qt3to4-qt4">qt3to4-qt4</primary>
<primary sortas="b-qt3to4-qt4">qt3to4</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qtconfig-qt4">
<term><command>qtconfig-qt4</command></term>
<term><command>qtconfig</command></term>
<listitem>
<para>
is used to customize the appearance of Qt applications.
</para>
<indexterm zone="qt4 qtconfig-qt4">
<primary sortas="b-qtconfig-qt4">qtconfig-qt4</primary>
<primary sortas="b-qtconfig-qt4">qtconfig</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rcc-qt4">
<term><command>rcc-qt4</command></term>
<term><command>rcc</command></term>
<listitem>
<para>
is a resource compiler used in conjunction with designer.
</para>
<indexterm zone="qt4 rcc-qt4">
<primary sortas="b-rcc-qt4">rcc-qt4</primary>
<primary sortas="b-rcc-qt4">rcc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="uic-qt4">
<term><command>uic-qt4</command></term>
<term><command>uic</command></term>
<listitem>
<para>
is a Qt user interface compiler.
</para>
<indexterm zone="qt4 uic-qt4">
<primary sortas="b-uic-qt4">uic-qt4</primary>
<primary sortas="b-uic-qt4">uic</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="uic3-qt4">
<term><command>uic3-qt4</command></term>
<term><command>uic3</command></term>
<listitem>
<para>
is a tool to generate Qt4 code out of
@ -811,7 +727,7 @@ EOF</userinput></screen>
version of designer.
</para>
<indexterm zone="qt4 uic3-qt4">
<primary sortas="b-uic3-qt4">uic3-qt4</primary>
<primary sortas="b-uic3-qt4">uic3</primary>
</indexterm>
</listitem>
</varlistentry>

View File

@ -38,11 +38,10 @@
with a graphical user interface (GUI) (in which cases
<application>Qt5</application> 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>Qt5</application> is <application>KDE Frameworks 5</application>.
and consoles for servers.
</para>
&lfs74_checked;
&lfs75_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
@ -97,7 +96,7 @@
<xref linkend="dbus"/>,
<xref linkend="glib2"/>,
<xref linkend="gst-plugins-base"/>,<!--
<xref linkend="harfbuzz"/>, Doesn't have all the features that the shipped one has. -->
<xref linkend="harfbuzz"/>, Doesn't have all the features that the included one has. -->
<xref linkend="icu"/>,
<xref linkend="libjpeg"/>,
<xref linkend="libmng"/>,
@ -122,75 +121,17 @@
<xref linkend="unixodbc"/>
</para>
<bridgehead renderas="sect4">Required (Runtime)</bridgehead>
<para role="required">
<xref linkend="qtchooser"/> (if installing both
<application>Qt4</application> and <application>Qt5</application>
and installing in <filename class="directory">/usr</filename>)
</para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/qt5"/>
</para>
</sect2>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/qt-alternatives.xml"/>
<sect2 role="installation">
<title>Installation of Qt5</title>
<para>
There are several ways to install a complicated package such as
<application>Qt5</application>. The files are not completely position
independent. Installation procedures execute the program
<command>pkg-config</command> to determine the location of package
executables, libraries, headers, and other files. For
<application>Qt5</application>, <command>pkg-config</command> will look
for the appropriate <filename>lib/pkgconfig/Qt5*.pc</filename> files
which must be modified if relocating the package. These files are set up
correctly by the build process.
</para>
<para>
The default installation places the files in <filename
class="directory">/usr/local/qt</filename>. Many
distributions place the files in the system's <filename
class="directory">/usr</filename> hierarchy. The package can
also be installed in an arbitrary directory.
</para>
<para>
The advantage of installing in <filename
class="directory">/usr</filename> is that no updates to the
<filename>/etc/ld.so.conf</filename> or
<filename>/etc/man_db.conf</filename> files are required. The package
files are distributed within several subdirectories of the <filename
class="directory">/usr</filename> hierarchy. This is the method that
most distributions use.
</para>
<para>
The disadvantage of installing in <filename
class="directory">/usr</filename> is that the executable filenames
for <application>Qt4</application> and <application>Qt5</application>
conflict if both packages are installed in the
same directory. The instructions below give a workaround for
this problem using the helper programs from <xref linkend="qtchooser"/>.
<!-- renaming is not required because of this, only using a different
bindir is -->
</para>
<para>
The advantage of installing <application>Qt5</application> in a custom
directory such as <filename
class="directory">/opt/qt-&qt5-version;</filename> is that it keeps all
the package files consolidated in a dedicated directory hierarchy. By
using this method, an update can be made without overwriting a previous
installation and users can easily revert to a previous version by
changing one symbolic link or merely changing the <envar>PATH</envar>
variable. It also allows a developer to maintain multiple versions of
<application>Qt4</application> or <application>Qt5</application>
for testing.
</para>
<caution>
<para>
If you did not install some of the recommended dependencies, examine
@ -208,7 +149,7 @@
not be in use during the install process.
</para>
</warning>
<!-- ==== Method 1 ====== -->
<bridgehead renderas="sect3">Method 1: Installing in /usr</bridgehead>
<para>
@ -217,7 +158,8 @@
</para>
<!-- This is rather a bad idea. Most apps that I've seen using Qt5 look for -qt5
suffixed programs.
suffixed programs. On the other hand, the developer is used to running
qmake, linguist, etc from the command line.
<note>
<para>
@ -226,9 +168,11 @@
</para>
</note> -->
<screen><userinput>./configure -prefix /usr \
<screen><userinput>export QTLINK=/usr
./configure -prefix /usr \
-sysconfdir /etc/xdg \
-bindir /usr/lib/qt5/bin \
-bindir /usr/bin \
-headerdir /usr/include/qt5 \
-archdatadir /usr/lib/qt5 \
-datadir /usr/share/qt5 \
@ -247,6 +191,10 @@
-optimized-qmake &amp;&amp;
make</userinput></screen>
<para>
This package does not come with a test suite.
</para>
<para>
Remove references to the build directory from the
<filename class="extension">.pc</filename> files by running
@ -255,23 +203,11 @@ make</userinput></screen>
<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>
<screen role="root"><userinput>make install</userinput></screen>
<para>
Remove references to the build directory from installed files by
@ -279,39 +215,24 @@ install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
<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_private.pri &amp;&amp;
find /usr/lib/lib{qgsttools_p,Qt5*}.prl -exec sed -i -e \
'/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;</userinput></screen>
<screen role="root"><userinput>
sed -e "s:$PWD/qtbase:/usr/lib/qt5:g" \
-i /usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri &amp;&amp;
<para>
<!-- If you didn't modify the -bindir switch above, -->Symlink the
<application>Qt5</application> executables into
<filename class="directory">/usr/bin</filename> by running the
following commands as the
<systemitem class="username">root</systemitem> user:
</para>
find /usr/lib/lib{qgsttools_p,Qt5*}.prl -exec sed -i -r \
'/^QMAKE_PRL_BUILD_DIR/d;s/(QMAKE_PRL_LIBS =).*/\1/' {} \;</userinput></screen>
<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>
<!-- ==== Method 2 ====== -->
<bridgehead renderas="sect3">Method 2: Installing in /opt/qt-&qt5-version;</bridgehead>
<para>
This section provides an alternate way to install <application>Qt5</application>
by installing almost all of the files in the <filename
class="directory">/opt</filename> directory. This allows management of all
<application>Qt5</application> related files in one unit. For instance, a new
version of <application>Qt5</application> can be installed without over-writing
the existing installation and entire <application>Qt5</application> instances can
be easily removed. However, it has the disadvantage of needing some extra
configuration and you need to switch manually between <application>Qt4</application>
and <application>Qt5</application> executables when needed.
</para>
<para>
This section provides for installing Qt4 almost all of the files in the
<filename class="directory">/opt</filename> directory.
</para>
<screen><userinput>export QT5DIR=/opt/qt-&qt5-version;
<screen><userinput>export QT5DIR=/opt/qt-&qt5-version; &amp;&amp;
export QTLINK=/opt/qt5 &amp;&amp;
./configure -prefix $QT5DIR \
-sysconfdir /etc/xdg \
@ -332,16 +253,7 @@ make</userinput></screen>
</para>
<screen role="root"><userinput>make install &amp;&amp;
install -v -dm755 /usr/share/pixmaps/ &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>
ln -svfn $QT5DIR /opt/qt5</userinput></screen>
<para>
Remove references to the build directory from installed files by
@ -355,8 +267,7 @@ install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
find $QT5DIR -name \*.prl \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
<!-- This is useful for packages looking explicitly for Qt apps with -qt5 suffix,
and is *required* for the desktop files below to work correctly. -->
<!-- This is useful for packages looking explicitly for Qt apps with -qt5 suffix.
<para>
Symlink the <application>Qt5</application> executables into
@ -369,7 +280,85 @@ find $QT5DIR -name \*.prl \
for file in /opt/qt5/bin/*; do
ln -sfv $file /usr/bin/$(basename $file)-qt5
done</userinput></screen>
done</userinput></screen> -->
<!-- ==== Common ====== -->
<bridgehead renderas="sect3">Continuing for Both Methods</bridgehead>
<para>
For all methods, install images and create the menu entries
for installed applications. Be sure that the <envar>QTLINK</envar>
variable is defined in root's environment and
as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>install -v -dm755 /usr/share/pixmaps/ &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 &amp;&amp;
install -dm755 /usr/share/applications &amp;&amp;
cat &gt; /usr/share/applications/assistant-qt5.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt5 Assistant
Comment=Shows Qt5 documentation and examples
Exec=$QTLINK/bin/assistant
Icon=assistant-qt5.png
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=$QTLINK/bin/designer
Icon=designer-qt5.png
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=$QTLINK/bin/linguist
Icon=linguist-qt5.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-qt5.desktop &lt;&lt; EOF
<literal>[Desktop Entry]
Name=Qt5 QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=$QTLINK/bin/qdbusviewer
Icon=qdbusviewer-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;</literal>
EOF</userinput></screen>
</sect2>
@ -455,58 +444,6 @@ done</userinput></screen>
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>
<!-- No package uses this at the moment.
<para>
If you installed <application>Qt5</application> in
<filename class="directory">/usr</filename>, create an
@ -518,22 +455,11 @@ EOF</userinput></screen>
<literal># Begin /etc/profile.d/qt5.sh
QTDIR=/usr
export QT5DIR
# End /etc/profile.d/qt5.sh</literal>
EOF</userinput></screen>
-->
<note>
<para>
If you have installed <application>Qt5</application> in
<filename class="directory">/usr</filename>, you can skip
rest of this section.
</para>
</note>
<para>
If you installed <application>Qt5</application> in a location other
than <filename class="directory">/usr</filename>, you need to update the
@ -579,19 +505,10 @@ export QT5DIR
# End /etc/profile.d/qt5.sh</literal>
EOF</userinput></screen>
<note>
<para>
If you also installed <application>Qt4</application> and need to use
the <application>Qt5</application> version of an executable such as
<command>qmake</command> for building a program, make sure that
the <application>Qt5</application> bin directory is listed prior to
the <application>Qt5</application> bin directory in the
<envar>PATH</envar> variable.
</para>
</note>
</sect3>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/setqt.xml"/>
</sect2>
<sect2 role="content">
@ -604,13 +521,13 @@ EOF</userinput></screen>
<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,
qmlimportscanner-qt5, qmlmin-qt5, qmlplugindump-qt5, qmlprofiler-qt5, qml-qt5,
qmlscene-qt5, qmltestrunner-qt5, qmlviewer-qt5, qtpaths-qt5, rcc-qt5,
syncqt.pl-qt5, uic-qt5, xmlpatterns-qt5, and xmlpatternsvalidator-qt5
assistant, designer, lconvert, linguist, lrelease,
lupdate, moc, pixeltool, qcollectiongenerator, qdbuscpp2xml,
qdbus, qdbusviewer, qdbusxml2cpp, qdoc, qhelpconverter,
qhelpgenerator, qmake, qml1plugindump, qmlbundle,
qmlimportscanner, qmlmin, qmlplugindump, qmlprofiler, qml,
qmlscene, qmltestrunner, qmlviewer, qtpaths, rcc,
syncqt.pl, uic, xmlpatterns, and xmlpatternsvalidator
</seg>
<seg>
libqgsttools_p.so, libQt5Bluetooth.so, libQt5Bootstrap.a, libQt5CLucene.so,
@ -630,6 +547,9 @@ EOF</userinput></screen>
/usr/lib/qt5,
/usr/share/doc/qt5, and
/usr/share/qt5
OR
/opy/qt5 and
/opt/qt-&qt5-version;
</seg>
</seglistitem>
</segmentedlist>
@ -640,19 +560,19 @@ EOF</userinput></screen>
<?dbhtml list-presentation="table"?>
<varlistentry id="assistant-qt5">
<term><command>assistant-qt5</command></term>
<term><command>assistant</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>
<primary sortas="b-assistant-qt5">assistant</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="designer-qt5">
<term><command>designer-qt5</command></term>
<term><command>designer</command></term>
<listitem>
<para>
is a full-fledged GUI builder. It includes
@ -661,39 +581,39 @@ EOF</userinput></screen>
property editor.
</para>
<indexterm zone="qt5 designer-qt5">
<primary sortas="b-designer-qt5">designer-qt5</primary>
<primary sortas="b-designer-qt5">designer</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="linguist-qt5">
<term><command>linguist-qt5</command></term>
<term><command>linguist</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>
<primary sortas="b-linguist-qt5">linguist</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lrelease-qt5">
<term><command>lrelease-qt5</command></term>
<term><command>lrelease</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>
<primary sortas="b-lrelease-qt5">lrelease</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lupdate-qt5">
<term><command>lupdate-qt5</command></term>
<term><command>lupdate</command></term>
<listitem>
<para>
reads a Qt project file, finds the translatable
@ -702,38 +622,38 @@ EOF</userinput></screen>
files listed in the project file.
</para>
<indexterm zone="qt5 lupdate-qt5">
<primary sortas="b-lupdate-qt5">lupdate-qt5</primary>
<primary sortas="b-lupdate-qt5">lupdate</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="moc-qt5">
<term><command>moc-qt5</command></term>
<term><command>moc</command></term>
<listitem>
<para>
generates Qt meta object support code.
</para>
<indexterm zone="qt5 moc-qt5">
<primary sortas="b-moc-qt5">moc-qt5</primary>
<primary sortas="b-moc-qt5">moc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pixeltool-qt5">
<term><command>pixeltool-qt5</command></term>
<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="qt5 pixeltool-qt5">
<primary sortas="b-pixeltool-qt5">pixeltool-qt5</primary>
<primary sortas="b-pixeltool-qt5">pixeltool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qmake-qt5">
<term><command>qmake-qt5</command></term>
<term><command>qmake</command></term>
<listitem>
<para>
uses information stored in project files to
@ -741,31 +661,31 @@ EOF</userinput></screen>
generates.
</para>
<indexterm zone="qt5 qmake-qt5">
<primary sortas="b-qmake-qt5">qmake-qt5</primary>
<primary sortas="b-qmake-qt5">qmake</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rcc-qt5">
<term><command>rcc-qt5</command></term>
<term><command>rcc</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>
<primary sortas="b-rcc-qt5">rcc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="uic-qt5">
<term><command>uic-qt5</command></term>
<term><command>uic</command></term>
<listitem>
<para>
is a Qt user interface compiler.
</para>
<indexterm zone="qt5 uic-qt5">
<primary sortas="b-uic-qt5">uic-qt5</primary>
<primary sortas="b-uic-qt5">uic</primary>
</indexterm>
</listitem>
</varlistentry>

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note 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;
]>
<!-- $LastChangedBy: $
$Date: $ -->
<sect2>
<title>Qt Installation Alternatives</title>
<para>The installation of <application>Qt</application> presents
several challenges and choices. Complicating the Qt installation is the fact
that there are two versions, <application>Qt4</application> and
<application>Qt5</application>, that have executable programs with
identical names. If both packages are installed on one system,
the only methods to manage which set of programs is used is to
either control the users' <envar>PATH</envar> or to rename files
either directly or via symbolic links. Both packages cannot
be installed in the same directory.
</para>
<para>If you are only going to install one of the Qt versions,
the choice of installation methods is easier. You can either
install the components in the several directories of the <filename
class='directory'>/usr</filename> hierarchy or install the
entire package in a separate directory of your choice. We
refer to these options below as "Method 1: Installing in /usr"
and "Method 2: Installing in /opt".</para>
<para>If both versions of Qt are to be installed, one or both versions need
to be installed in a separate directory. For the purposes here we use the
<filename class='directory'>/opt</filename> directory. The selection of
which version is being used by individual users on a system is controlled
by the <envar>PATH</envar> variable. Other systems can be designed, but
the BLFS editors find the <envar>PATH</envar> method easiest.</para>
<para> The advantage of installing in <filename
class='directory'>/usr</filename> is that no updates to the
<filename>/etc/ld.so.conf</filename> or
<filename>/etc/man_db.conf</filename> files are required. The package files
are distributed within several subdirectories of the <filename
class='directory'>/usr</filename> hierarchy. This is the method that most
commercial distributions use. The disadvantage for BLFS users is that this
Qt instance cannot be upgraded while it is in use. For instance, it cannot
be upgraded from a running KDE environment. It also precludes having
multiple versions of Qt on your system and does not allow reverting to
an existing, known working instance of Qt.</para>
<para> The advantage of installing <application>Qt</application> in a
custom directory such as
<filename class='directory'>/opt/qt-&qt4-version;</filename> or
<filename class='directory'>/opt/qt-&qt5-version;</filename> or
is that it keeps all the
package files consolidated in a dedicated directory hierarchy. By using
this method, an update can be made without overwriting a previous
installation and users can easily revert to a previous version by changing
one symbolic link or merely changing the PATH variable. It also allows a
developer to maintain multiple versions of <application>Qt4</application>
or <application>Qt5</application> for testing. </para>
</sect2>

37
xincludes/setqt.xml Normal file
View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note 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;
]>
<!-- $LastChangedBy: $
$Date: $ -->
<sect3>
<title>Choosing Qt Program Versions</title>
<para>If you install both Qt4 and Qt5, you can use some simple
scripts to select the currently active set of Qt programs. As the
<systemitem class="username">root</systemitem> user, create
the following scripts:</para>
<screen role="root"><userinput>cat &gt; /usr/bin/setqt4 &lt;&lt; 'EOF'
<literal>if [ "x$QT5DIR" != "x/usr" ]; then pathremove $QT5DIR/bin; fi
if [ "x$QTDIR" != "x/usr" ]; then pathprepend $QTDIR/bin; fi
echo $PATH</literal>
EOF</userinput></screen>
<screen role="root"><userinput>cat &gt; /usr/bin/setqt5 &lt;&lt; 'EOF'
<literal>if [ "x$QTDIR" != "x/usr" ]; then pathremove $QTDIR/bin; fi
if [ "x$QT5DIR" != "x/usr" ]; then pathprepend $QT5DIR/bin; fi
echo $PATH</literal>
EOF</userinput></screen>
<para>You should now be able to use the appropriate Qt version by running
<command>source setqt4</command> or <command>source setqt4</command> as
desired. (Setting the PATH wont work in a subshell.) Another technique that
can be used is to create appropriate alias additions to your ~/.bashrc like
<command>alias setqt4='source setqt4'</command>.</para>
</sect3>