summaryrefslogtreecommitdiffstats
path: root/patches
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2022-12-02 20:58:24 +0000
committer Eric Hameleers <alien@slackware.com>2022-12-03 13:30:20 +0100
commitf2cf8c475b19a1c6a5d87164de24224f087a4eb5 (patch)
tree278ac9deebe1dc26291858b093239439f0df41ae /patches
parentcd369db34258015c83a2a2fb68f75dff0237f748 (diff)
downloadcurrent-f2cf8c475b19a1c6a5d87164de24224f087a4eb5.tar.gz
current-f2cf8c475b19a1c6a5d87164de24224f087a4eb5.tar.xz
Fri Dec 2 20:58:24 UTC 202220221202205824_15.0
patches/packages/krusader-2.8.0-x86_64-1_slack15.0.txz: Upgraded. This is a bugfix release. patches/packages/mozilla-thunderbird-102.5.1-x86_64-1_slack15.0.txz: Upgraded. This release contains security fixes and improvements. For more information, see: https://www.mozilla.org/en-US/thunderbird/102.5.1/releasenotes/ https://www.mozilla.org/en-US/security/advisories/mfsa2022-50/ https://www.cve.org/CVERecord?id=CVE-2022-45414 (* Security fix *)
Diffstat (limited to 'patches')
-rw-r--r--patches/packages/krusader-2.8.0-x86_64-1_slack15.0.txt11
-rw-r--r--patches/packages/mozilla-thunderbird-102.5.1-x86_64-1_slack15.0.txt (renamed from patches/packages/mozilla-thunderbird-102.5.0-x86_64-1_slack15.0.txt)0
-rw-r--r--patches/source/krusader/build/krusader1
-rw-r--r--patches/source/krusader/cmake/krusader22
-rwxr-xr-xpatches/source/krusader/kde.SlackBuild570
-rw-r--r--patches/source/krusader/kde.options68
-rwxr-xr-xpatches/source/krusader/krusader.SlackBuild2
-rw-r--r--patches/source/krusader/modules/applications-extra22
-rw-r--r--patches/source/krusader/noarch9
-rw-r--r--patches/source/krusader/nomake4
-rw-r--r--patches/source/krusader/package-blacklist11
-rw-r--r--patches/source/krusader/plasma_checkout.sh146
-rw-r--r--patches/source/krusader/pre-install/README18
-rw-r--r--patches/source/krusader/slack-desc/krusader19
14 files changed, 903 insertions, 0 deletions
diff --git a/patches/packages/krusader-2.8.0-x86_64-1_slack15.0.txt b/patches/packages/krusader-2.8.0-x86_64-1_slack15.0.txt
new file mode 100644
index 000000000..a12040167
--- /dev/null
+++ b/patches/packages/krusader-2.8.0-x86_64-1_slack15.0.txt
@@ -0,0 +1,11 @@
+krusader: krusader (twin panel file manager)
+krusader:
+krusader: Krusader is an advanced twin panel (commander style) file manager for
+krusader: KDE and other desktops, similar to Midnight Commander or Total
+krusader: Commander.
+krusader:
+krusader: Homepage: http://krusader.org
+krusader:
+krusader:
+krusader:
+krusader:
diff --git a/patches/packages/mozilla-thunderbird-102.5.0-x86_64-1_slack15.0.txt b/patches/packages/mozilla-thunderbird-102.5.1-x86_64-1_slack15.0.txt
index 5acb7b92e..5acb7b92e 100644
--- a/patches/packages/mozilla-thunderbird-102.5.0-x86_64-1_slack15.0.txt
+++ b/patches/packages/mozilla-thunderbird-102.5.1-x86_64-1_slack15.0.txt
diff --git a/patches/source/krusader/build/krusader b/patches/source/krusader/build/krusader
new file mode 100644
index 000000000..6187dea9d
--- /dev/null
+++ b/patches/source/krusader/build/krusader
@@ -0,0 +1 @@
+1_slack15.0
diff --git a/patches/source/krusader/cmake/krusader b/patches/source/krusader/cmake/krusader
new file mode 100644
index 000000000..79cf993bf
--- /dev/null
+++ b/patches/source/krusader/cmake/krusader
@@ -0,0 +1,22 @@
+mkdir cmake-build
+cd cmake-build
+ cmake \
+ $KDE_OPT_ARGS \
+ -DKDE_PLATFORM_FEATURE_DISABLE_DEPRECATED=TRUE \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMAN_INSTALL_DIR=/usr/man \
+ -DSYSCONF_INSTALL_DIR=/etc/kde \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DLIB_INSTALL_DIR=lib$LIBDIRSUFFIX \
+ -DQT_PLUGIN_INSTALL_DIR=lib$LIBDIRSUFFIX/qt5/plugins \
+ -DQML_INSTALL_DIR=lib$LIBDIRSUFFIX/qt5/qml \
+ -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
+ -DBUILD_TESTING=OFF \
+ -DQca-qt5_DIR=/usr/lib${LIBDIRSUFFIX}/cmake/Qca \
+ -DKDESU_PATH=/usr/lib${LIBDIRSUFFIX}/libexec/kf5/kdesu \
+ ..
diff --git a/patches/source/krusader/kde.SlackBuild b/patches/source/krusader/kde.SlackBuild
new file mode 100755
index 000000000..9cc3d21c3
--- /dev/null
+++ b/patches/source/krusader/kde.SlackBuild
@@ -0,0 +1,570 @@
+#!/bin/sh
+# Copyright 2011, 2012, 2017, 2018, 2020 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Adapted by Eric Hameleers <alien@slackware.com> from the modular x.org build.
+
+# To build only a single package group, specify it as $1, like:
+# ./kde.SlackBuild frameworks
+# To build only a single package, specify both the group name
+# and the name of the package, like:
+# ./kde.SlackBuild applications:dolphin
+# To build multiple packages in a module, separate the package names with comma:
+# ./kde.SlackBuild plasma:powerdevil,bluedevil
+# To build a package *and* all the remaining packages following it
+# in the modules file, end the package name with a comma:
+# ./kde.SlackBuild plasma:breeze,kwin,
+
+# ----------------------------------------------------------------------------
+
+CLEANUP=${CLEANUP:-"yes"} # clean up build directory after successful build.
+UPGRADE=${UPGRADE:-"yes"} # upgrade package after successful build.
+PRECHECK=${PRECHECK:-"no"} # don't let the script check the available sources.
+CHECKOUT=${CHECKOUT:-"no"} # don't let the script checkout missing sources.
+GRACETME=${GRACETME:-"10"} # grace time to change your mind before build starts.
+SKIPBUILT=${SKIPBUILT:-"no"} # skip building already built packages.
+EXITFAIL=${EXITFAIL:-"yes"} # exit if a package fails to build.
+
+KDEGITURI="git://anongit.kde.org"
+
+pkgbase() {
+ PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev)
+ case $PKGEXT in
+ 'gz' )
+ PKGRETURN=$(basename $1 .tar.gz)
+ ;;
+ 'bz2' )
+ PKGRETURN=$(basename $1 .tar.bz2)
+ ;;
+ 'lzma' )
+ PKGRETURN=$(basename $1 .tar.lzma)
+ ;;
+ 'lz' )
+ PKGRETURN=$(basename $1 .tar.lz)
+ ;;
+ 'xz' )
+ PKGRETURN=$(basename $1 .tar.xz)
+ ;;
+ *)
+ PKGRETURN=$(basename $1)
+ ;;
+ esac
+ echo $PKGRETURN
+}
+
+# Set initial variables:
+cd $(dirname $0) ; CWD=$(pwd)
+
+if [ -z "$TMP" ]; then
+ TMP=/tmp
+ # Old default output directory. If $TMP wasn't predefined, we'll default to
+ # using it unless a different value is provided:
+ SLACK_KDE_BUILD_DIR=${SLACK_KDE_BUILD_DIR:-/tmp/kde_build}
+else
+ # $TMP already set. We'll also use it for the output directory unless
+ # a different value is provided:
+ SLACK_KDE_BUILD_DIR=${SLACK_KDE_BUILD_DIR:-$TMP}
+fi
+mkdir -p $TMP $SLACK_KDE_BUILD_DIR
+
+# Set up a few useful functions:
+
+extract_archive() {
+ # Find the archive first:
+ local src_archive=$(find $CWD/src -name ${1})
+ if [ $(tar -tf $src_archive |grep -o '^[^/]\+' |sort -u |wc -l) -eq 1 ];
+ then
+ # Archive contains one toplevel directory, good. Make sure that
+ # this directory ends up as '$(pkgbase $1)':
+ tar -xf $src_archive || return 1
+ local topdir="$(tar -tf $src_archive |grep -o '^[^/]\+' |sort -u)"
+ if [ "${topdir}" != "$(pkgbase $1)" ]; then
+ mv ${topdir} $(pkgbase $1)
+ fi
+ else
+ # No toplevel directory found, so we create one first:
+ mkdir -p $(pkgbase $1)
+ tar -C $(pkgbase $1) -xf $src_archive || return 1
+ fi
+}
+
+fix_perms() {
+ target_dir=$1
+ [ -z "$target_dir" ] && target_dir='.'
+
+ chown -R root:root $target_dir
+ find $target_dir \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+}
+
+strip_binaries() {
+ target_dir=$1
+ [ -z "$target_dir" ] && target_dir='.'
+
+ find $target_dir | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find $target_dir | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find $target_dir | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null
+ # Also strip rpaths:
+ for file in $(find $target_dir | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : 2> /dev/null) ; do
+ if [ ! "$(patchelf --print-rpath $file 2> /dev/null)" = "" ]; then
+ patchelf --remove-rpath $file
+ fi
+ done
+}
+
+process_man_pages() {
+ # Compress and if needed symlink the man pages:
+ if [ -d usr/man ]; then
+ ( cd usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+ )
+ fi
+}
+
+process_info_pages() {
+ # Compress info pages and purge "dir" file from the package:
+ if [ -d usr/info ]; then
+ ( cd usr/info
+ rm -f dir
+ gzip -9 *
+ )
+ fi
+}
+
+no_usr_share_doc() {
+ # If there are docs, move them:
+ if [ -d usr/share/doc ]; then
+ mkdir -p usr/doc
+ mv usr/share/doc/* usr/doc
+ rmdir usr/share/doc
+ fi
+}
+
+precheck() {
+ # See if the sources we have match the module components we want to build:
+ RETVAL=0
+
+ for SRCFILE in $(find $CWD/src -name "*.tar.?z*" |grep -vE ".asc$|.sig$") ; do
+ # Check if the source tarball is mentioned in pkgsrc/
+ # meaning its package will get a different name:
+ ###################################################################
+ # USE OF THIS FEATURE SHOULD BE RESERVED FOR CASES WHERE THERE IS #
+ # A VERY GOOD RATIONALE - KEEPING UPSTREAM NAMES IS PREFERRED #
+ ###################################################################
+ 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
+
+ # 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
+ unset PKGDUP
+
+ for MODPKG 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/$MODPKG ]; then
+ MODBASE=$(basename $(cat $CWD/pkgsrc/$MODPKG))
+ MODLOC=$(dirname $(cat $CWD/pkgsrc/$MODPKG))/
+ else
+ MODBASE=$MODPKG
+ MODLOC=""
+ fi
+ MODSRC="$(find $CWD/src/$MODLOC -name $MODBASE-*.tar.* |grep -vE ".asc$|.sig$" |grep -E "$MODBASE-[^-]+.tar.*$|$MODBASE-[0-9].+.tar.*$")"
+ if [ -z "$MODSRC" ] ; then
+ echo "Module '$MODPKG' does not have a matching source tarball ($MODLOC$MODBASE)!"
+ if [ "$CHECKOUT" = "yes" -o "$CHECKOUT" = "YES" ]; then
+ echo "Checking out KDE component at branch '$VERSION'."
+ git archive --format=tar --prefix ${MODBASE}-${VERSION}/ --remote ${KDEGITURI}/${MODBASE}.git v${VERSION} | xz -c > $CWD/src/${MODLOC}/${MODBASE}-${VERSION}.tar.xz
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ echo "Error while checking out '$MODPKG' ($MODLOC/$MODBASE) !"
+ mv $CWD/src/$MODLOC/${MODBASE}-${VERSION}.tar.xz $CWD/src/$MODLOC/${MODBASE}-${VERSION}.tar.xz.failed
+ fi
+ else
+ RETVAL=1
+ fi
+ fi
+ # A missing slack-desc counts as fatal:
+ if [ -z "$(find $CWD/slack-desc -name ${MODPKG})" ] ; then
+ echo "Module '$MODPKG' does not have a slack-desc file !"
+ RETVAL=1
+ fi
+ done
+
+ if [ $RETVAL -eq 0 ]; then
+ echo "Check complete, build starts in ${GRACETME} seconds.."
+ sleep ${GRACETME}
+ else
+ echo "Precheck failed with error code '$RETVAL'."
+ exit 1
+ fi
+}
+
+# Support function builds one complete module (like 'frameworks'), or
+# exactly one package which is part of a module (like 'okular'):
+build_mod_pkg () {
+ kde_module=$1
+ kde_pkg=$2
+
+ cd $CWD/modules
+
+ # See if $kde_module is a module name like "frameworks":
+ if [ ! -z "$kde_module" ]; then
+ if [ ! -f "$kde_module" ]; then
+ echo "** '${kde_module}' is not an existing module."
+ return
+ fi
+ fi
+ PKG=${SLACK_KDE_BUILD_DIR}/${kde_module}/package-${kde_module}
+ rm -rf $PKG
+ mkdir -p $PKG
+ ( for PKGNAME in $(cat $kde_module |grep -v "^$" |grep -v "^ *#") ; do
+ if grep -wq "^${PKGNAME}$" ${CWD}/package-blacklist ; then
+ if [ -z "$PRINT_PACKAGE_NAME" ]; then
+ echo "** '${PKGNAME}' is on the package blacklist."
+ fi
+ continue
+ fi
+ # Find the full source filename - yeah ugly, but I had two goals:
+ # 1- source tarball can be in a random subdirectory of src/
+ # 2- differentiate between e.g. 'kdepim' and 'kdepim-runtime'
+ if [ -f $CWD/pkgsrc/$PKGNAME ]; then
+ PKGSRC=$(basename $(cat $CWD/pkgsrc/$PKGNAME))
+ PKGLOC=$(dirname $(cat $CWD/pkgsrc/$PKGNAME))
+ else
+ PKGSRC=$PKGNAME
+ PKGLOC=""
+ fi
+ kde_src=$(basename $(find $CWD/src/$PKGLOC -name "$PKGSRC-*.tar.?z*" |grep -vE ".asc$|.sig$" |grep -E "$PKGSRC-[^-]+.tar.*$|$PKGSRC-[0-9].+.tar.*$") 2>/dev/null)
+ if [ "x$kde_src" = "x" ]; then
+ if [ -z "$PRINT_PACKAGE_NAME" ]; then
+ echo "** Did not find '$PKGSRC' in src"
+ fi
+ continue
+ fi
+ # Reset $PKGARCH to its initial value:
+ PKGARCH=$ARCH
+ # Perhaps $PKGARCH should be something different:
+ if grep -wq "^${PKGNAME}$" ${CWD}/noarch ; then
+ PKGARCH=noarch
+ fi
+ cd $SLACK_KDE_BUILD_DIR/${kde_module}
+ # If $kde_pkg is set, we only want to build one package:
+ if [ ! -z "$kde_pkg" ]; then
+ if [ "$kde_pkg" = "$PKGNAME" ]; then
+ # Set $PKG to a private dir for the modular package build:
+ PKG=$SLACK_KDE_BUILD_DIR/${kde_module}/package-$PKGNAME
+ rm -rf $PKG
+ mkdir -p $PKG
+ else
+ continue
+ fi
+ else
+ if [ -z "$PRINT_PACKAGE_NAME" ]; then
+ echo
+ echo "Building from source ${kde_src}"
+ echo
+ fi
+ fi
+
+ # Set $PKG to a private dir for the modular package build:
+ PKG=$SLACK_KDE_BUILD_DIR/${kde_module}/package-$PKGNAME
+ rm -rf $PKG
+ mkdir -p $PKG
+
+ # Let's figure out the version number on the modular package:
+ MODULAR_PACKAGE_VERSION=$(echo $kde_src | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+
+ # If this variable is passed to the script, nothing will be built.
+ # Instead, a list of packages to be built will be output.
+ if [ ! -z "$PRINT_PACKAGE_NAME" ]; then
+ if [ -r $CWD/build/${PKGNAME} ]; then
+ MODBUILD=$(cat $CWD/build/${PKGNAME})
+ else
+ MODBUILD=$BUILD
+ fi
+ echo "${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz"
+ continue
+ fi
+
+ # If requested, skip packages that are already in the output directory:
+ if [ "$SKIPBUILT" = "yes" ]; then
+ # Construct the package name:
+ if [ -r $CWD/build/${PKGNAME} ]; then
+ MODBUILD=$(cat $CWD/build/${PKGNAME})
+ else
+ MODBUILD=$BUILD
+ fi
+ TESTPKGNAME="${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz"
+ if [ -r ${SLACK_KDE_BUILD_DIR}/${kde_module}/$TESTPKGNAME -o -r ${SLACK_KDE_BUILD_DIR}/$TESTPKGNAME ]; then
+ echo "** Skipping already built package $TESTPKGNAME."
+ continue
+ fi
+ fi
+
+ rm -rf $(pkgbase $kde_src)
+ extract_archive $kde_src || exit 1
+ cd $(pkgbase $kde_src) || exit 1
+
+ fix_perms
+
+ # If any patches are needed, call this script to apply them:
+ if [ -r $CWD/patch/${PKGNAME}.patch ]; then
+ . $CWD/patch/${PKGNAME}.patch || exit 1
+ fi
+
+ # If there's any pre-install things to do, do them:
+ if [ -r $CWD/pre-install/${PKGNAME}.pre-install ]; then
+ . $CWD/pre-install/${PKGNAME}.pre-install
+ fi
+
+ if ! grep -wq "^${PKGNAME}$" ${CWD}/nomake ; then
+ # Run cmake, using custom cmake script if needed:
+ if [ -r $CWD/cmake/${PKGNAME} ]; then
+ . $CWD/cmake/${PKGNAME}
+ elif [ -r $CWD/cmake/${kde_module} ]; then
+ . $CWD/cmake/${kde_module}
+ else
+ # This is the default configure script:
+ . $CWD/cmake/cmake
+ fi
+
+ # Run make, using custom make script if needed:
+ if [ -r $CWD/make/${PKGNAME} ]; then
+ . $CWD/make/${PKGNAME}
+ elif [ -r $CWD/make/${kde_module} ]; then
+ . $CWD/make/${kde_module}
+ else
+ # This is the default make && make install routine:
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
+ fi
+ fi
+
+ # Back to source toplevel builddir, since cmake may have run in a subdir:
+ cd $SLACK_KDE_BUILD_DIR/${kde_module}/$(pkgbase $kde_src)
+
+ mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION}
+ # Use specific documentation files if available, else use a default set:
+ if [ -r $CWD/docs/${PKGNAME} ]; then
+ cp -a $(cat $CWD/docs/${PKGNAME}) \
+ $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION}
+ else
+ cp -a \
+ AUTHORS* CONTRIBUTING* COPYING* HACKING* \
+ INSTALL* LICENSE* MAINTAINERS README* NEWS* TODO* \
+ $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION}
+ # If there's a ChangeLog, installing at least part of the recent
+ # history is useful, but don't let it get totally out of control:
+ if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+ fi
+ fi
+
+ # Get rid of zero-length junk files:
+ find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \+
+ rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null
+
+ # Strip binaries if needed:
+ if [ ! -r $CWD/nostrip/${PKGNAME} ]; then
+ strip_binaries $PKG
+ fi
+
+ # If there's any special post-install things to do, do them:
+ if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then
+ . $CWD/post-install/${PKGNAME}.post-install
+ fi
+
+ # If this package requires some doinst.sh material, add it here:
+ if [ -r $CWD/doinst.sh/${PKGNAME} ]; then
+ mkdir -p $PKG/install
+ cat $CWD/doinst.sh/${PKGNAME} \
+ | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \
+ >> $PKG/install/doinst.sh
+ fi
+
+ # If this is a modular package, build it here:
+ if [ -d $SLACK_KDE_BUILD_DIR/${kde_module}/package-$PKGNAME ]; then
+ cd $PKG
+ process_man_pages
+ process_info_pages
+ no_usr_share_doc
+ mkdir -p $PKG/install
+ if [ -r $CWD/slack-desc/${PKGNAME} ]; then
+ cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc
+ else
+ touch $PKG/install/slack-desc-missing
+ fi
+ if [ -r $CWD/build/${PKGNAME} ]; then
+ MODBUILD=$(cat $CWD/build/${PKGNAME})
+ else
+ MODBUILD=$BUILD
+ fi
+ if [ -r $CWD/makepkg/${PKGNAME} ]; then
+ BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME}
+ else
+ /sbin/makepkg -l y -c n ${SLACK_KDE_BUILD_DIR}/${kde_module}/${PKGNAME}-$(echo $MODULAR_PACKAGE_VERSION |tr - _)-${PKGARCH}-${MODBUILD}.txz
+ fi
+ # We will continue with the fresh packages installed:
+ if [ "$UPGRADE" = "yes" -o "$UPGRADE" = "YES" ]; then
+ upgradepkg --install-new --reinstall ${SLACK_KDE_BUILD_DIR}/${kde_module}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz
+ # Keep MIME database current:
+ /usr/bin/update-mime-database /usr/share/mime 1>/dev/null 2>/dev/null &
+ fi
+ fi
+
+ done
+
+ )
+}
+
+# Process the module queue. Format is:
+# module[:subpackage[,subpackage]] [module...]
+deterministic_build() {
+ RET=0
+ for ENTRY in $1 ; do
+ KDE_MOD=$(echo "$ENTRY": | cut -f1 -d:)
+ KDE_PKGS=$(echo "$ENTRY": | cut -f2 -d:)
+ if [ -z "$KDE_PKGS" ]; then
+ if [ -z "$PRINT_PACKAGE_NAME" ]; then
+ echo "** SlackBuild building '$KDE_MOD'"
+ fi
+ build_mod_pkg $KDE_MOD
+ let RET=$RET+$?
+ else
+ if [ "${KDE_PKGS: -1}" = "," ]; then
+ # Last character is a ','. Expand the list with all subsequent packages.
+ START_PKG=$(echo $KDE_PKGS |rev |cut -d, -f2 |rev)
+ MOD_LIST=$(cat modules/$KDE_MOD |grep -v "^ *#" |grep -v "^$" |tr '\n' ',')
+ KDE_PKGS="${KDE_PKGS}${MOD_LIST/#?*,${START_PKG},/}"
+ if [ -z "$PRINT_PACKAGE_NAME" ]; then
+ echo "** SlackBuild expanding '$ENTRY' to '$KDE_MOD:$KDE_PKGS'"
+ fi
+ fi
+ for KDE_PKG in $(echo $KDE_PKGS |tr ',' ' ') ; do
+ if [ -z "$PRINT_PACKAGE_NAME" ]; then
+ echo "** SlackBuild building '$KDE_MOD:$KDE_PKG'"
+ fi
+ build_mod_pkg $KDE_MOD $KDE_PKG
+ let RET=$RET+$?
+ done
+ fi
+ done
+
+ return $RET
+}
+
+# MAIN PART #
+
+# Import the build configuration options for as far as they are not already set:
+[ -r ./kde.options ] && . ./kde.options
+
+# This avoids compiling a version number into KDE's .la files:
+QTDIR=/usr/lib${LIBDIRSUFFIX}/qt5 ; export QTDIR
+
+# Get the KDE environment variables:
+[ -d post-install/kservice ] && eval $(sed -e "s#/lib#/lib${LIBDIRSUFFIX}#" ./post-install/kservice/profile.d/kde.sh)
+
+# Build/install libkdiagram before compiling kdepim:
+# Build/install libktorrent before compiling kget:
+KDEMODS=" \
+ kde4 \
+ frameworks \
+ applications-extra:kdiagram \
+ kdepim \
+ plasma-extra:plasma-wayland-protocols \
+ plasma \
+ plasma-extra \
+ applications:libktorrent \
+ applications \
+ applications-extra \
+ applications:umbrello \
+ "
+ #telepathy \
+
+# Allow for specification of individual packages to be built:
+if [ -z "$1" ]; then
+ MODQUEUE=$KDEMODS
+else
+ MODQUEUE="$*"
+fi
+
+# If requested, check if
+# sources, module definitions and slack-desc are complete and matching:
+if [ "$PRECHECK" = "yes" -o "$PRECHECK" = "YES" ]; then
+ precheck
+fi
+
+# And finally, start working!
+for module in \
+ $MODQUEUE ;
+do
+ if [ -z "$PRINT_PACKAGE_NAME" ]; then
+ echo "SlackBuild processing module '$module'"
+ fi
+ deterministic_build $module
+ if [ $? = 0 ]; then
+ # Move the created packages up into the KDE build directory:
+ mv ${SLACK_KDE_BUILD_DIR}/$(echo $module |cut -f1 -d:)/*.t?z ${SLACK_KDE_BUILD_DIR}/ 2> /dev/null
+ if [ "$CLEANUP" = "yes" -o "$CLEANUP" = "YES" ]; then
+ # Clean out package and build directories:
+ rm -rf ${SLACK_KDE_BUILD_DIR}/$(echo $module |cut -f1 -d:)
+ fi
+ else
+ if [ -z "$PRINT_PACKAGE_NAME" ]; then
+ echo "${module} failed to build."
+ fi
+ if [ "$EXITFAIL" = "yes" ]; then
+ exit 1
+ fi
+ fi
+ cd - > /dev/null
+done
+
+exit 0
diff --git a/patches/source/krusader/kde.options b/patches/source/krusader/kde.options
new file mode 100644
index 000000000..4435ead77
--- /dev/null
+++ b/patches/source/krusader/kde.options
@@ -0,0 +1,68 @@
+# Set default arch/build. A default version is not needed since
+# package versions are determined by their source tarvall.
+
+[ -z $BUILD ] && export BUILD=1
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+[ -z $PKGARCH ] && export PKGARCH=$ARCH
+
+# Use this as CFLAGS and CXXFLAGS:
+if [ -z "$SLKCFLAGS" ]; then
+ if [ "$ARCH" = "i486" ]; then
+ export SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ export LIBDIRSUFFIX=""
+ elif [ "$ARCH" = "i586" ]; then
+ export SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ export LIBDIRSUFFIX=""
+ elif [ "$ARCH" = "s390" ]; then
+ export SLKCFLAGS="-O2"
+ export LIBDIRSUFFIX=""
+ elif [ "$ARCH" = "x86_64" ]; then
+ export SLKCFLAGS="-O2 -fPIC"
+ export LIBDIRSUFFIX="64"
+ elif [ "$ARCH" = "arm" ]; then
+ export SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
+ export LIBDIRSUFFIX=""
+ elif [ "$ARCH" = "armel" ]; then
+ export SLKCFLAGS="-O2 -march=armv4t"
+ export LIBDIRSUFFIX=""
+ elif [ "$ARCH" = "armv7hl" ]; then
+ export SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ export LIBDIRSUFFIX=""
+ else
+ export SLKCFLAGS="-O2"
+ export LIBDIRSUFFIX=""
+ fi
+fi
+
+# Use this to set the number of parallel make jobs:
+NUMJOBS=${NUMJOBS:-" -j $(expr $(nproc) + 1) "}
+export NUMJOBS
+
+# Additional cmake flags that are spanned across the KDE modules
+# Do not use "final build" unless we build an actual release.
+export KDE_OPT_ARGS=" -Wno-dev -DBUILD_TESTING=OFF -DSITE=\"slackware.com\" -DKDE_DISTRIBUTION_TEXT=\"volkerdi@slackware.com\" "
+
+# Choose correct options depending on whether PAM is installed:
+if [ -L /lib${LIBDIRSUFFIX}/libpam.so.? ]; then
+ SLACKPAM=${SLACKPAM:-"yes"}
+else
+ SLACKPAM=${SLACKPAM:-"no"}
+fi
+
+# Choose correct options depending on whether elogind is installed:
+if [ -L /lib${LIBDIRSUFFIX}/libelogind.so.? ]; then
+ SLKELOGIND=${SLKELOGIND:-"yes"}
+else
+ SLKELOGIND=${SLKELOGIND:-"no"}
+fi
diff --git a/patches/source/krusader/krusader.SlackBuild b/patches/source/krusader/krusader.SlackBuild
new file mode 100755
index 000000000..2aff04bb6
--- /dev/null
+++ b/patches/source/krusader/krusader.SlackBuild
@@ -0,0 +1,2 @@
+UPGRADE_PACKAGES=no ./kde.SlackBuild applications-extra:krusader
+mv /tmp/kde_build/krusader*txz /tmp
diff --git a/patches/source/krusader/modules/applications-extra b/patches/source/krusader/modules/applications-extra
new file mode 100644
index 000000000..aaaab9f1b
--- /dev/null
+++ b/patches/source/krusader/modules/applications-extra
@@ -0,0 +1,22 @@
+# applications-extra
+calligra
+calligraplan
+digikam
+krita
+kdiagram
+kjots
+kstars
+#kuser
+krusader
+kile
+kaudiocreator
+kwebkitpart
+oxygen-gtk2
+alkimia
+kmymoney
+okteta
+krename
+ktimetracker
+labplot
+kid3
+kdevelop-pg-qt
diff --git a/patches/source/krusader/noarch b/patches/source/krusader/noarch
new file mode 100644
index 000000000..a1dd4c697
--- /dev/null
+++ b/patches/source/krusader/noarch
@@ -0,0 +1,9 @@
+# List packages with an $ARCH of "noarch" (i.e. packages
+# that contain no binaries) here:
+
+breeze-icons
+kde-wallpapers
+oxygen-fonts
+oxygen-icons
+oxygen-icons5
+
diff --git a/patches/source/krusader/nomake b/patches/source/krusader/nomake
new file mode 100644
index 000000000..2703fd484
--- /dev/null
+++ b/patches/source/krusader/nomake
@@ -0,0 +1,4 @@
+breeze-grub
+oxygen-fonts
+sddm-theme-breeze
+
diff --git a/patches/source/krusader/package-blacklist b/patches/source/krusader/package-blacklist
new file mode 100644
index 000000000..f6ab382c4
--- /dev/null
+++ b/patches/source/krusader/package-blacklist
@@ -0,0 +1,11 @@
+# Enter packages to skip (perhaps because they aren't used on
+# this platform) below. Just the package name -- no version
+# number is needed.
+
+## kdebindings:
+# needs c-sharp:
+kimono
+qyoto
+
+# We need to support Wayland first.
+#kwayland
diff --git a/patches/source/krusader/plasma_checkout.sh b/patches/source/krusader/plasma_checkout.sh
new file mode 100644
index 000000000..edb8bf739
--- /dev/null
+++ b/patches/source/krusader/plasma_checkout.sh
@@ -0,0 +1,146 @@
+#!/bin/sh
+# $id$
+# -----------------------------------------------------------------------------
+# Purpose: A script to checkout sources for KDE Plasma Next from the
+# git repositories and create tarballs of them.
+# Author: Eric Hameleers <alien@slackware.com>
+# Date: 20140604
+# -----------------------------------------------------------------------------
+
+# Defaults:
+
+# Directory where we start:
+CWD=$(pwd)
+
+# Cleanup (delete) the directories containing the local clones afterwards:
+CLEANUP="NO"
+
+# Checkout at a custom date instead of today:
+CUSTDATE="NO"
+
+# Forced overwriting of existing tarballs:
+FORCE="NO"
+
+# Where to write the files by default:
+MYDIR="${CWD}/_plasma_checkouts"
+
+# KDE git repositories:
+KDEGITURI="git://anongit.kde.org"
+
+# Prefered branch to check out from if it exists (HEAD otherwise):
+BRANCH="frameworks"
+
+# Shrink the tarball by removing git repository metadata:
+SHRINK="YES"
+
+# Today's timestamp:
+THEDATE=$(date +%Y%m%d)
+
+# The KDE topdirectory ( by default the location of this script):
+TOPDIR=$(cd $(dirname $0); pwd)
+
+# -----------------------------------------------------------------------------
+while getopts "cd:fghk:o:" Option
+do
+ case $Option in
+ c ) CLEANUP="YES"
+ ;;
+ d ) THEDATE="date --date='${OPTARG}' +%Y%m%d"
+ CUSTDATE="${OPTARG}"
+ ;;
+ f ) FORCE="YES"
+ ;;
+ g ) SHRINK="NO"
+ ;;
+ k ) TOPDIR="${OPTARG}"
+ ;;
+ o ) MYDIR="${OPTARG}"
+ ;;
+ h|* )
+ echo "$(basename $0) [<param> <param> ...] [<module> <module> ...]"
+ echo "Parameters are:"
+ echo " -h This help."
+ echo " -c Cleanup afterwards (delete the cloned repos)."
+ echo " -d <date> Checkout git at <date> instead of today."
+ echo " -f Force overwriting of tarballs if they exist."
+ echo " -g Keep git repository metadata (bigger tarball)."
+ echo " -o <dir> Create tarballs in <dir> instead of $MYDIR/."
+ echo " -k <dir> Location of KDE sources if not $(cd $(dirname $0), pwd)/."
+ exit
+ ;;
+ esac
+done
+
+shift $(($OPTIND - 1))
+# End of option parsing.
+# $1 now references the first non option item supplied on the command line
+# if one exists.
+# -----------------------------------------------------------------------------
+
+# Catch any individual requests on the commandline:
+MODS=${1:-""}
+
+# Verify that our TOPDIR is the KDE source top directory:
+if ! [ -f ${TOPDIR}/KDE.SlackBuild -a -d ${TOPDIR}/src ]; then
+ echo ">> Error: '$TOPDIR' does not seem to contain the KDE SlackBuild plus sources"
+ echo ">> Either place this script in the KDE directory before running it,"
+ echo ">> Or specify the KDE toplevel source directory with the '-k' parameter"
+ exit 1
+fi
+
+# No modules specified on the commandline; get all enabled plasma modules:
+if [ ! -n "$MODS" ]; then
+ MODS="$(cat ${TOPDIR}/modules/plasma | grep -v " *#" | grep -v "^$")"
+fi
+
+# Create the work directory:
+mkdir -p "${MYDIR}"
+if [ $? -ne 0 ]; then
+ echo "Error creating '${MYDIR}' - aborting."
+ exit 1
+fi
+cd "${MYDIR}"
+
+# Proceed with checking out all plasma-next sources.
+# Some packages are called foo-framework to make them co-installable with the
+# KDE4 packages with the same source-name. Strip the '-framework' off the
+# package name to get the source name):
+
+for MOD in $MODS ; do
+ git clone ${KDEGITURI}/${MOD%-framework}.git ${MOD%-framework}-${THEDATE}git
+ ( cd ${MOD%-framework}-${THEDATE}git
+ git checkout ${BRANCH} # If this fails we should have 'master' anyway
+ if [ $? -ne 0 ]; then
+ BRANCH="master"
+ fi
+ if [ "$CUSTDATE" != "NO" ]; then
+ # Checkout at a specified date instead of HEAD:
+ git checkout $(git rev-list -n 1 --before="`date -d $THEDATE`" $BRANCH)
+ fi
+ )
+done
+
+if [ "$SHRINK" = "YES" ]; then
+ # Remove git meta data from the tarballs:
+ for DIR in $(ls |grep git$) ; do
+ find ${DIR%/} -name ".git*" -depth -exec rm -rf {} \;
+ done
+fi
+
+# Zip them up:
+for DIR in $(ls |grep git$) ; do
+ if [ "$FORCE" = "NO" -a -f ${DIR%/}.tar.xz ]; then
+ echo ">> Not overwriting existng file '${DIR%/}.tar.xz'"
+ echo ">> Use '-f' to force ovewriting existing files"
+ else
+ tar -Jcf ${DIR%/}.tar.xz ${DIR%/}
+ fi
+done
+
+if [ "$CLEANUP" = "YES" ]; then
+ # Remmove the cloned directories now that we have the tarballs:
+ rm -r *git
+fi
+
+cd $CWD
+# Done!
diff --git a/patches/source/krusader/pre-install/README b/patches/source/krusader/pre-install/README
new file mode 100644
index 000000000..2478e45f9
--- /dev/null
+++ b/patches/source/krusader/pre-install/README
@@ -0,0 +1,18 @@
+
+IMPORTANT!
+
+To fail/exit a script, use this:
+
+[command that fails] || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+DO NOT USE THIS:
+
+[command that fails] || exit 1
+
+as it will cause the parent script to exit in the wrong location and possibly
+silently skip building some packages.
+
+Thanks,
+
+The Management
+
diff --git a/patches/source/krusader/slack-desc/krusader b/patches/source/krusader/slack-desc/krusader
new file mode 100644
index 000000000..9a54488a0
--- /dev/null
+++ b/patches/source/krusader/slack-desc/krusader
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+krusader: krusader (twin panel file manager)
+krusader:
+krusader: Krusader is an advanced twin panel (commander style) file manager for
+krusader: KDE and other desktops, similar to Midnight Commander or Total
+krusader: Commander.
+krusader:
+krusader: Homepage: http://krusader.org
+krusader:
+krusader:
+krusader:
+krusader: