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 > frameworks-&kf5-version;.md5 << "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 < 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
