From da1be5a21ba06235b67a999f696ec66e35dc17a1 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Fri, 9 Jan 2015 00:06:49 +0100 Subject: Prepare for new KDE 5: Frameworks 5.6.0, Plasma 5.1.2, Applications 14.12.0. KDE 5_1501 ========== This is going to be KDE 5 for Slackware-current, composed of Frameworks 5.6.0, Plasma 5.1.2 and Applications 14.12.0. Note that there is still a lot of KDE 4 stuff in here, which is necessary to support all the Applications that have not yet been ported to KDE Frameworks 5. The Applications 15.04 (march 2015) release should offer a lot more KF5 ports. Preliminary build procedure (not verified 100% yet): ---------------------------------------------------- - (crude) get rid of Slackware's KDE: removepkg /var/log/packages/*-4.10.5-* - build all the deps using "updates.SlackBuild" script in the "deps/" directory - note that extra-cmake-modules is required here as well as when building the frameworks, so I just copied it from frameworks to deps. - logoff/login to activate Qt5 profile script. - removepkg akonadi-qt5 or else kdepimlibs-4.14.3 picks up Qt5 dependencies and its compilation will fail as a result - build all the KDE 4 stuff in the "kde/" directory, using "./KDE.SlackBuild kde libs kdebase:nepomuk-core kdepimlibs kdebase kdebindings kdebase:kde-workspace k depim extragear" - installpkg akonadi-qt5 - build the remaining KDE 5 stuff in the "kde/" directory, using "./KDE.SlackBui ld frameworks plasma plasma-extra polkit-kde applications" - build kdei ============================================================================== Eric Hameleers / alien at slackware dot com / 09-jan-2015 --- kde/KDE.SlackBuild | 90 +++++++++++++++++++++++++++++------------------------- 1 file changed, 48 insertions(+), 42 deletions(-) (limited to 'kde/KDE.SlackBuild') diff --git a/kde/KDE.SlackBuild b/kde/KDE.SlackBuild index c420986..33d4902 100755 --- a/kde/KDE.SlackBuild +++ b/kde/KDE.SlackBuild @@ -149,27 +149,50 @@ precheck() { RETVAL=0 for SRCFILE in $(find $CWD/src -name "*.tar.?z*") ; do - if cat modules/* |grep "^ *#" |grep -wq $(echo $(basename $SRCFILE) | rev | cut -f2- -d- | rev)$ ; then - echo "Source file '$(basename $SRCFILE)' is commented out in 'modules' !" - elif cat package-blacklist |grep -v "^ *#" |grep -wq $(echo $(basename $SRCFILE) | rev | cut -f2- -d- | rev)$ ; then - echo "Source file '$(basename $SRCFILE)' is on the package-blacklist !" - elif ! cat modules/* |grep -v "^ *#" |grep -wq $(echo $(basename $SRCFILE) | rev | cut -f2- -d- | rev) ; then - echo "Source file '$(basename $SRCFILE)' is not mentioned in 'modules' !" + # Check if the source tarball is mentioned in pkgsrc/ + # meaning its package will get a different name: + PKGSRC=$(echo $SRCFILE |rev |cut -f2- -d- |cut -f1,2 -d/ |rev) + PKGBASE=$(basename $(grep -lw $PKGSRC $CWD/pkgsrc/*) 2>/dev/null) + if [ -z "$PKGBASE" ]; then + PKGBASE=$(echo $(basename $SRCFILE) |rev |cut -f2- -d- |rev) + fi + # We now have the package base name and we can start looking: + PKGTGT=$(grep -w ${PKGBASE}$ modules/*) + if [ -n "$(echo $PKGTGT |cut -d: -f2- |grep "^ *#")" ]; then + echo "Source file '$(basename $SRCFILE)' is commented out: ($PKGTGT) !" + elif cat package-blacklist |grep -v "^ *#" |grep -wq ${PKGBASE}$ ; then + echo "Source file '$(basename $SRCFILE)' is on the package-blacklist ($PKGBASE) !" + elif ! cat modules/* |grep -v "^ *#" |grep -wq ${PKGBASE} ; then + echo "Source file '$(basename $SRCFILE)' is not mentioned in 'modules' ($PKGBASE) !" RETVAL=1 fi done - for MODULE in $(cat $CWD/modules/* | grep -v "^#") ; do - #if [ -z "$(find $CWD/src -name ${MODULE}-*)" ] ; then - if [ -z "$(find $CWD/src -name $MODULE-*.tar.* |grep -E "$MODULE-[^-]+.tar.*$|$MODULE-[0-9].+.tar.*$")" ] ; then - echo "Module '$MODULE' does not have a matching source tarball !" + # Do we have duplicate package names? + PKGDUP="$(cat $CWD/modules/* |grep -v "^ *#" |grep -v "^$" |sort |uniq -d)" + if [ -n "$PKGDUP" ] ; then + echo "Multiply-defined package names: '$(echo $PKGDUP)'" + RETVAL=1 + fi + + for MODULE in $(cat $CWD/modules/* | grep -v "^ *#") ; do + # First find out if the pkg source is different from the actual pkg name: + if [ -f $CWD/pkgsrc/$MODULE ]; then + MODREF=$(cat $CWD/pkgsrc/$MODULE) + MODSRC="$(find $CWD/src -path $CWD/src/$MODREF-*.tar.* |grep -E "$MODREF-[^-]+.tar.*$|$MODREF-[0-9].+.tar.*$")" + else + MODREF=$MODULE + MODSRC="$(find $CWD/src -name $MODULE-*.tar.* |grep -E "$MODULE-[^-]+.tar.*$|$MODULE-[0-9].+.tar.*$")" + fi + if [ -z "$MODSRC" ] ; then + echo "Module '$MODULE' does not have a matching source tarball ($MODREF)!" if [ "$CHECKOUT" = "yes" -o "$CHECKOUT" = "YES" ]; then echo "Checking out KDE component at branch '$VERSION'." - git archive --format=tar --prefix {$MODULE}-${VERSION}/ --remote ${KDEGITURI}/${MODULE}.git v${VERSION} | xz -c > $CWD/src/${MODULE}-${VERSION}.tar.xz + git archive --format=tar --prefix {$(basename $MODREF)}-${VERSION}/ --remote ${KDEGITURI}/$(basename ${MODREF}).git v${VERSION} | xz -c > $CWD/src/${MODREF}-${VERSION}.tar.xz RETVAL=$? if [ $RETVAL -ne 0 ]; then - echo "Error while checking out '$MODULE' !" - mv $CWD/src/${MODULE}-${VERSION}.tar.xz $CWD/src/${MODULE}-${VERSION}.tar.xz.failed + echo "Error while checking out '$MODULE' ($MODREF) !" + mv $CWD/src/${MODREF}-${VERSION}.tar.xz $CWD/src/${MODREF}-${VERSION}.tar.xz.failed fi else RETVAL=1 @@ -184,9 +207,10 @@ precheck() { done if [ $RETVAL -eq 0 ]; then - echo "Check complete, build starts in 5 seconds" + echo "Check complete, build starts in 5 seconds.." sleep 5 else + echo "Precheck failed with error code '$RETVAL'." exit 1 fi } @@ -504,38 +528,20 @@ mkdir -p $SLACK_KDE_BUILD_DIR # And kde-baseapps is rebuilt after kdewebdev because it can then pickup # libtidy and enable the Konqueror validators plugin to validate HTML. KDEMODS=" \ + kdelibs \ + kdebase:nepomuk-core \ + kdepimlibs \ + kdebase \ + kdebindings + kdebase:kde-workspace \ + kdepim \ + extragear \ frameworks \ plasma \ plasma-extra \ + polkit-kde \ + applications \ " - #kdebase:nepomuk-core \ - #kdepimlibs \ - #kdebase \ - #kdesdk \ - #extragear:libkscreen \ - #kdegraphics \ - #kdebindings \ - #kdebase:kde-workspace \ - #kdeaccessibility \ - #kdeutils \ - #kdemultimedia \ - #extragear:libktorrent \ - #kdenetwork \ - #oxygen-icons \ - #kdeadmin \ - #kdeartwork \ - #kdegames \ - #kdetoys \ - #kdepim \ - #kdepim-runtime \ - #kdenetwork:kopete \ - #kdeedu \ - #kdewebdev \ - #kdebase:kde-baseapps \ - #kdeplasma-addons \ - #polkit-kde \ - #extragear \ - #" # Allow for specification of individual packages to be built: if [ -z "$1" ]; then -- cgit v1.2.3