Author: bdubbs Date: Sat Sep 7 21:56:57 2013 New Revision: 11795 Log: Tag Qt4, Qt5, and qtchooser and add additional explanations. Tag autofs and update it's boot script.
Modified: trunk/BOOK/general.ent trunk/BOOK/general/genutils/qtchooser.xml trunk/BOOK/general/sysutils/autofs.xml trunk/BOOK/x/lib/qt4.xml trunk/BOOK/x/lib/qt5.xml trunk/bootscripts/ChangeLog trunk/bootscripts/blfs/init.d/autofs Modified: trunk/BOOK/general.ent ============================================================================== --- trunk/BOOK/general.ent Sat Sep 7 19:03:18 2013 (r11794) +++ trunk/BOOK/general.ent Sat Sep 7 21:56:57 2013 (r11795) @@ -67,7 +67,7 @@ <!ENTITY lfs-vim-version "7.4"> <!-- End LFS versions --> -<!ENTITY blfs-bootscripts-version "20130725"> +<!ENTITY blfs-bootscripts-version "20130908"> <!ENTITY blfs-bootscripts-download "&downloads-root;/blfs-bootscripts-&blfs-bootscripts-version;.tar.bz2"> <!ENTITY blfs-wiki "http://wiki.&lfs-domainname;/blfs/wiki"> Modified: trunk/BOOK/general/genutils/qtchooser.xml ============================================================================== --- trunk/BOOK/general/genutils/qtchooser.xml Sat Sep 7 19:03:18 2013 (r11794) +++ trunk/BOOK/general/genutils/qtchooser.xml Sat Sep 7 21:56:57 2013 (r11795) @@ -33,10 +33,11 @@ <para> The <application>qtchooser</application> package contains a wrapper used to select - between <application>Qt</application> binary versions. + between <application>Qt</application> binary versions. It is only needed if + both Qt4 and Qt5 are installed for access via the /usr/bin directory. </para> - &lfs73_checked; + &lfs74_checked; <bridgehead renderas="sect3">Package Information</bridgehead> <itemizedlist spacing="compact"> Modified: trunk/BOOK/general/sysutils/autofs.xml ============================================================================== --- trunk/BOOK/general/sysutils/autofs.xml Sat Sep 7 19:03:18 2013 (r11794) +++ trunk/BOOK/general/sysutils/autofs.xml Sat Sep 7 21:56:57 2013 (r11795) @@ -39,7 +39,7 @@ other removable storage devices without requiring the system administrator to mount the devices.</para> - &lfs73_checked; + &lfs74_checked; <bridgehead renderas="sect3">Package Information</bridgehead> <itemizedlist spacing="compact"> Modified: trunk/BOOK/x/lib/qt4.xml ============================================================================== --- trunk/BOOK/x/lib/qt4.xml Sat Sep 7 19:03:18 2013 (r11794) +++ trunk/BOOK/x/lib/qt4.xml Sat Sep 7 21:56:57 2013 (r11795) @@ -105,8 +105,9 @@ <xref linkend="mysql"/>, <xref linkend="postgresql"/>, <xref linkend="pulseaudio"/>, - <xref linkend="qtchooser"/> (if also installing Qt5), and - <xref linkend="unixodbc"/> + <xref linkend="unixodbc"/>, and + <xref linkend="qtchooser"/> (runtime, if also installing Qt5 and + installing in /usr) </para> <para condition="html" role="usernotes">User Notes: @@ -118,7 +119,6 @@ <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 @@ -149,6 +149,16 @@ 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 @@ -158,26 +168,27 @@ 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> for testing. + <application>Qt4</application> or <application>Qt5</application> + for testing. </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> - </warning> + </caution> - <caution> + <warning> <para> - If <application>Qt</application> is being reinstalled into the + If <application>Qt4</application> is being reinstalled into the same directory as an existing instance, run the - following commands from a console or non-Qt based window manager. - It overwrites <application>Qt</application> libraries that should + following commands from a console or non-Qt4 based window manager. + It overwrites <application>Qt4</application> libraries that should not be in use during the install process. </para> - </caution> + </warning> <note> <para> @@ -191,10 +202,16 @@ <bridgehead renderas="sect3">Method 1: Installing in /usr</bridgehead> <para> - Install <application>Qt</application> by running the + Install <application>Qt4</application> 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>sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \ config.tests/unix/libmng/libmng.cpp && @@ -263,7 +280,8 @@ unset file</userinput></screen> <para> - Symlink the <application>Qt</application> executables into + 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: @@ -277,6 +295,16 @@ <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: </para> @@ -444,7 +472,7 @@ </para> <screen role="root"><userinput>cat >> /etc/ld.so.conf << EOF - <literal># Begin Qt addition +<literal># Begin Qt addition /opt/qt/lib @@ -453,7 +481,7 @@ ldconfig</userinput></screen> - <indexterm zone="qt4 qtconfig-qt4"> + <indexterm zone="qt4 qt4-config"> <primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary> </indexterm> @@ -463,7 +491,7 @@ </para> <screen role="root"><userinput>cat > /etc/profile.d/qt.sh << EOF - <literal># Begin /etc/profile.d/qt.sh +<literal># Begin /etc/profile.d/qt.sh QTDIR=/opt/qt @@ -476,7 +504,7 @@ EOF</userinput></screen> <para> - For all methods, Create the menu entries for installed applications. + For all methods, create the menu entries for installed applications. As the <systemitem class="username">root</systemitem> user: </para> Modified: trunk/BOOK/x/lib/qt5.xml ============================================================================== --- trunk/BOOK/x/lib/qt5.xml Sat Sep 7 19:03:18 2013 (r11794) +++ trunk/BOOK/x/lib/qt5.xml Sat Sep 7 21:56:57 2013 (r11795) @@ -41,7 +41,7 @@ of <application>Qt</application> is <application>KDE</application>. </para> - &lfs73_checked; + &lfs74_checked; <bridgehead renderas="sect3">Package Information</bridgehead> <itemizedlist spacing="compact"> @@ -83,7 +83,6 @@ <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 @@ -114,8 +113,10 @@ <ulink url="http://xkbcommon.org/">libxkbcommon</ulink>, <xref linkend="mysql"/>, <xref linkend="postgresql"/>, - <xref linkend="pulseaudio"/>, and - <xref linkend="unixodbc"/> + <xref linkend="pulseaudio"/>, + <xref linkend="unixodbc"/>, and + <xref linkend="qtchooser"/> (runtime, if also installing Qt4 and + installing in /usr) </para> <para condition="html" role="usernotes">User Notes: @@ -126,34 +127,104 @@ <sect2 role="installation"> <title>Installation of Qt</title> - <warning> + <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. + </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 <command>./configure --help</command> output to check how to disable them or use internal versions bundled in the source tarball. </para> + </caution> + + <warning> + <para> + If <application>Qt5</application> is being reinstalled into the + same directory as an existing instance, run the + following commands from a console or non-Qt5 based window manager. + It overwrites <application>Qt5</application> libraries that should + not be in use during the install process. + </para> </warning> + + <bridgehead renderas="sect3">Method 1: Installing in /usr</bridgehead> <para> - Install <application>Qt</application> by running the + Install <application>Qt5</application> by running the following commands: </para> + <note><para> + If <emphasis>not</emphasis> also installing <application>Qt4</application> + into the /usr directory, change the entry for -bindir below to /usr/bin. + </para></note> + <screen><userinput>sed -i "s:Context\* context}:&\n%lex-param {YYLEX_PARAM}:" \ qtwebkit/Source/ThirdParty/ANGLE/src/compiler/glslang.y && sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \ qtimageformats/config.tests/libmng/libmng.cpp && -./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 \ +./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 \ + -examplesdir /usr/share/doc/qt5/examples \ -confirm-license \ -opensource \ -dbus-linked \ @@ -203,7 +274,8 @@ '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;</userinput></screen> <para> - Symlink the <application>Qt</application> executables into + If also installing Qt4 into /usr, + 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: @@ -214,13 +286,10 @@ 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> + <bridgehead renderas="sect3">Method 2: Installing in /opt/qt-&qt5-version;</bridgehead> <para> - This section provides an alternate way to install Qt by installing + 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 Qt related files in one unit. For instance, a new version of Qt5 can be installed without over-writing @@ -371,10 +440,69 @@ <title>Configuration Information</title> <para> - Create the menu entries for installed applications. + If you installed <application>Qt</application> in /usr, + create an environment variable needed by certain packages. As the <systemitem class="username">root</systemitem> user: </para> +<screen role="root"><userinput>cat > /etc/profile.d/qt.sh << EOF +<literal># Begin /etc/profile.d/qt.sh + +QTDIR=/usr + +export QT5DIR + +# End /etc/profile.d/qt.sh</literal> +EOF</userinput></screen> + + <para> + If you installed <application>Qt5</application> in a location other + than /usr, you need to update the following configuration files so + that <application>Qt5</application> is correctly found by other packages + and system processes.</para> + + <para>As the <systemitem class="username">root</systemitem> 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 >> /etc/ld.so.conf << EOF +<literal># Begin Qt addition + +/opt/qt5/lib + +# End Qt addition</literal> +EOF + +ldconfig</userinput></screen> + + <indexterm zone="qt5 qt5-config"> + <primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary> + </indexterm> + + <para> + As the <systemitem class="username">root</systemitem> user, create + the <filename>/etc/profile.d/qt.sh</filename> file: + </para> + +<screen role="root"><userinput>cat > /etc/profile.d/qt.sh << EOF +<literal># Begin /etc/profile.d/qt.sh + +QT5DIR=/opt/qt5 + +pathappend /opt/qt5/bin PATH +pathappend /opt/qt5/lib/pkgconfig PKG_CONFIG_PATH + +export QT5DIR + +# 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 > /usr/share/applications/assistant-qt5.desktop << "EOF" <literal>[Desktop Entry] @@ -445,7 +573,7 @@ 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 + xmlpatterns-qt5, and xmlpatternsvalidator-qt5 </seg> <seg> libqgsttools_p.so, libQt5Bootstrap.a, libQt5CLucene.so, libQt5Concurrent.so, @@ -457,12 +585,12 @@ 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 + libQt5Widgets.so, libQt5X11Extras.so, libQt5XmlPatterns.so, and libQt5Xml.so </seg> <seg> /usr/include/qt5, /usr/lib/qt5, - /usr/share/doc/qt5 and + /usr/share/doc/qt5, and /usr/share/qt5 </seg> </seglistitem> Modified: trunk/bootscripts/ChangeLog ============================================================================== --- trunk/bootscripts/ChangeLog Sat Sep 7 19:03:18 2013 (r11794) +++ trunk/bootscripts/ChangeLog Sat Sep 7 21:56:57 2013 (r11795) @@ -1,3 +1,6 @@ +2013-09-08 Bruce Dubbs <[email protected]> + * Update location of autostart in autofs script + 2013-07-25 Igor Živković <[email protected]> * Added restore state to alsa bootscript Modified: trunk/bootscripts/blfs/init.d/autofs ============================================================================== --- trunk/bootscripts/blfs/init.d/autofs Sat Sep 7 19:03:18 2013 (r11794) +++ trunk/bootscripts/blfs/init.d/autofs Sat Sep 7 21:56:57 2013 (r11795) @@ -26,7 +26,7 @@ # # Location of the automount daemon and the init directory # -DAEMON=/usr/sbin/automount +DAEMON=/sbin/automount prog=`basename $DAEMON` MODULE="autofs4" DEVICE="autofs" -- http://linuxfromscratch.org/mailman/listinfo/blfs-book FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page
