Author: bdubbs
Date: Fri Sep 25 18:59:08 2015
New Revision: 16467

Log:
Add lfs script for completeness

Added:
   trunk/BOOK/kde/plasma5/plasma-all.xml   (contents, props changed)
   trunk/lfs-latest.php
Modified:
   trunk/BOOK/general.ent
   trunk/BOOK/kde/kde.xml
   trunk/BOOK/kde/kf5/kf5-frameworks.xml
   trunk/BOOK/kde/plasma5/plasma5.xml

Modified: trunk/BOOK/general.ent
==============================================================================
--- trunk/BOOK/general.ent      Fri Sep 25 14:41:53 2015        (r16466)
+++ trunk/BOOK/general.ent      Fri Sep 25 18:59:08 2015        (r16467)
@@ -173,3 +173,4 @@
 <!ENTITY kf5apps-download-http 
"http://download.kde.org/stable/applications/&kf5apps-version;/src";>
 <!ENTITY kf5apps-download-ftp  
"ftp://ftp.kde.org/pub/kde/stable/&kf5apps-version;/src";>
 
+<!ENTITY plasma5-version       "5.4.1">

Modified: trunk/BOOK/kde/kde.xml
==============================================================================
--- trunk/BOOK/kde/kde.xml      Fri Sep 25 14:41:53 2015        (r16466)
+++ trunk/BOOK/kde/kde.xml      Fri Sep 25 18:59:08 2015        (r16467)
@@ -24,8 +24,7 @@
   into one set of packages and has numerous appplications that can be
   built on that base.  For KDE5, the libraries, now called KDE Frameworks
   5 or KF5, are separate from the desktop environment called KDE Plasma 5.
-  Both envionments can be installed, but Plasma is not yet considered 
-  stable.</para>
+  Both envionments can be installed side-by-side.</para>
 
   <para>For more information visit the official KDE project site at
   <ulink url="http://www.kde.org/"/>.</para>

Modified: trunk/BOOK/kde/kf5/kf5-frameworks.xml
==============================================================================
--- trunk/BOOK/kde/kf5/kf5-frameworks.xml       Fri Sep 25 14:41:53 2015        
(r16466)
+++ trunk/BOOK/kde/kf5/kf5-frameworks.xml       Fri Sep 25 18:59:08 2015        
(r16467)
@@ -226,8 +226,8 @@
 d2122e29193fbbea680c82d9bd442a00  kpeople-5.14.0.tar.xz
 7e66a2d58a299a125336b9e81600b686  kxmlrpcclient-5.14.0.tar.xz
 #ed07b3649612f4692b8e6714cbf1e6ca  bluez-qt-5.14.0.tar.xz
-0e708135232432d371596d22ed864e3e  baloo-5.14.0.tar.xz
 73a2904c00ba6c1aca8a2efde26a552f  kfilemetadata-5.14.0.tar.xz
+0e708135232432d371596d22ed864e3e  baloo-5.14.0.tar.xz
 349a11564686f99666071b2327910f61  portingAids/kjs-5.14.0.tar.xz
 feb4bb63b373a4fdf7084be2a904d447  portingAids/kdelibs4support-5.14.0.tar.xz
 d3e33cf31a47b33259d3bf2b5385f751  portingAids/khtml-5.14.0.tar.xz
@@ -237,7 +237,7 @@
 8125ed94b4b2a19fef7430b0cc649212  portingAids/krunner-5.14.0.tar.xz</literal>
 EOF</userinput></screen>
 
-  <para>In the above list, notice that three files have been commented out with
+  <para>In the above list, notice that some files have been commented out with
   a hash (#) character. The extra-cmake-modules entry has been commented out
   because it was built earlier in the <xref linkend="kde-prereq"/>. The
   others may be built if the optional dependencies have been installed.</para>

Added: trunk/BOOK/kde/plasma5/plasma-all.xml
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ trunk/BOOK/kde/plasma5/plasma-all.xml       Fri Sep 25 18:59:08 2015        
(r16467)
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE chapter 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 plasma5-download-http 
"http://download.kde.org/stable/plasma5/&plasma5-version;";>
+  <!ENTITY plasma5-download-ftp  " ">
+  <!ENTITY plasma5-md5sum        "See Below">
+  <!ENTITY plasma5-size          "31 MB">
+  <!ENTITY plasma5-buildsize     "1.0 GB">
+  <!ENTITY plasma5-time          "43 SBU">
+]>
+
+<sect1 id="plasma5-build" xreflabel="Plasma-&plasma5-version;">
+  <?dbhtml filename="plasma-all.html"?>
+
+  <sect1info>
+     <othername>$LastChangedBy: bdubbs $</othername>
+     <date>$Date: 2015-09-24 16:44:04 -0500 (Thu, 24 Sep 2015) $</date>
+  </sect1info>
+
+  <title>Building Plasma 5</title>
+
+  <indexterm zone="plasma5-build">
+     <primary sortas="a-kf5">KDE Plasma 5</primary>
+  </indexterm>
+
+  <para>KDE Plasma 5 is a collection of packages based on top of KDE Frameworks
+  5 and QML derived from the monolithic KDE 4 desktop. They implement the KDE
+  Display Environment (Plasma 5).</para>
+
+  &lfs78_checked;
+
+  <para>The instructions below build all of the Plasma 5 packages in one
+  step by using a bash script.  </para>
+
+  <bridgehead renderas="sect3">Package Information</bridgehead>
+  <itemizedlist spacing="compact">
+    <listitem>
+      <para>Download (HTTP): <ulink url="&plasma5-download-http;"/></para>
+    </listitem>
+    <listitem>
+      <para>Download (FTP): <ulink url="&plasma5-download-ftp;"/></para>
+    </listitem>
+    <listitem>
+      <para>Download MD5 sum: &plasma5-md5sum;</para>
+    </listitem>
+    <listitem>
+      <para>Download size: &plasma5-size;</para>
+    </listitem>
+    <listitem>
+      <para>Estimated disk space required: &plasma5-buildsize;</para>
+    </listitem>
+    <listitem>
+      <para>Estimated build time: &plasma5-time;</para>
+    </listitem>
+  </itemizedlist>
+
+  <bridgehead renderas="sect3">Plasma 5 Dependencies</bridgehead>
+
+  <bridgehead renderas="sect4">Required</bridgehead>
+  <para role="required">
+    <xref linkend="kf5-frameworks"/>
+  </para>
+
+  <!--
+  <bridgehead renderas="sect4">Recommended</bridgehead>
+  <para role="recommended">
+    <xref linkend="avahi"/> (DNS-SD backend for KDNSSD),
+    <xref linkend="aspell"/> (Dictionary backend for Sonnet),
+    <xref linkend="libdbusmenu-qt"/> (built with qt5), and 
+    <xref linkend="polkit-qt"/> (Authentication backend for KAuth)
+  </para>
+
+  <bridgehead renderas="sect4">Optional</bridgehead>
+  <para role="optional">
+    <xref linkend="bluez"/> (needed to build Bluez-Qt),
+    <xref linkend="NetworkManager"/> (needed to build NetworkManager-Qt),
+    <ulink 
url="http://www.freedesktop.org/software/ModemManager/";>ModemManager</ulink> 
(needed to build ModemManager-Qt)
+  </para>
+
+  <bridgehead renderas="sect4">Runtime dependency for 
FrameworkIntegration</bridgehead>
+  <para role="optional">
+    <ulink 
url="http://download.kde.org/stable/plasma/5.2.0";>oxygen-fonts</ulink>
+  </para>
+
+  <bridgehead renderas="sect4">Runtime dependencies for kapidox</bridgehead>
+  <para role="optional">
+    <xref linkend="doxygen"/>,
+    <ulink 
url="https://pypi.python.org/packages/source/J/Jinja2/";>Jinja2</ulink>, and
+    <ulink url="http://pyyaml.org/";>PyYAML</ulink>
+  </para>
+
+  <bridgehead renderas="sect4">Additional image formats support in 
KImageFormats</bridgehead>
+  <para role="optional">
+    <xref linkend="jasper"/> and
+    <ulink url="http://www.openexr.com/";>OpenEXR</ulink>
+  </para>
+
+  <bridgehead renderas="sect4">Optional dependencies for KIO</bridgehead>
+  <para role="optional">
+    <xref linkend="mitkrb"/>
+  </para>
+
+  <bridgehead renderas="sect4">Optional dependencies for 
ModemManager-QT</bridgehead>
+  <para role="optional">
+    <ulink 
url="http://www.freedesktop.org/software/ModemManager/";>ModemManager</ulink>
+  </para>
+
+  <bridgehead renderas="sect4">Optional dependencies for Solid</bridgehead>
+  <para role="optional">
+    <xref linkend="udisks2"/>,
+    <xref linkend="upower"/> and
+    <ulink 
url="http://www.freedesktop.org/software/media-player-info/";>media-player-info</ulink>
 (runtime)
+  </para>
+
+  <bridgehead renderas="sect4">Optional dictionary backends for 
Sonnet</bridgehead>
+  <para role="optional">
+    <ulink url="http://hspell.ivrix.org.il/";>Hspell</ulink> and
+    <ulink url="http://hunspell.sourceforge.net/";>Hunspell</ulink>
+  </para>
+-->
+  <para condition="html" role="usernotes">User Notes:
+  <ulink url="&blfs-wiki;/kf5"/></para>
+
+  <sect2>
+    <title>Downloading KDE Frameworks</title>
+
+    <para>
+      The easiest way to get the KDE Plasma5 packages is to use a single
+      <command>wget</command> to fetch them all at once:
+    </para>
+ 
+<screen><userinput>url=http://download.kde.org/stable/plasma/&plasma5-version;/
+wget -r -nH --cut-dirs=3 -A '*.xz' -np $url
+<literal>
+The options used here are: 
+  -r            recurse through child directories
+  -nH           disable generation of host-prefixed directories
+  --cut-dirs=3  remove three levels of directories when saving
+  -A '*.xz'     just get the *.xz files
+  -np           don't get parent directories</literal></userinput></screen>
+
+   </sect2>
+
+  <sect2>
+    <title>Setting Package Order</title>
+
+    <para>
+      The order of building files is important due to internal dependencies.
+      Create the list of files in the proper order as follows:
+    </para>
+
+<screen><userinput>cat &gt; frameworks-&kf5-version;.md5 &lt;&lt; "EOF"
+<literal>206256ed0dda3161d73a61d29835b04b  attica-5.14.0.tar.xz
+#5c5db16c6038e63e7b741fa32e4eaddd  extra-cmake-modules-5.14.0.tar.xz
+6852e7e3c52f18dc0f08811440f7159a  kapidox-5.14.0.tar.xz
+1250214279c42c5802f998ee1f2b91b8  karchive-5.14.0.tar.xz
+5089c3e4f3f9e97a9be526a17264268e  kcodecs-5.14.0.tar.xz
+a4b12b753b855d8fa1240b499bc17135  kconfig-5.14.0.tar.xz
+3b6b2ac66ff2c436c7b8af6d1ca426be  kcoreaddons-5.14.0.tar.xz
+f549e9e7c7340df301b52530817ced0a  kdbusaddons-5.14.0.tar.xz
+60c2eb4b4bc7227213bc1b570be75cfd  kdnssd-5.14.0.tar.xz
+d2eccbda7aa054cfb4e6f0bd3c79aa3f  kguiaddons-5.14.0.tar.xz
+a6d89fc546487e02dc921a7c21cb782d  ki18n-5.14.0.tar.xz
+821deeab6cbd9e37c8e676c7ca0f2eac  kidletime-5.14.0.tar.xz
+187a448cbfd6302bba9bb45a812322b8  kimageformats-5.14.0.tar.xz
+3b0dbc6a5c684ac6d2831df8c7f6d262  kitemmodels-5.14.0.tar.xz
+06a1fbd90019b98f037d59554c6cec84  kitemviews-5.14.0.tar.xz
+69b884e9c9e5705c92e495737b8f5a4d  kplotting-5.14.0.tar.xz
+c0bff34af9beb98133342541cc0ef1cd  kwidgetsaddons-5.14.0.tar.xz
+a50dbdb6c25499bbd958e6df4a5b293d  kwindowsystem-5.14.0.tar.xz
+#ea34cd8d1093724fc60da6e2555f2750  networkmanager-qt-5.14.0.tar.xz
+8e487975994ba2c5811f6830609c73de  solid-5.14.0.tar.xz
+19ee48d23eb44e3ba5c101112474775e  sonnet-5.14.0.tar.xz
+35411b704157912a305c3d4b2b1b5a32  threadweaver-5.14.0.tar.xz
+ea724c2152b88149893784a234c5bbcc  kauth-5.14.0.tar.xz
+d330c841ddf9d3857543daff933471af  kcompletion-5.14.0.tar.xz
+faa443c8a45cb942e2f2b2ae647c695b  kcrash-5.14.0.tar.xz
+48a3a630dc242ba9de061a565b608ea9  kdoctools-5.14.0.tar.xz
+a08cbe17b90a6757affb443cb7cbd499  kpty-5.14.0.tar.xz
+ff33baab025aaa15776c5a47036f2aa9  kunitconversion-5.14.0.tar.xz
+e58351e0a9feb51885593c208060fb1c  kconfigwidgets-5.14.0.tar.xz
+e768f46da97986de5ae853be0af40632  kglobalaccel-5.14.0.tar.xz
+989e314e2c6ac4a1657f9096d17e1766  kpackage-5.14.0.tar.xz
+6bdf66cffc9b3028b4367e7a5e48f571  kservice-5.14.0.tar.xz
+0daa6599557fd00f1679245b38971f21  kservice-5.14.1.tar.xz
+eca764e18afbcef5496183c96c613c91  kservice-5.14.2.tar.xz
+c5004c66f5037ef838421665a08828b1  kservice-5.14.3.tar.xz
+7bb862e6a4897554f224741f9d16f0c2  kdesu-5.14.0.tar.xz
+2eed2c3af124630323aa550cc1fa9378  kemoticons-5.14.0.tar.xz
+d206ae75a9f950e026c7923b272ddc3e  kiconthemes-5.14.0.tar.xz
+037b07877f3a3cd514b9c19b069872f6  kjobwidgets-5.14.0.tar.xz
+dc062d457181a4e1f0b6853cbf55666d  knotifications-5.14.0.tar.xz
+0a0fb3b469fc2e532b6bf9ab19fe8967  ktextwidgets-5.14.0.tar.xz
+9c6ddf667c3a4dfca3f617ec22f3b6bc  kwallet-5.14.0.tar.xz
+dada98dd85d6f60596f36063aeda1a66  kxmlgui-5.14.0.tar.xz
+5df918cc7e7143fca74b00eb7210502c  kbookmarks-5.14.0.tar.xz
+aad540c6a23327756c259afe72e531d1  kio-5.14.0.tar.xz
+46c2fbccef981359cb9af1c73bd8eada  kdeclarative-5.14.0.tar.xz
+fdb3eaa651bf61bbdcef094f281b9caf  kcmutils-5.14.0.tar.xz
+d5094cba8ca4d280d6e817d334fb2dc1  frameworkintegration-5.14.0.tar.xz
+18300dc5a57f07e7d81fba87ca55921b  kinit-5.14.0.tar.xz
+17e952f64c00a844d23f56381fa53f5b  knewstuff-5.14.0.tar.xz
+e66f03050ce37783261c56adea9dd244  knotifyconfig-5.14.0.tar.xz
+74170ab4a66416be46efc6c8f73f7031  kparts-5.14.0.tar.xz
+fd307cea16adbb0eca5cf2349bb2b88a  kactivities-5.14.0.tar.xz
+5a14cc490517fad7b087057b3ec34265  kded-5.14.0.tar.xz
+83039b3a1fc1098f904cfa5afaa38e57  kdewebkit-5.14.0.tar.xz
+2c5c660aea6c55c3f21f29cc3f1df604  ktexteditor-5.14.0.tar.xz
+d560c5c583abe4741b1794b9108ee324  kdesignerplugin-5.14.0.tar.xz
+c0900fcf4a78902a99eeaa7ae3d012e7  plasma-framework-5.14.0.tar.xz
+#644a45b79fd1106a68f0478d89e891e8  modemmanager-qt-5.14.0.tar.xz
+d2122e29193fbbea680c82d9bd442a00  kpeople-5.14.0.tar.xz
+7e66a2d58a299a125336b9e81600b686  kxmlrpcclient-5.14.0.tar.xz
+#ed07b3649612f4692b8e6714cbf1e6ca  bluez-qt-5.14.0.tar.xz
+0e708135232432d371596d22ed864e3e  baloo-5.14.0.tar.xz
+73a2904c00ba6c1aca8a2efde26a552f  kfilemetadata-5.14.0.tar.xz
+349a11564686f99666071b2327910f61  portingAids/kjs-5.14.0.tar.xz
+feb4bb63b373a4fdf7084be2a904d447  portingAids/kdelibs4support-5.14.0.tar.xz
+d3e33cf31a47b33259d3bf2b5385f751  portingAids/khtml-5.14.0.tar.xz
+b98728da482f20bf0331ddbb56429622  portingAids/kjsembed-5.14.0.tar.xz
+e803fc78fb1acf9884621cca1e81fe88  portingAids/kmediaplayer-5.14.0.tar.xz
+057ed7d554d16bb5439496e0537c2ed3  portingAids/kross-5.14.0.tar.xz
+8125ed94b4b2a19fef7430b0cc649212  portingAids/krunner-5.14.0.tar.xz</literal>
+EOF</userinput></screen>
+
+  <para>In the above list, notice that three files have been commented out with
+  a hash (#) character. The extra-cmake-modules entry has been commented out
+  because it was built earlier in the <xref linkend="kde-prereq"/>. The
+  others may be built if the optional dependencies have been installed.</para>
+
+  </sect2>
+
+  <sect2 role="installation">
+    <title>Installation of Plasma5</title>
+
+    &as_root;
+
+    <caution>
+      <para>If inatalling in /opt and there is an existing /opt/kf5 either as a
+      regular directory or a symbolic link, it should be removed (as 
root):</para>
+
+      <screen><userinput>rm -rf /opt/kf5</userinput></screen>
+    </caution>
+
+    <para>
+      First, start a subshell that will exit on error:
+    </para>
+
+
+<screen><userinput>bash -e</userinput></screen>
+
+    <para>
+      Install all of the packages by running the following
+      commands:
+    </para>
+
+<screen><userinput>while read -r line; do
+
+    # Get the file name, ignoring comments and blank lines
+    if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi
+    file=$(echo $line | cut -d" " -f2)
+    
+    pkg=$(echo $file|sed 's|^.*/||')          # Remove directory
+    packagedir=$(echo $pkg|sed 's|\.tar.*||') # Package directory
+
+    tar -xf $file
+    pushd $packagedir
+
+      mkdir build
+      cd    build
+
+      cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
+            -DCMAKE_PREFIX_PATH=$QT5DIR        \
+            -DCMAKE_BUILD_TYPE=Release         \
+            -DLIB_INSTALL_DIR=lib              \
+            -DBUILD_TESTING=OFF                \
+            -Wno-dev .. 
+      make
+      as_root make install
+  popd
+
+  rm -rf $packagedir
+  as_root /sbin/ldconfig
+
+done &lt; frameworks-&kf5-version;.md5
+
+exit</userinput></screen>
+
+    <note><para>Any modules that have been omitted can be installed later by
+    using the same mkdir build; cd build; cmake; make; make install procedure
+    as above.</para></note>
+
+    <para>Sometimes the installation paths are hardcoded into installed files.
+    If the installed directory is not /usr, rename the directory and create a
+    symlink:</para>
+    
+    <screen><userinput>mv -v /opt/kf5 /opt/kf5-&kf5-version;
+ln -sfvn kf5-&kf5-version; /opt/kf5</userinput></screen>
+
+  </sect2>
+
+    <sect2 role="commands">
+    <title>Command Explanations</title>
+
+    <para>
+      <parameter>-DCMAKE_PREFIX_PATH=$QT5DIR</parameter>: This switch is used
+      to allow cmake to find the proper Qt libraries.
+    </para>
+
+    <para>
+      <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch is used
+      to apply higher level of the compiler optimizations.
+    </para>
+
+    <para>
+      <parameter>-DLIB_INSTALL_DIR=lib</parameter>: This switch is used
+      to get libraries to install to <filename
+      class="directory">$KF5_PREFIX/lib</filename> instead of <filename
+      class="directory">$KF5_PREFIX/lib64</filename> on a 64 bit system.
+    </para>
+
+    <para>
+      <parameter>-DBUILD_TESTING=OFF</parameter>: This switch is used to 
prevent
+      building test programs and libraries that are of no use to an end user.
+    </para>
+
+  </sect2>
+  <sect2 role="content">
+    <title>Contents</title>
+
+    <segmentedlist>
+      <segtitle>Installed Programs</segtitle>
+      <segtitle>Installed Libraries</segtitle>
+      <segtitle>Installed Directories</segtitle>
+
+      <seglistitem>
+        <seg>
+          checkXML5, depdiagram-generate, depdiagram-generate-all, 
depdiagram-prepare,
+          desktoptojson, kactivitymanagerd, kbuildsycoca5, 
kconfig_compiler_kf5,
+          kcookiejar5, kdebugdialog5, kded5, kdeinit5, kdeinit5_shutdown, 
kdeinit5_wrapper,
+          kf5-config, kf5kross, kgenapidox, kgendesignerplugin, 
genframeworksapidox,
+          kglobalaccel5, kiconfinder5, kjs5, kjscmd5, kjsconsole, 
kmailservice5,
+          kpackagelauncherqml, kpackagetool5, kquitapp5, kreadconfig5, kshell5,
+          ktelnetservice5, ktrash5, kwalletd5, kwrapper5, kwriteconfig5, 
meinproc5,
+          plasmapkg2, preparetips5, and solid-hardware5
+        </seg>
+        <seg>
+          libkdeinit5_kded5.so, libkdeinit5_klauncher.so, libKF5Activities.so,
+          libKF5Archive.so, libKF5Attica.so, libKF5Auth.so, libKF5BluezQt.so,
+          libKF5Bookmarks.so, libKF5Codecs.so, libKF5Completion.so,
+          libKF5ConfigCore.so, libKF5ConfigGui.so, libKF5ConfigWidgets.so,
+          libKF5CoreAddons.so, libKF5Crash.so, libKF5DBusAddons.so,
+          libKF5Declarative.so, libKF5DNSSD.so, libKF5Emoticons.so,
+          libKF5GlobalAccelPrivate.so, libKF5GlobalAccel.so, 
libKF5GuiAddons.so,
+          libKF5I18n.so, libKF5IconThemes.so, libKF5IdleTime.so,
+          libKF5ItemModels.so, libKF5ItemViews.so, libKF5JobWidgets.so, 
libKF5JSApi.so,
+          libKF5JsEmbed.so, libKF5JS.so, libKF5KCMUtils.so, 
libKF5KDELibs4Support.so,
+          libKF5KHtml.so, libKF5KIOCore.so, libKF5KIOFileWidgets.so, 
libKF5KIONTLM.so,
+          libKF5KIOWidgets.so, libKF5KrossCore.so, libKF5KrossUi.so, 
libKF5MediaPlayer.so,
+          libKF5ModemManagerQt.so, libKF5NetworkManagerQt.so, 
libKF5NewStuff.so,
+          libKF5Notifications.so, libKF5NotifyConfig.so, libKF5Package.so,
+          libKF5Parts.so, libKF5PeopleBackend.so, libKF5People.so,
+          libKF5PeopleWidgets.so, libKF5PlasmaQuick.so, libKF5Plasma.so,
+          libKF5Plotting.so, libKF5Pty.so, libKF5QuickAddons.so, 
libKF5Runner.so,
+          libKF5Service.so, libKF5Solid.so, libKF5SonnetCore.so, 
libKF5SonnetUi.so,
+          libKF5Style.so, libKF5Su.so, libKF5TextEditor.so, 
libKF5TextWidgets.so,
+          libKF5ThreadWeaver.so, libKF5UnitConversion.so, libKF5Wallet.so,
+          libKF5WebKit.so, libKF5WidgetsAddons.so, libKF5WindowSystem.so,
+          libKF5XmlGui.so, libKF5XmlRpcClient.so, libKF5XsltKde.a, and
+          libkwalletbackend5.so
+        </seg>
+        <seg>
+          $KF5_PREFIX/include/KF5/{Attica,BluezQt,KActivities,KArchive,KAuth},
+          $KF5_PREFIX/include/KF5/{KBookmarks,KCMUtils,KCodecs,KCompletion},
+          
$KF5_PREFIX/include/KF5/{KConfigCore,KConfigGui,KConfigWidgets,KCoreAddons},
+          
$KF5_PREFIX/include/KF5/{KCrash,KDBusAddons,KDeclarative,KDELibs4Support},
+          
$KF5_PREFIX/include/KF5/{KDESu,KDEWebKit,KDNSSD,KEmoticons,KGlobalAccel},
+          
$KF5_PREFIX/include/KF5/{KGuiAddons,KHtml,KI18n,KIconThemes,KIdleTime},
+          $KF5_PREFIX/include/KF5/{kio,KIOCore,KIOFileWidgets,KIOWidgets},
+          
$KF5_PREFIX/include/KF5/{KItemModels,KItemViews,KJobWidgets,kjs,KJsEmbed},
+          $KF5_PREFIX/include/KF5/{KMediaPlayer,KNewStuff3,KNotifications},
+          
$KF5_PREFIX/include/KF5/{KNotifyConfig,KPackage,KParts,KPeople,KPlotting},
+          
$KF5_PREFIX/include/KF5/{KPty,KrossCore,KrossUi,KRunner,KService,KStyle},
+          
$KF5_PREFIX/include/KF5/{KTextEditor,KTextWidgets,KUnitConversion,KWallet},
+          $KF5_PREFIX/include/KF5/{KWidgetsAddons,KWindowSystem,KXmlGui},
+          
$KF5_PREFIX/include/KF5/{KXmlRpcClient,ModemManagerQt,NetworkManagerQt},
+          $KF5_PREFIX/include/KF5/{plasma,Plasma,Solid,SonnetCore},
+          $KF5_PREFIX/include/KF5/{SonnetUi,ThreadWeaver,wtf,XsltKde},
+          
$KF5_PREFIX/lib/cmake/{KDED,KDELibs4,KF5Activities,KF5Archive,KF5Attica},
+          $KF5_PREFIX/lib/cmake/{KF5Auth,KF5BluezQt,KF5Bookmarks,KF5Codec},
+          $KF5_PREFIX/lib/cmake/{KF5Completion,KF5Config,KF5ConfigWidgets},
+          $KF5_PREFIX/lib/cmake/{KF5CoreAddons,KF5Crash,KF5DBusAddons},
+          $KF5_PREFIX/lib/cmake/{KF5Declarative,KF5DesignerPlugin,KF5DNSSD},
+          
$KF5_PREFIX/lib/cmake/{KF5DocTools,KF5Emoticons,F5FrameworkIntegration},
+          $KF5_PREFIX/lib/cmake/{KF5GlobalAccel,KF5GuiAddons,KF5I18n},
+          $KF5_PREFIX/lib/cmake/{KF5IconThemes,KF5IdleTime,KF5Init},
+          $KF5_PREFIX/lib/cmake/{KF5ItemModels,KF5ItemViews,KF5JobWidgets},
+          $KF5_PREFIX/lib/cmake/{KF5JS,KF5JsEmbed,KF5KCMUtils},
+          $KF5_PREFIX/lib/cmake/{KF5KDE4Support,KF5KDELibs4Support},
+          $KF5_PREFIX/lib/cmake/{KF5KHtml,KF5KIO,KF5Kross,KF5MediaPlayer},
+          
$KF5_PREFIX/lib/cmake/{KF5ModemManagerQt,KF5NetworkManagerQt,KF5NewStuff},
+          $KF5_PREFIX/lib/cmake/{KF5Notifications,KF5NotifyConfig,KF5Package},
+          $KF5_PREFIX/lib/cmake/{KF5Parts,KF5People,KF5Plasma,KF5PlasmaQuick},
+          $KF5_PREFIX/lib/cmake/{KF5Plotting,KF5Pty,KF5Runner,KF5Service},
+          $KF5_PREFIX/lib/cmake/{KF5Solid,KF5Sonnet,KF5Su,KF5TextEditor},
+          $KF5_PREFIX/lib/cmake/{KF5TextWidgets,KF5ThreadWeaver},
+          $KF5_PREFIX/lib/cmake/{KF5UnitConversion,KF5Wallet,KF5WebKit},
+          $KF5_PREFIX/lib/cmake/{KF5WidgetsAddons,KF5WindowSystem,KF5XmlGui},
+          $KF5_PREFIX/lib/cmake/KF5XmlRpcClient,
+          $KF5_PREFIX/lib/libexec/{kauth,kf5},
+          $KF5_PREFIX/lib/python&python2-majorver;/site-packages/kapidox,
+          $KF5_PREFIX/lib/qt5/{designer,imageformats,kactivitymanagerd},
+          $KF5_PREFIX/lib/qt5/{kauth,kf5,org.kde.kglobalaccel5.platforms},
+          $KF5_PREFIX/lib/qt5/{plasma,platformthemes,script},
+          $KF5_PREFIX/lib/qml/org/kde/{activities,bluezqt,draganddrop},
+          $KF5_PREFIX/lib/qml/org/kde/{kcoreaddons,kio,kquickcontrols},
+          $KF5_PREFIX/lib/qml/org/kde/{kquickcontrolsaddons,kwindowsystem},
+          $KF5_PREFIX/lib/qml/org/kde/{people,plasma,private,runnermodel},
+          $KF5_PREFIX/lib/qml/org/kde/solid,
+          $KF5_PREFIX/lib/qml/QtQuick/Controls/Styles/Plasma,
+          
$KF5_PREFIX/share/doc/HTML/*/{kdebugdialog5,kdoctools5-common,kioslave5},
+          $KF5_PREFIX/share/emoticons/Glass,
+          
$KF5_PREFIX/share/{katepart5,knotifications5,kservices5,kservicetypes5},
+          $KF5_PREFIX/share/kf5/{infopage,kactivitymanagerd,kauth,kcharselect},
+          
$KF5_PREFIX/share/kf5/{kconfigwidgets,kcookiejar,kdoctools,khtml,kjava},
+          
$KF5_PREFIX/share/kf5/{kjs,kmoretools,knewstuff,kpeople,kssl,kxmlgui},
+          $KF5_PREFIX/share/kf5/{locale,sonnet,widgets},
+          $KF5_PREFIX/share/kxmlgui5/{katepart,khtml}i, and
+          $KF5_PREFIX/share/plasma/{desktoptheme,services}
+        </seg>
+      </seglistitem>
+    </segmentedlist>
+
+  </sect2>
+
+</sect1>
+

Modified: trunk/BOOK/kde/plasma5/plasma5.xml
==============================================================================
--- trunk/BOOK/kde/plasma5/plasma5.xml  Fri Sep 25 14:41:53 2015        (r16466)
+++ trunk/BOOK/kde/plasma5/plasma5.xml  Fri Sep 25 18:59:08 2015        (r16467)
@@ -15,8 +15,13 @@
 
   <title>KDE Plasma 5</title>
  
-  <para>Placeholder</para>
+  <para>KDE Plasma 5 is a desktop environment built using KDE Frameworks 5 and
+  QML which runs on top of a fully hardware accelerated graphics stack using
+  Qt5, QtQuick 2 and an OpenGL(-ES) scenegraph. </para>
 
-  <!--<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="automoc4.xml"/>-->
+  <para>No additional configuration is needed before building the KDE Plasma 5
+  because it uses the same configuration that KDE Frameworks 5 uses.</para>
+
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; 
href="plasma-all.xml"/>
 
 </chapter>

Added: trunk/lfs-latest.php
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ trunk/lfs-latest.php        Fri Sep 25 18:59:08 2015        (r16467)
@@ -0,0 +1,423 @@
+#! /usr/bin/php
+<?php
+$dirs = array();
+$vers = array();
+
+date_default_timezone_set( "GMT" );
+$date = date( "Y-m-d H:i:s" );
+
+// Special cases
+$exceptions = array();
+//$exceptions[ 'gmp' ] = "UPDIR=/.*(gmp-\d[\d\.-]*\d).*/:DOWNDIR=";
+
+$regex = array();
+$regex[ 'bzip2'    ] = "/^.*current version is ([\d\.]+).*$/";
+$regex[ 'expect'   ] = "/^.*Download expect([\d\.]+)\.tar.*$/";
+$regex[ 'expat'    ] = "/^.*Download expat-([\d\.]+)\.tar.*$/";
+$regex[ 'intltool' ] = "/^.*Latest version is (\d[\d\.]+\d).*$/";
+$regex[ 'less'     ] = "/^.*current released version is less-(\d+).*$/";
+#$regex[ 'mpc'      ] = "/^Version ([\d\.]+).*$/";
+$regex[ 'mpc'      ] = "/^(\d\.\d\.\d).*$/";
+$regex[ 'mpfr'     ] = "/^mpfr-([\d\.]+)\.tar.*$/";
+$regex[ 'sysvinit' ] = "/^.*sysvinit-([\d\.]+)dsf\.tar.*$/";
+$regex[ 'tcl-core' ] = "/^.*Download tcl([\d\.]+)-src.*$/";
+$regex[ 'tzdata'   ] = "/^.*tzdata([\d]+[a-z]).*$/";
+$regex[ 'xz'       ] = "/^.*xz-([\d\.]*\d).*$/";
+$regex[ 'zlib'     ] = "/^.*zlib ([\d\.]*\d).*$/";
+
+function find_max( $lines, $regex_match, $regex_replace )
+{
+  $a = array();
+  if ( ! is_array( $lines ) ) return -1;
+
+  foreach ( $lines as $line )
+  {
+     if ( ! preg_match( $regex_match, $line ) ) continue; 
+
+     // Isolate the version and put in an array
+     $slice = preg_replace( $regex_replace, "$1", $line );
+     if ( $slice == $line ) continue; 
+
+     array_push( $a, $slice );     
+  }
+
+  // SORT_NATURAL requires php-5.4.0 or later
+  rsort( $a, SORT_NATURAL );  // Max version is at the top
+  return ( isset( $a[0] ) ) ? $a[0] : -2;
+}
+
+function http_get_file( $url )
+{
+  exec( "curl --location --silent --max-time 30 $url", $dir );
+//print_r($dir);
+  $s   = implode( "\n", $dir );
+  $dir = strip_tags( $s );
+  return explode( "\n", $dir );
+}
+
+function max_parent( $dirpath, $prefix )
+{
+  // First, remove a directory
+  $dirpath  = rtrim  ( $dirpath, "/" );    // Trim any trailing slash
+  $position = strrpos( $dirpath, "/" );
+  $dirpath  = substr ( $dirpath, 0, $position );
+
+  $lines = http_get_file( $dirpath );
+
+  $regex_match   = "#${prefix}[\d\.]+/#";
+  $regex_replace = "#^.*(${prefix}[\d\.]+)/.*$#";
+  $max           = find_max( $lines, $regex_match, $regex_replace );
+
+  return "$dirpath/$max"; 
+}
+
+function get_packages( $package, $dirpath )
+{
+  global $exceptions;
+  global $regex;
+
+  if ( $package == "vim" ) 
$dirpath="http://mirrors-usa.go-parts.com/pub/vim/unix";;
+
+  // Check for ftp
+  if ( preg_match( "/^ftp/", $dirpath ) ) 
+  { 
+    $dirpath  = substr( $dirpath, 6 );           // Remove ftp://
+    $dirpath  = rtrim ( $dirpath, "/" );         // Trim any trailing slash
+    $position = strpos( $dirpath, "/" );         // Divide at first slash
+    $server   = substr( $dirpath, 0, $position );
+    $path     = substr( $dirpath, $position );
+
+    $conn = ftp_connect( $server );
+    ftp_login( $conn, "anonymous", "" ); 
+
+    // See if we need special handling
+    if ( isset( $exceptions[ $package ] ) )
+    {
+       $specials = explode( ":", $exceptions[ $package ] );
+
+       foreach ( $specials as $i )
+       {
+          list( $op, $regexp ) = explode( "=", $i );
+
+          switch ($op)
+          {
+            case "UPDIR":
+              // Remove last dir from $path
+              $position = strrpos( $path, "/" );
+              $path = substr( $path, 0, $position );
+
+              // Get dir listing
+              $lines = ftp_rawlist ($conn, $path);              
+              $max   = find_max( $lines, $regexp, $regexp );
+              break;
+
+            case "DOWNDIR":
+              // Append found directory
+              $path .= "/$max";
+              break;
+
+            default:
+              echo "Error in specials array for $package\n";
+              return -5;
+              break;
+          }
+       }
+    }
+
+    $lines = ftp_rawlist ($conn, $path);
+    ftp_close( $conn );
+  }
+  else // http
+  {
+     // Customize http directories as needed
+     if ( $package == "tzdata" )
+     {
+        // Remove two directories
+        $dirpath  = rtrim  ( $dirpath, "/" );    // Trim any trailing slash
+        $position = strrpos( $dirpath, "/" );
+        $dirpath  = substr ( $dirpath, 0, $position );
+        $position = strrpos( $dirpath, "/" );
+        $dirpath  = substr ( $dirpath, 0, $position );
+        //echo "$dirpath\n";
+     }
+
+     if ( $package == "mpc" )
+     {
+        $dirpath = 
"http://www.multiprecision.org/index.php?prog=mpc&page=download";;
+     }
+
+     if ( $package == "bzip2" ) 
+     {
+        // Remove one directory
+        $dirpath  = rtrim  ( $dirpath, "/" );    // Trim any trailing slash
+        $position = strrpos( $dirpath, "/" );
+        $dirpath  = substr ( $dirpath, 0, $position );
+        //echo "$dirpath\n";
+     }
+
+     if ( $package == "mpfr" )
+        $dirpath  = "http://mpfr.loria.fr/mpfr-current";;
+
+     if ( $package == "expat" )
+        $dirpath  = "http://sourceforge.net/projects/expat/files";;
+
+     if ( $package == "intltool" )
+        $dirpath  = "https://launchpad.net/intltool/trunk";;
+
+     if ( $package == "procps-ng" )
+        $dirpath  = "http://sourceforge.net/projects/procps-ng/files";;
+
+     if ( $package == "e2fsprogs" )
+        $dirpath  = 
"http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs";;
+
+     if ( $package == "expect"    ||
+          $package == "flex"      ||
+          $package == "psmisc"    )
+     {
+        $dirpath  = "http://sourceforge.net/projects/$package/files";;
+     }
+
+     if ( $package == "tcl-core" )
+     {
+        $dirpath  = "http://sourceforge.net/projects/tcl/files";;
+     }
+
+     if ( $package == "gcc"        ) $dirpath = max_parent( $dirpath, "gcc-" );
+     if ( $package == "util-linux" ) $dirpath = max_parent( $dirpath, "v." );
+
+     $lines = http_get_file( $dirpath );
+
+     if ( ! is_array( $lines ) ) return -6;
+  } // End fetch
+
+  if ( isset( $regex[ $package ] ) )
+  {
+     // Custom search for latest package name
+     foreach ( $lines as $l )
+     {
+        $ver = preg_replace( $regex[ $package ], "$1", $l );
+        if ( $ver == $l ) continue;
+        return $ver;  // Return first match of regex
+     }
+
+     return -7;  // This is an error
+  }
+
+  if ( $package == "shadow" )
+  {
+     return find_max( $lines, "/shadow-/", "/^.*shadow-([\d\.]*\d).*$/" );
+  }
+
+  if ( $package == "perl" )  // Custom for perl
+  {
+     $tmp = array();
+
+     foreach ( $lines as $l )
+     {
+        if ( preg_match( "/sperl/", $l ) ) continue; // Don't want this
+        $ver = preg_replace( "/^.*perl-([\d\.]+\d)\.tar.*$/", "$1", $l );
+        if ( $ver == $l ) continue;
+        list( $s1, $s2, $rest ) = explode( ".", $ver );
+        if ( $s2 % 2 == 1 ) continue; // Remove odd minor versions
+        array_push( $tmp, $l );
+     }
+
+     $lines = $tmp;
+  }
+
+  if ( $package == "attr" ||  
+       $package == "acl"  )
+  {
+     return find_max( $lines, "/$package/", 
"/^.*$package-([\d\.-]*\d)\.src.*$/" );
+  }
+
+  if ( $package == "e2fsprogs" )
+     return find_max( $lines, "/v\d/", "/^.*v(\d[\d\.]+\d).*$/" );
+
+  if ( $package == "XML-Parser" )
+     return find_max( $lines, "/$package/", 
"/^.*$package-([\d\._]*\d).tar.*$/" );
+
+  if ( $package == "gmp" )
+     return find_max( $lines, "/$package/", 
"/^.*$package-([\d\._]*\d[a-z]?).tar.*$/" );
+
+  if ( $package == "grub" )
+     return find_max( $lines, "/grub/", "/^.*grub-(\d\..*).tar.xz.*$/" );
+
+  // Most packages are in the form $package-n.n.n
+  // Occasionally there are dashes (e.g. 201-1)
+  return find_max( $lines, "/$package/", "/^.*$package-([\d\.-]*\d)\.tar.*$/" 
);
+}
+
+function get_current()
+{
+   global $dirs;
+   global $vers;
+
+   // Fetech from svn and get wget-list
+   $current = array();
+   $lfssvn = "svn://svn.linuxfromscratch.org/LFS/trunk";
+
+   $tmpdir = exec( "mktemp -d /tmp/lfscheck.XXXXXX" );
+   $cdir   = getcwd();
+   chdir( $tmpdir );
+   exec ( "svn --quiet export $lfssvn LFS" );
+   chdir( $cdir );
+
+   $PAGE       = "$tmpdir/LFS/BOOK/chapter03/chapter03.xml";
+   $STYLESHEET = "$tmpdir/LFS/BOOK/stylesheets/wget-list.xsl";
+
+   exec( "xsltproc --xinclude --nonet $STYLESHEET $PAGE", $current );
+   exec( "rm -rf $tmpdir" );
+
+   foreach ( $current as $line )
+   {
+      $file = basename( $line ) . "\n";
+      if ( preg_match( "/patch$/", $file ) ) { continue; } // Skip patches
+
+      $file = preg_replace( "/bz2/", '', $file ); // The 2 confusses the regex
+
+      $file        = rtrim( $file );
+      $pkg_pattern = "/(\D*).*/";
+      //$pattern     = "/\D*(\d.*\d)\D*/";
+      $pattern     = "/\D*(\d.*\d)\D*/";
+
+      if ( preg_match( "/e2fsprogs/", $file ) )
+      {
+        $pattern = "/e2\D*(\d.*\d)\D*/";
+        $pkg_pattern = "/(e2\D*).*/";
+      }
+
+      else if ( preg_match( "/tzdata/", $file ) )
+      {
+        $pattern = "/\D*(\d.*[a-z])\.tar\D*/";
+      }
+
+      else if ( preg_match( "/gmp/", $file ) )
+      {
+        $pattern = "/\D*(\d.*[a-z])\.tar\D*/";
+      }
+
+      else if ( preg_match( "/eudev.*manpages/", $file ) )
+      {
+        continue;
+      }
+
+      $version = preg_replace( $pattern, "$1", $file );   // Isolate version
+      $version = preg_replace( "/^\d-/", "", $version );  // Remove leading #-
+
+      // Touch up package names
+      $pkg_name = preg_replace( $pkg_pattern, "$1", $file );
+      $pkg_name = trim( $pkg_name, "-" );
+
+      if ( preg_match( "/bzip|iproute/", $pkg_name ) ) { $pkg_name .= "2"; }
+      if ( preg_match( "/^m$/"         , $pkg_name ) ) { $pkg_name .= "4"; }
+      if ( preg_match( "/shadow/"      , $pkg_name ) ) { $pkg_name  = 
"shadow"; }
+
+      $dirs[ $pkg_name ] = dirname( $line );
+      $vers[ $pkg_name ] = $version;
+   }
+}
+
+function mail_to_lfs()
+{
+   global $date;
+   global $vers;
+   global $dirs;
+
+   $to      = "[email protected]";
+   $from    = "[email protected]";
+   $subject = "LFS Package Currency Check - $date GMT";
+   $headers = "From: [email protected]";
+
+   $message = "Package         LFS      Upstream  Flag\n\n";
+
+   foreach ( $dirs as $pkg => $dir )
+   {
+      //if ( $pkg != "gmp" ) continue;  //debug
+      $v = get_packages( $pkg, $dir );
+
+      $flag = ( $vers[ $pkg ] != $v ) ? "*" : "";
+
+      // Pad for output
+      $pad = "                ";
+      $p   = substr( $pkg          . $pad, 0, 15 );
+      $l   = substr( $vers[ $pkg ] . $pad, 0, 10 );
+      $c   = substr( $v            . $pad, 0, 10 );
+
+      $message .= "$p $l $c $flag\n";
+   }
+
+   //echo $message;
+   exec ( "echo '$message' | mailx -r $from -s '$subject' $to" );
+}
+
+function html()
+{
+
+   global $date;
+   global $vers;
+   global $dirs;
+
+   echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+                      'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+<title>LFS Package Currency Check - $date</title>
+<style type='text/css'>
+h1, h2 {
+   text-align      : center;
+}
+
+table {
+   border-width    : 1px;
+   border-spacing  : 0px;
+   border-style    : outset;
+   border-color    : gray;
+   border-collapse : separate;
+   background-color: white;
+   margin          : 0px auto;
+}
+
+table th {
+   border-width    : 1px;
+   padding         : 2px;
+   border-style    : inset;
+   border-color    : gray;
+   background-color: white;
+}
+
+table td {
+   border-width    : 1px;
+   padding         : 2px;
+   border-style    : inset;
+   border-color    : gray;
+   background-color: white;
+}
+</style>
+
+</head>
+<body>
+<h1>LFS Package Currency Check</h1>
+<h2>As of $date GMT</h1>
+
+<table>
+<tr><th>LFS Package</th> <th>LFS Version</th> <th>Latest</th> 
<th>Flag</th></tr>\n";
+
+   // Get the latest version of each package
+   foreach ( $dirs as $pkg => $dir )
+   {
+      $v    = get_packages( $pkg, $dir );
+      $flag = ( $vers[ $pkg ] != $v ) ? "*" : "";
+      echo "<tr><td>$pkg</td> <td>${vers[ $pkg ]}</td> <td>$v</td> 
<td>$flag</td></tr>\n";
+   }
+
+   echo "</table>
+</body>
+</html>\n";
+
+}
+
+get_current();  // Get what is in the book
+mail_to_lfs();
+//html();  // Write html output
+?>
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-book
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to