mirror of
git://slackware.nl/current.git
synced 2025-01-29 08:36:40 +01:00
Tue Aug 27 19:24:48 UTC 2024
patches/packages/kcron-21.12.3-x86_64-1_slack15.0.txz: Upgraded. This update fixes a security issue: kcron: Invalid temporary file handling. Thanks to pbslxw for the heads-up. For more information, see: https://kde.org/info/security/advisory-20220216-1.txt https://www.cve.org/CVERecord?id=CVE-2022-24986 (* Security fix *) patches/packages/plasma-workspace-5.23.5-x86_64-4_slack15.0.txz: Rebuilt. This update patches a security issue: ksmserver: Unauthorized users can access session manager. Thanks to pbslxw for the heads-up. For more information, see: https://kde.org/info/security/advisory-20240531-1.txt https://www.cve.org/CVERecord?id=CVE-2024-36041 (* Security fix *)
This commit is contained in:
parent
1246cf6d34
commit
e472158ace
41 changed files with 3220 additions and 501 deletions
|
@ -11,9 +11,35 @@
|
|||
<description>Tracking Slackware development in git.</description>
|
||||
<language>en-us</language>
|
||||
<id xmlns="http://www.w3.org/2005/Atom">urn:uuid:c964f45e-6732-11e8-bbe5-107b4450212f</id>
|
||||
<pubDate>Thu, 22 Aug 2024 19:10:18 GMT</pubDate>
|
||||
<lastBuildDate>Fri, 23 Aug 2024 11:30:52 GMT</lastBuildDate>
|
||||
<pubDate>Tue, 27 Aug 2024 19:24:48 GMT</pubDate>
|
||||
<lastBuildDate>Wed, 28 Aug 2024 11:30:35 GMT</lastBuildDate>
|
||||
<generator>maintain_current_git.sh v 1.17</generator>
|
||||
<item>
|
||||
<title>Tue, 27 Aug 2024 19:24:48 GMT</title>
|
||||
<pubDate>Tue, 27 Aug 2024 19:24:48 GMT</pubDate>
|
||||
<link>https://git.slackware.nl/current/tag/?h=20240827192448</link>
|
||||
<guid isPermaLink="false">20240827192448</guid>
|
||||
<description>
|
||||
<![CDATA[<pre>
|
||||
patches/packages/kcron-21.12.3-x86_64-1_slack15.0.txz: Upgraded.
|
||||
This update fixes a security issue:
|
||||
kcron: Invalid temporary file handling.
|
||||
Thanks to pbslxw for the heads-up.
|
||||
For more information, see:
|
||||
https://kde.org/info/security/advisory-20220216-1.txt
|
||||
https://www.cve.org/CVERecord?id=CVE-2022-24986
|
||||
(* Security fix *)
|
||||
patches/packages/plasma-workspace-5.23.5-x86_64-4_slack15.0.txz: Rebuilt.
|
||||
This update patches a security issue:
|
||||
ksmserver: Unauthorized users can access session manager.
|
||||
Thanks to pbslxw for the heads-up.
|
||||
For more information, see:
|
||||
https://kde.org/info/security/advisory-20240531-1.txt
|
||||
https://www.cve.org/CVERecord?id=CVE-2024-36041
|
||||
(* Security fix *)
|
||||
</pre>]]>
|
||||
</description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Thu, 22 Aug 2024 19:10:18 GMT</title>
|
||||
<pubDate>Thu, 22 Aug 2024 19:10:18 GMT</pubDate>
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
Tue Aug 27 19:24:48 UTC 2024
|
||||
patches/packages/kcron-21.12.3-x86_64-1_slack15.0.txz: Upgraded.
|
||||
This update fixes a security issue:
|
||||
kcron: Invalid temporary file handling.
|
||||
Thanks to pbslxw for the heads-up.
|
||||
For more information, see:
|
||||
https://kde.org/info/security/advisory-20220216-1.txt
|
||||
https://www.cve.org/CVERecord?id=CVE-2022-24986
|
||||
(* Security fix *)
|
||||
patches/packages/plasma-workspace-5.23.5-x86_64-4_slack15.0.txz: Rebuilt.
|
||||
This update patches a security issue:
|
||||
ksmserver: Unauthorized users can access session manager.
|
||||
Thanks to pbslxw for the heads-up.
|
||||
For more information, see:
|
||||
https://kde.org/info/security/advisory-20240531-1.txt
|
||||
https://www.cve.org/CVERecord?id=CVE-2024-36041
|
||||
(* Security fix *)
|
||||
+--------------------------+
|
||||
Thu Aug 22 19:10:18 UTC 2024
|
||||
patches/packages/bind-9.18.29-x86_64-1_slack15.0.txz: Upgraded.
|
||||
This is a bugfix release.
|
||||
|
|
1082
FILELIST.TXT
1082
FILELIST.TXT
File diff suppressed because it is too large
Load diff
11
patches/packages/kcron-21.12.3-x86_64-1_slack15.0.txt
Normal file
11
patches/packages/kcron-21.12.3-x86_64-1_slack15.0.txt
Normal file
|
@ -0,0 +1,11 @@
|
|||
kcron: kcron (task scheduler)
|
||||
kcron:
|
||||
kcron: kcron is a module for scheduling programs to run in the background.
|
||||
kcron: It is a graphical user interface to cron, the UNIX system scheduler.
|
||||
kcron:
|
||||
kcron:
|
||||
kcron:
|
||||
kcron:
|
||||
kcron:
|
||||
kcron:
|
||||
kcron:
|
|
@ -0,0 +1,11 @@
|
|||
plasma-workspace: plasma-workspace (KDE Plasma Workspace)
|
||||
plasma-workspace:
|
||||
plasma-workspace: The Plasma Workspace provides support for KDE Plasma Widgets,
|
||||
plasma-workspace: integrated search, hardware management, and a high degree of
|
||||
plasma-workspace: customizability.
|
||||
plasma-workspace:
|
||||
plasma-workspace:
|
||||
plasma-workspace:
|
||||
plasma-workspace:
|
||||
plasma-workspace:
|
||||
plasma-workspace:
|
1
patches/source/kcron/build/kcron
Normal file
1
patches/source/kcron/build/kcron
Normal file
|
@ -0,0 +1 @@
|
|||
1_slack15.0
|
22
patches/source/kcron/cmake/cmake
Normal file
22
patches/source/kcron/cmake/cmake
Normal file
|
@ -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 \
|
||||
..
|
||||
|
2
patches/source/kcron/kcron.SlackBuild
Executable file
2
patches/source/kcron/kcron.SlackBuild
Executable file
|
@ -0,0 +1,2 @@
|
|||
UPGRADE_PACKAGES=no ./kde.SlackBuild applications:kcron
|
||||
mv /tmp/kde_build/kcron*txz /tmp
|
572
patches/source/kcron/kde.SlackBuild
Executable file
572
patches/source/kcron/kde.SlackBuild
Executable file
|
@ -0,0 +1,572 @@
|
|||
#!/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
|
||||
|
||||
|
68
patches/source/kcron/kde.options
Normal file
68
patches/source/kcron/kde.options
Normal file
|
@ -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
|
215
patches/source/kcron/modules/applications
Normal file
215
patches/source/kcron/modules/applications
Normal file
|
@ -0,0 +1,215 @@
|
|||
# https://community.kde.org/Applications/17.12_Release_Notes
|
||||
#
|
||||
# Some of the kdegraphics needs to be compiled first:
|
||||
libkipi
|
||||
kipi-plugins
|
||||
libkexiv2
|
||||
libkdcraw
|
||||
libksane
|
||||
gwenview
|
||||
|
||||
# Not currently packaging due to deps needed for kaccounts-integration, and
|
||||
# more deps needed for those deps. Might check into it again later...
|
||||
#kaccounts-integration
|
||||
#kaccounts-providers
|
||||
|
||||
# kdebase:
|
||||
kio-extras
|
||||
kio-gdrive
|
||||
konsole
|
||||
kate
|
||||
kdialog
|
||||
keditbookmarks
|
||||
kfind
|
||||
konqueror
|
||||
|
||||
# kdeutils:
|
||||
ark
|
||||
baloo-widgets
|
||||
filelight
|
||||
kcalc
|
||||
kcharselect
|
||||
kdf
|
||||
kfloppy
|
||||
kgpg
|
||||
print-manager
|
||||
kbackup
|
||||
ktimer
|
||||
khelpcenter
|
||||
kwalletmanager
|
||||
sweeper
|
||||
|
||||
# dolphin needs to pick up baloo5-widgets:
|
||||
dolphin
|
||||
|
||||
# kdesdk:
|
||||
kdebugsettings
|
||||
kapptemplate
|
||||
cervisia
|
||||
dolphin-plugins
|
||||
kcachegrind
|
||||
kde-dev-scripts
|
||||
kde-dev-utils
|
||||
kdesdk-kioslaves
|
||||
kdesdk-thumbnailers
|
||||
kross-interpreters
|
||||
libkomparediff2
|
||||
kompare
|
||||
lokalize
|
||||
poxml
|
||||
umbrello
|
||||
|
||||
# Rest of kdegraphics:
|
||||
kdegraphics-mobipocket
|
||||
okular
|
||||
kdegraphics-thumbnailers
|
||||
kamera
|
||||
kcolorchooser
|
||||
kolourpaint
|
||||
kruler
|
||||
spectacle
|
||||
svgpart
|
||||
kirigami-gallery
|
||||
|
||||
# kdeaccessibility:
|
||||
kmouth
|
||||
kmousetool
|
||||
kmag
|
||||
|
||||
# kdemultimedia:
|
||||
libkcddb
|
||||
libkcompactdisc
|
||||
audiocd-kio
|
||||
dragon
|
||||
juk
|
||||
kmix
|
||||
ffmpegthumbs
|
||||
kwave
|
||||
k3b
|
||||
kamoso
|
||||
elisa
|
||||
|
||||
# kdenetwork:
|
||||
kdenetwork-filesharing
|
||||
zeroconf-ioslave
|
||||
kget
|
||||
kopete
|
||||
krdc
|
||||
krfb
|
||||
|
||||
# kdeadmin:
|
||||
kcron
|
||||
ksystemlog
|
||||
|
||||
# kdegames:
|
||||
libkdegames
|
||||
libkmahjongg
|
||||
klickety
|
||||
ksudoku
|
||||
ksquares
|
||||
# Needs fc-solver library:
|
||||
kpat
|
||||
klines
|
||||
ksnakeduel
|
||||
kollision
|
||||
kshisen
|
||||
kblocks
|
||||
lskat
|
||||
kreversi
|
||||
bovo
|
||||
#kajongg
|
||||
granatier
|
||||
kmines
|
||||
kiriki
|
||||
kigo
|
||||
bomber
|
||||
kolf
|
||||
kdiamond
|
||||
kbounce
|
||||
konquest
|
||||
kapman
|
||||
knavalbattle
|
||||
killbots
|
||||
kubrick
|
||||
kgoldrunner
|
||||
knetwalk
|
||||
kbreakout
|
||||
ksirk
|
||||
kfourinline
|
||||
picmi
|
||||
kblackbox
|
||||
palapeli
|
||||
katomic
|
||||
ktuberling
|
||||
kjumpingcube
|
||||
kmahjongg
|
||||
kspaceduel
|
||||
knights
|
||||
|
||||
# kdetoys:
|
||||
kteatime
|
||||
|
||||
# kdeedu:
|
||||
kdeedu-data
|
||||
libkeduvocdocument
|
||||
analitza
|
||||
kalgebra
|
||||
kanagram
|
||||
khangman
|
||||
kig
|
||||
parley
|
||||
artikulate
|
||||
blinken
|
||||
cantor
|
||||
kalzium
|
||||
kbruch
|
||||
kgeography
|
||||
kiten
|
||||
klettres
|
||||
kmplot
|
||||
kqtquickcharts
|
||||
ktouch
|
||||
kturtle
|
||||
kwordquiz
|
||||
marble
|
||||
rocs
|
||||
step
|
||||
minuet
|
||||
|
||||
# Needs to come after marble (obsolete, removed):
|
||||
#libkgeomap
|
||||
|
||||
# Needs ffmpeg and dvdauthor to be really useful:
|
||||
kdenlive
|
||||
|
||||
# kdewebdev remnant:
|
||||
kimagemapeditor
|
||||
|
||||
# New in 19.08:
|
||||
yakuake
|
||||
|
||||
# New in 20.04:
|
||||
kdeconnect-kde
|
||||
|
||||
# New in 20.12.0:
|
||||
markdownpart
|
||||
kpublictransport
|
||||
kosmindoormap
|
||||
itinerary
|
||||
kontrast
|
||||
konversation
|
||||
libktorrent
|
||||
ktorrent
|
||||
kpmcore
|
||||
partitionmanager
|
||||
|
||||
# New in 21.08.0:
|
||||
skanlite
|
||||
|
||||
# kdevelop added to 21.12.0:
|
||||
kdevelop
|
||||
kdev-php
|
||||
kdev-python
|
||||
|
||||
# New in 21.12.0:
|
||||
zanshin
|
9
patches/source/kcron/noarch
Normal file
9
patches/source/kcron/noarch
Normal file
|
@ -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
|
||||
|
4
patches/source/kcron/nomake
Normal file
4
patches/source/kcron/nomake
Normal file
|
@ -0,0 +1,4 @@
|
|||
breeze-grub
|
||||
oxygen-fonts
|
||||
sddm-theme-breeze
|
||||
|
11
patches/source/kcron/package-blacklist
Normal file
11
patches/source/kcron/package-blacklist
Normal file
|
@ -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
|
146
patches/source/kcron/plasma_checkout.sh
Normal file
146
patches/source/kcron/plasma_checkout.sh
Normal file
|
@ -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!
|
19
patches/source/kcron/slack-desc/kcron
Normal file
19
patches/source/kcron/slack-desc/kcron
Normal file
|
@ -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------------------------------------------------------|
|
||||
kcron: kcron (task scheduler)
|
||||
kcron:
|
||||
kcron: kcron is a module for scheduling programs to run in the background.
|
||||
kcron: It is a graphical user interface to cron, the UNIX system scheduler.
|
||||
kcron:
|
||||
kcron:
|
||||
kcron:
|
||||
kcron:
|
||||
kcron:
|
||||
kcron:
|
||||
kcron:
|
1
patches/source/plasma-workspace/build/plasma-workspace
Normal file
1
patches/source/plasma-workspace/build/plasma-workspace
Normal file
|
@ -0,0 +1 @@
|
|||
4_slack15.0
|
22
patches/source/plasma-workspace/cmake/cmake
Normal file
22
patches/source/plasma-workspace/cmake/cmake
Normal file
|
@ -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 \
|
||||
..
|
||||
|
1
patches/source/plasma-workspace/docs/k3b
Normal file
1
patches/source/plasma-workspace/docs/k3b
Normal file
|
@ -0,0 +1 @@
|
|||
COPYING* ChangeLog FAQ.txt INSTALL.txt PERMISSIONS.txt README.txt Release\ How\ To.txt
|
2
patches/source/plasma-workspace/docs/kdepimlibs
Normal file
2
patches/source/plasma-workspace/docs/kdepimlibs
Normal file
|
@ -0,0 +1,2 @@
|
|||
COPYING* DEBUG HACKING MAINTAINERS PLAN POLICIES README*
|
||||
|
572
patches/source/plasma-workspace/kde.SlackBuild
Executable file
572
patches/source/plasma-workspace/kde.SlackBuild
Executable file
|
@ -0,0 +1,572 @@
|
|||
#!/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
|
||||
|
||||
|
68
patches/source/plasma-workspace/kde.options
Normal file
68
patches/source/plasma-workspace/kde.options
Normal file
|
@ -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
|
58
patches/source/plasma-workspace/modules/plasma
Normal file
58
patches/source/plasma-workspace/modules/plasma
Normal file
|
@ -0,0 +1,58 @@
|
|||
# plasma
|
||||
kgamma5
|
||||
kdecoration
|
||||
breeze
|
||||
breeze-gtk
|
||||
breeze-grub
|
||||
#breeze-plymouth
|
||||
kwayland-integration
|
||||
kwayland-server
|
||||
plasma-integration
|
||||
kinfocenter
|
||||
libksysguard
|
||||
#ksysguard
|
||||
layer-shell-qt
|
||||
kscreenlocker
|
||||
kwin
|
||||
kwrited
|
||||
libkscreen
|
||||
milou
|
||||
oxygen
|
||||
plasma-workspace
|
||||
kde-cli-tools
|
||||
# Circular dependency between plasma-workspace and kde-cli-tools:
|
||||
plasma-workspace
|
||||
systemsettings
|
||||
plasma-desktop
|
||||
kdeplasma-addons
|
||||
plasma-workspace-wallpapers
|
||||
plasma-nm
|
||||
powerdevil
|
||||
bluedevil
|
||||
khotkeys
|
||||
kmenuedit
|
||||
polkit-kde-agent-1
|
||||
kscreen
|
||||
sddm-kcm
|
||||
kde-gtk-config
|
||||
ksshaskpass
|
||||
plasma-sdk
|
||||
plasma-pa
|
||||
#plasma-tests
|
||||
kactivitymanagerd
|
||||
user-manager
|
||||
xdg-desktop-portal-kde
|
||||
drkonqi
|
||||
plasma-vault
|
||||
plasma-browser-integration
|
||||
kwallet-pam
|
||||
plasma-disks
|
||||
#plymouth-kcm
|
||||
#discover
|
||||
#plasma-thunderbolt
|
||||
#plasma-nano
|
||||
#plasma-phone-components
|
||||
plasma-firewall
|
||||
plasma-systemmonitor
|
||||
qqc2-breeze-style
|
||||
ksystemstats
|
9
patches/source/plasma-workspace/noarch
Normal file
9
patches/source/plasma-workspace/noarch
Normal file
|
@ -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
|
||||
|
4
patches/source/plasma-workspace/nomake
Normal file
4
patches/source/plasma-workspace/nomake
Normal file
|
@ -0,0 +1,4 @@
|
|||
breeze-grub
|
||||
oxygen-fonts
|
||||
sddm-theme-breeze
|
||||
|
11
patches/source/plasma-workspace/package-blacklist
Normal file
11
patches/source/plasma-workspace/package-blacklist
Normal file
|
@ -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
|
|
@ -0,0 +1,6 @@
|
|||
cat $CWD/patch/plasma-workspace/0001-Revert-No-icons-on-the-desktop-by-default.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
|
||||
cat $CWD/patch/plasma-workspace/70d23b89.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
|
||||
cat $CWD/patch/plasma-workspace/926f864756e5586f38574c166abdb5befa3dc771.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
|
||||
cat $CWD/patch/plasma-workspace/0001-Revert-Drop-setupX11-from-startplasma-waylandsession.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
|
||||
cat $CWD/patch/plasma-workspace/0002-Revert-Drop-X11-root-properties-for-KDE-full-session.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
|
||||
cat $CWD/patch/plasma-workspace/da843d3fdb143ed44094c8e6246cfb8305f6f09f.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
|
|
@ -0,0 +1,30 @@
|
|||
From 5db85cf17cd11236f8ee44ba95dd56b81087c6aa Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Date: Thu, 21 Oct 2021 08:20:33 +0200
|
||||
Subject: [PATCH 1/2] Revert "Drop setupX11 from startplasma-waylandsession"
|
||||
|
||||
This reverts commit 8bf0e43620de3416e783c307ba10111c6964757b.
|
||||
---
|
||||
startkde/startplasma-waylandsession.cpp | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
|
||||
index 3a054a04f..ed496cc24 100644
|
||||
--- a/startkde/startplasma-waylandsession.cpp
|
||||
+++ b/startkde/startplasma-waylandsession.cpp
|
||||
@@ -19,6 +19,12 @@ int main(int argc, char **argv)
|
||||
|
||||
out << "startplasma-waylandsession: Starting up...";
|
||||
|
||||
+ if (qEnvironmentVariableIsSet("DISPLAY")) {
|
||||
+ setupX11();
|
||||
+ } else {
|
||||
+ qWarning() << "running kwin without Xwayland support";
|
||||
+ }
|
||||
+
|
||||
if (!syncDBusEnvironment()) {
|
||||
out << "Could not sync environment to dbus.\n";
|
||||
return 2;
|
||||
--
|
||||
2.33.0
|
||||
|
|
@ -0,0 +1,133 @@
|
|||
From a437cb34a3cacc0daae012a26cb5a28407a6f873 Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Date: Wed, 28 Feb 2018 17:10:14 +0100
|
||||
Subject: [PATCH] Revert "No icons on the desktop by default"
|
||||
|
||||
This reverts commit 240d0d6fe1e5db88e304199339396bd48c23e130.
|
||||
|
||||
We want those icons in openSUSE. They've always been there and there is no
|
||||
reason not to have them.
|
||||
---
|
||||
kioslave/desktop/CMakeLists.txt | 1 +
|
||||
kioslave/desktop/Home.desktop | 88 ++++++++++++++++++++++++++++++++++++++++
|
||||
kioslave/desktop/kio_desktop.cpp | 4 ++
|
||||
3 files changed, 93 insertions(+)
|
||||
create mode 100644 kioslave/desktop/Home.desktop
|
||||
|
||||
Index: plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/CMakeLists.txt
|
||||
===================================================================
|
||||
--- plasma-workspace-5.17.80git.20210531T011335~40d302afe.orig/kioslave/desktop/CMakeLists.txt 2021-05-31 03:13:35.000000000 +0200
|
||||
+++ plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/CMakeLists.txt 2021-05-31 06:59:47.519362944 +0200
|
||||
@@ -31,3 +31,4 @@
|
||||
########### install files ###############
|
||||
|
||||
install(FILES directory.desktop directory.trash DESTINATION ${KDE_INSTALL_DATADIR}/kio_desktop)
|
||||
+install(FILES Home.desktop DESTINATION ${KDE_INSTALL_DATADIR}/kio_desktop/DesktopLinks)
|
||||
Index: plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/Home.desktop
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/Home.desktop 2021-05-31 06:59:47.519362944 +0200
|
||||
@@ -0,0 +1,88 @@
|
||||
+[Desktop Entry]
|
||||
+Encoding=UTF-8
|
||||
+Name=Home
|
||||
+Name[ca]=Inici
|
||||
+Name[ca@valencia]=Inici
|
||||
+Name[cs]=Můj adresář
|
||||
+Name[da]=Hjem
|
||||
+Name[de]=Persönlicher Ordner
|
||||
+Name[el]=Προσωπικός φάκελος
|
||||
+Name[en_GB]=Home
|
||||
+Name[es]=Inicio
|
||||
+Name[et]=Kodu
|
||||
+Name[eu]=Etxea
|
||||
+Name[fi]=Koti
|
||||
+Name[fr]=Dossier personnel
|
||||
+Name[gl]=Persoal
|
||||
+Name[he]=בית
|
||||
+Name[hu]=Saját mappa
|
||||
+Name[is]=Heimamappa
|
||||
+Name[it]=Home
|
||||
+Name[ja]=ホーム
|
||||
+Name[ko]=홈
|
||||
+Name[lt]=Pradžia
|
||||
+Name[nl]=Home
|
||||
+Name[nn]=Heim
|
||||
+Name[pa]=ਘਰ
|
||||
+Name[pl]=Katalog domowy
|
||||
+Name[pt]=Pasta Pessoal
|
||||
+Name[pt_BR]=Pasta Pessoal
|
||||
+Name[ru]=Домашняя папка
|
||||
+Name[se]=Ruoktu
|
||||
+Name[sk]=Domov
|
||||
+Name[sl]=Dom
|
||||
+Name[sr]=Домаће
|
||||
+Name[sr@ijekavian]=Домаће
|
||||
+Name[sr@ijekavianlatin]=Domaće
|
||||
+Name[sr@latin]=Domaće
|
||||
+Name[sv]=Hem
|
||||
+Name[tr]=Başlangıç
|
||||
+Name[uk]=Домівка
|
||||
+Name[x-test]=xxHomexx
|
||||
+Name[zh_CN]=主文件夹
|
||||
+Name[zh_TW]=家目錄
|
||||
+GenericName=Personal Files
|
||||
+GenericName[ca]=Fitxers personals
|
||||
+GenericName[ca@valencia]=Fitxers personals
|
||||
+GenericName[cs]=Osobní soubory
|
||||
+GenericName[da]=Personlige filer
|
||||
+GenericName[de]=Persönliche Dateien
|
||||
+GenericName[el]=Προσωπικά αρχεία
|
||||
+GenericName[en_GB]=Personal Files
|
||||
+GenericName[es]=Archivos personales
|
||||
+GenericName[et]=Isiklikud failid
|
||||
+GenericName[eu]=Fitxategi pertsonalak
|
||||
+GenericName[fi]=Omat tiedostot
|
||||
+GenericName[fr]=Fichiers personnels
|
||||
+GenericName[gl]=Ficheiros persoais
|
||||
+GenericName[he]=קבצים אישיים
|
||||
+GenericName[hu]=Személyes fájlok
|
||||
+GenericName[is]=Einkaskrár
|
||||
+GenericName[it]=File personali
|
||||
+GenericName[ja]=個人のファイル
|
||||
+GenericName[ko]=개인적인 파일
|
||||
+GenericName[lt]=Asmeniniai failai
|
||||
+GenericName[nl]=Persoonlijke bestanden
|
||||
+GenericName[nn]=Personlege filer
|
||||
+GenericName[pa]=ਨਿੱਜੀ ਫਾਇਲਾਂ
|
||||
+GenericName[pl]=Pliki osobiste
|
||||
+GenericName[pt]=Ficheiros Pessoais
|
||||
+GenericName[pt_BR]=Arquivos pessoais
|
||||
+GenericName[ru]=Личные файлы
|
||||
+GenericName[se]=Iežat fiillat
|
||||
+GenericName[sk]=Osobné súbory
|
||||
+GenericName[sl]=Osebne datoteke
|
||||
+GenericName[sr]=Лични фајлови
|
||||
+GenericName[sr@ijekavian]=Лични фајлови
|
||||
+GenericName[sr@ijekavianlatin]=Lični fajlovi
|
||||
+GenericName[sr@latin]=Lični fajlovi
|
||||
+GenericName[sv]=Personliga filer
|
||||
+GenericName[tr]=Kişisel Dosyalar
|
||||
+GenericName[uk]=Особисті файли
|
||||
+GenericName[x-test]=xxPersonal Filesxx
|
||||
+GenericName[zh_CN]=个人文件
|
||||
+GenericName[zh_TW]=個人檔案
|
||||
+URL[$e]=$HOME
|
||||
+Icon=user-home
|
||||
+Type=Link
|
||||
+
|
||||
Index: plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/kio_desktop.cpp
|
||||
===================================================================
|
||||
--- plasma-workspace-5.17.80git.20210531T011335~40d302afe.orig/kioslave/desktop/kio_desktop.cpp 2021-05-31 03:13:35.000000000 +0200
|
||||
+++ plasma-workspace-5.17.80git.20210531T011335~40d302afe/kioslave/desktop/kio_desktop.cpp 2021-05-31 06:59:47.519362944 +0200
|
||||
@@ -90,6 +90,10 @@
|
||||
// Copy the .directory file
|
||||
QFile::copy(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kio_desktop/directory.desktop")), desktopPath + "/.directory");
|
||||
|
||||
+ // Copy the trash link
|
||||
+ QFile::copy(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kio_desktop/directory.trash")),
|
||||
+ desktopPath + "/trash.desktop");
|
||||
+
|
||||
// Copy the desktop links
|
||||
QSet<QString> links;
|
||||
const auto dirs =
|
|
@ -0,0 +1,86 @@
|
|||
From 075b2f27722d2f28a5c3d4e201c7e7e787cb68de Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Date: Thu, 21 Oct 2021 08:20:38 +0200
|
||||
Subject: [PATCH 2/2] Revert "Drop X11 root properties for KDE full session /
|
||||
session version"
|
||||
|
||||
This reverts commit 9a4e3d39c2a9ca48f39a60ae2ea88e9921723cec.
|
||||
---
|
||||
startkde/startplasma-waylandsession.cpp | 1 +
|
||||
startkde/startplasma-x11.cpp | 1 +
|
||||
startkde/startplasma.cpp | 22 ++++++++++++++++++++++
|
||||
startkde/startplasma.h | 1 +
|
||||
4 files changed, 25 insertions(+)
|
||||
|
||||
diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
|
||||
index ed496cc24..d0c83bf5a 100644
|
||||
--- a/startkde/startplasma-waylandsession.cpp
|
||||
+++ b/startkde/startplasma-waylandsession.cpp
|
||||
@@ -41,6 +41,7 @@ int main(int argc, char **argv)
|
||||
// Keep for KF5; remove in KF6 (KInit will be gone then)
|
||||
runSync(QStringLiteral("kdeinit5_shutdown"), {});
|
||||
|
||||
+ cleanupX11();
|
||||
out << "startplasma-waylandsession: Done.\n";
|
||||
|
||||
return 0;
|
||||
diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
|
||||
index d6b2c5439..7ddf7b3ea 100644
|
||||
--- a/startkde/startplasma-x11.cpp
|
||||
+++ b/startkde/startplasma-x11.cpp
|
||||
@@ -93,6 +93,7 @@ int main(int argc, char **argv)
|
||||
runSync(QStringLiteral("kdeinit5_shutdown"), {});
|
||||
|
||||
cleanupPlasmaEnvironment(oldSystemdEnvironment);
|
||||
+ cleanupX11();
|
||||
|
||||
out << "startkde: Done.\n";
|
||||
|
||||
diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
|
||||
index 8d0b0ba89..5f78e7016 100644
|
||||
--- a/startkde/startplasma.cpp
|
||||
+++ b/startkde/startplasma.cpp
|
||||
@@ -336,6 +336,28 @@ void setupX11()
|
||||
// so don't move this up.
|
||||
|
||||
runSync(QStringLiteral("xsetroot"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
|
||||
+ runSync(QStringLiteral("xprop"),
|
||||
+ {QStringLiteral("-root"),
|
||||
+ QStringLiteral("-f"),
|
||||
+ QStringLiteral("KDE_FULL_SESSION"),
|
||||
+ QStringLiteral("8t"),
|
||||
+ QStringLiteral("-set"),
|
||||
+ QStringLiteral("KDE_FULL_SESSION"),
|
||||
+ QStringLiteral("true")});
|
||||
+ runSync(QStringLiteral("xprop"),
|
||||
+ {QStringLiteral("-root"),
|
||||
+ QStringLiteral("-f"),
|
||||
+ QStringLiteral("KDE_SESSION_VERSION"),
|
||||
+ QStringLiteral("32c"),
|
||||
+ QStringLiteral("-set"),
|
||||
+ QStringLiteral("KDE_SESSION_VERSION"),
|
||||
+ QStringLiteral("5")});
|
||||
+}
|
||||
+
|
||||
+void cleanupX11()
|
||||
+{
|
||||
+ runSync(QStringLiteral("xprop"), {QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_FULL_SESSION")});
|
||||
+ runSync(QStringLiteral("xprop"), {QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_SESSION_VERSION")});
|
||||
}
|
||||
|
||||
void cleanupPlasmaEnvironment(const std::optional<QStringList> &oldSystemdEnvironment)
|
||||
diff --git a/startkde/startplasma.h b/startkde/startplasma.h
|
||||
index e8684be74..00c5c1570 100644
|
||||
--- a/startkde/startplasma.h
|
||||
+++ b/startkde/startplasma.h
|
||||
@@ -26,6 +26,7 @@ void importSystemdEnvrionment();
|
||||
void runEnvironmentScripts();
|
||||
void setupPlasmaEnvironment();
|
||||
void cleanupPlasmaEnvironment(const std::optional<QStringList> &oldSystemdEnvironment);
|
||||
+void cleanupX11();
|
||||
bool syncDBusEnvironment();
|
||||
void setupFontDpi();
|
||||
QProcess *setupKSplash();
|
||||
--
|
||||
2.33.0
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
From 70d23b891e95bc6911389773f320a4406a12bd87 Mon Sep 17 00:00:00 2001
|
||||
From: Lufan Zhong <lufanzhong@gmail.com>
|
||||
Date: Sun, 26 Dec 2021 19:33:09 +0000
|
||||
Subject: [PATCH] runners/shell: Port from KToolInvocation::invokeTerminal to
|
||||
KTerminalLauncherJob
|
||||
|
||||
kinit is being deprecated; this change will allow it to open a terminal and execute
|
||||
commands normally without kinit being present.
|
||||
|
||||
BUG: 437131
|
||||
FIXED-IN: 5.24
|
||||
---
|
||||
runners/shell/shellrunner.cpp | 15 +++++++++++++--
|
||||
1 file changed, 13 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/runners/shell/shellrunner.cpp b/runners/shell/shellrunner.cpp
|
||||
index 03b54e1f1..be4058acf 100644
|
||||
--- a/runners/shell/shellrunner.cpp
|
||||
+++ b/runners/shell/shellrunner.cpp
|
||||
@@ -12,8 +12,9 @@
|
||||
#include <KLocalizedString>
|
||||
#include <KNotificationJobUiDelegate>
|
||||
#include <KShell>
|
||||
-#include <KToolInvocation>
|
||||
+#include <KTerminalLauncherJob>
|
||||
#include <QAction>
|
||||
+#include <QProcessEnvironment>
|
||||
#include <QRegularExpression>
|
||||
#include <QStandardPaths>
|
||||
|
||||
@@ -62,7 +63,17 @@ void ShellRunner::run(const Plasma::RunnerContext &context, const Plasma::QueryM
|
||||
{
|
||||
if (match.selectedAction()) {
|
||||
const QVariantList data = match.data().toList();
|
||||
- KToolInvocation::invokeTerminal(data.at(0).toString(), data.at(1).toStringList());
|
||||
+ const QStringList list = data.at(1).toStringList();
|
||||
+ QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||
+ for (const auto& str : list)
|
||||
+ {
|
||||
+ const int pos = str.indexOf('=');
|
||||
+ env.insert(str.left(pos), str.mid(pos+1));
|
||||
+ }
|
||||
+ auto job = new KTerminalLauncherJob(data.at(0).toString());
|
||||
+ job->setProcessEnvironment(env);
|
||||
+ job->setUiDelegate(new KNotificationJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled));
|
||||
+ job->start();
|
||||
return;
|
||||
}
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
From 926f864756e5586f38574c166abdb5befa3dc771 Mon Sep 17 00:00:00 2001
|
||||
From: David Edmundson <kde@davidedmundson.co.uk>
|
||||
Date: Wed, 8 Dec 2021 13:08:43 +0000
|
||||
Subject: [PATCH] [libtaskmanager] Increase buffer for pipewire format
|
||||
negotiation
|
||||
|
||||
Libtaskmanager's buffer for spa_builder is too small on certain
|
||||
configurations. Because podBuilder->state.offset is never reset, the
|
||||
buffer space can run out when EGL returns a long list of dma_buf
|
||||
modifiers, causing PipeWire negotiation to fail.
|
||||
|
||||
An example is when EGL returns 20 modifiers. There are 6 formats defined
|
||||
in pipewiresourcestream.cpp, for each format it will construct 2 frames,
|
||||
one with 21*8=168 bytes long of modifiers. The modifier lists for all
|
||||
frames will be 6*168=1008 bytes (only 16 bytes left of 1024 bytes), let
|
||||
alone other frames.
|
||||
|
||||
BUG: 446061
|
||||
---
|
||||
libtaskmanager/declarative/pipewiresourcestream.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libtaskmanager/declarative/pipewiresourcestream.cpp b/libtaskmanager/declarative/pipewiresourcestream.cpp
|
||||
index a6713ae76..f1d3032a5 100644
|
||||
--- a/libtaskmanager/declarative/pipewiresourcestream.cpp
|
||||
+++ b/libtaskmanager/declarative/pipewiresourcestream.cpp
|
||||
@@ -260,7 +260,7 @@ bool PipeWireSourceStream::createStream(uint nodeid)
|
||||
pwNodeId = nodeid;
|
||||
pw_stream_add_listener(pwStream, &streamListener, &pwStreamEvents, this);
|
||||
|
||||
- uint8_t buffer[1024];
|
||||
+ uint8_t buffer[4096];
|
||||
spa_pod_builder podBuilder = SPA_POD_BUILDER_INIT(buffer, sizeof(buffer));
|
||||
|
||||
const QVector<spa_video_format> formats =
|
||||
--
|
||||
GitLab
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
From da843d3fdb143ed44094c8e6246cfb8305f6f09f Mon Sep 17 00:00:00 2001
|
||||
From: David Edmundson <kde@davidedmundson.co.uk>
|
||||
Date: Sat, 13 Apr 2024 23:07:19 +0100
|
||||
Subject: [PATCH] Authenticate local clients
|
||||
|
||||
ksmserver currently authenticates remote clients, but allows local
|
||||
connections through.
|
||||
|
||||
This is a security risk that can allow another user on the same system
|
||||
to access the user's session management session without authentication.
|
||||
|
||||
Co-authored-by: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
---
|
||||
ksmserver/server.cpp | 57 ++++----------------------------------------
|
||||
1 file changed, 5 insertions(+), 52 deletions(-)
|
||||
|
||||
diff --git a/ksmserver/server.cpp b/ksmserver/server.cpp
|
||||
index 8a408cf73b..62bb8fb74d 100644
|
||||
--- a/ksmserver/server.cpp
|
||||
+++ b/ksmserver/server.cpp
|
||||
@@ -158,15 +158,6 @@ static QTemporaryFile *remTempFile = nullptr;
|
||||
|
||||
static IceListenObj *listenObjs = nullptr;
|
||||
int numTransports = 0;
|
||||
-static bool only_local = 0;
|
||||
-
|
||||
-static Bool HostBasedAuthProc(char * /*hostname*/)
|
||||
-{
|
||||
- if (only_local)
|
||||
- return true;
|
||||
- else
|
||||
- return false;
|
||||
-}
|
||||
|
||||
Status KSMRegisterClientProc(SmsConn /* smsConn */, SmPointer managerData, char *previousId)
|
||||
{
|
||||
@@ -311,33 +302,6 @@ static void write_iceauth(FILE *addfp, FILE *removefp, IceAuthDataEntry *entry)
|
||||
|
||||
#define MAGIC_COOKIE_LEN 16
|
||||
|
||||
-Status SetAuthentication_local(int count, IceListenObj *listenObjs)
|
||||
-{
|
||||
- int i;
|
||||
- for (i = 0; i < count; i++) {
|
||||
- char *prot = IceGetListenConnectionString(listenObjs[i]);
|
||||
- if (!prot)
|
||||
- continue;
|
||||
- char *host = strchr(prot, '/');
|
||||
- char *sock = nullptr;
|
||||
- if (host) {
|
||||
- *host = 0;
|
||||
- host++;
|
||||
- sock = strchr(host, ':');
|
||||
- if (sock) {
|
||||
- *sock = 0;
|
||||
- sock++;
|
||||
- }
|
||||
- }
|
||||
- qCDebug(KSMSERVER) << "KSMServer: SetAProc_loc: conn " << (unsigned)i << ", prot=" << prot << ", file=" << sock;
|
||||
- if (sock && !strcmp(prot, "local")) {
|
||||
- chmod(sock, 0700);
|
||||
- }
|
||||
- IceSetHostBasedAuthProc(listenObjs[i], HostBasedAuthProc);
|
||||
- free(prot);
|
||||
- }
|
||||
- return 1;
|
||||
-}
|
||||
|
||||
Status SetAuthentication(int count, IceListenObj *listenObjs, IceAuthDataEntry **authDataEntries)
|
||||
{
|
||||
@@ -372,8 +336,6 @@ Status SetAuthentication(int count, IceListenObj *listenObjs, IceAuthDataEntry *
|
||||
write_iceauth(addAuthFile, remAuthFile, &(*authDataEntries)[i + 1]);
|
||||
|
||||
IceSetPaAuthData(2, &(*authDataEntries)[i]);
|
||||
-
|
||||
- IceSetHostBasedAuthProc(listenObjs[i / 2], HostBasedAuthProc);
|
||||
}
|
||||
fclose(addAuthFile);
|
||||
fclose(remAuthFile);
|
||||
@@ -397,9 +359,6 @@ Status SetAuthentication(int count, IceListenObj *listenObjs, IceAuthDataEntry *
|
||||
void FreeAuthenticationData(int count, IceAuthDataEntry *authDataEntries)
|
||||
{
|
||||
/* Each transport has entries for ICE and XSMP */
|
||||
- if (only_local)
|
||||
- return;
|
||||
-
|
||||
for (int i = 0; i < count * 2; i++) {
|
||||
free(authDataEntries[i].network_id);
|
||||
free(authDataEntries[i].auth_data);
|
||||
@@ -542,16 +501,14 @@ KSMServer::KSMServer(InitFlags flags)
|
||||
clientInteracting = nullptr;
|
||||
xonCommand = config.readEntry("xonCommand", "xon");
|
||||
|
||||
- only_local = flags.testFlag(InitFlag::OnlyLocal);
|
||||
#ifdef HAVE__ICETRANSNOLISTEN
|
||||
- if (only_local)
|
||||
+ if (flags.testFlag(InitFlag::OnlyLocal)) {
|
||||
_IceTransNoListen("tcp");
|
||||
-#else
|
||||
- only_local = false;
|
||||
+ }
|
||||
#endif
|
||||
|
||||
char errormsg[256];
|
||||
- if (!SmsInitialize((char *)KSMVendorString, (char *)KSMReleaseString, KSMNewClientProc, (SmPointer)this, HostBasedAuthProc, 256, errormsg)) {
|
||||
+ if (!SmsInitialize((char *)KSMVendorString, (char *)KSMReleaseString, KSMNewClientProc, (SmPointer)this, nullptr, 256, errormsg)) {
|
||||
qCWarning(KSMSERVER, "KSMServer: could not register XSM protocol");
|
||||
}
|
||||
|
||||
@@ -594,12 +551,8 @@ KSMServer::KSMServer(InitFlags flags)
|
||||
free(session_manager);
|
||||
}
|
||||
|
||||
- if (only_local) {
|
||||
- if (!SetAuthentication_local(numTransports, listenObjs))
|
||||
- qFatal("KSMSERVER: authentication setup failed.");
|
||||
- } else {
|
||||
- if (!SetAuthentication(numTransports, listenObjs, &authDataEntries))
|
||||
- qFatal("KSMSERVER: authentication setup failed.");
|
||||
+ if (!SetAuthentication(numTransports, listenObjs, &authDataEntries)) {
|
||||
+ qFatal("KSMSERVER: authentication setup failed.");
|
||||
}
|
||||
|
||||
IceAddConnectionWatch(KSMWatchProc, (IcePointer)this);
|
||||
--
|
||||
GitLab
|
||||
|
2
patches/source/plasma-workspace/plasma-workspace.SlackBuild
Executable file
2
patches/source/plasma-workspace/plasma-workspace.SlackBuild
Executable file
|
@ -0,0 +1,2 @@
|
|||
UPGRADE_PACKAGES=no ./kde.SlackBuild plasma:plasma-workspace
|
||||
mv /tmp/kde_build/plasma-workspace*txz /tmp
|
146
patches/source/plasma-workspace/plasma_checkout.sh
Normal file
146
patches/source/plasma-workspace/plasma_checkout.sh
Normal file
|
@ -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!
|
|
@ -0,0 +1,57 @@
|
|||
|
||||
# Use ck-launch-session in runlevel 3 if that is available,
|
||||
# to start and attach a ConsoleKit session to the X session:
|
||||
mkdir -p $PKG/etc/X11/xinit
|
||||
cat $CWD/post-install/plasma-workspace/xinit/xinitrc.kde \
|
||||
| sed -e "s/@LIBDIRSUFFIX@/$LIBDIRSUFFIX/g" \
|
||||
> $PKG/etc/X11/xinit/xinitrc.kde
|
||||
chmod 0755 $PKG/etc/X11/xinit/xinitrc.kde
|
||||
|
||||
# Add a script that launches a Plasma Wayland session from the commandline:
|
||||
mkdir -p $PKG/usr/bin
|
||||
cat $CWD/post-install/plasma-workspace/scripts/startkwayland \
|
||||
| sed -e "s/@LIBDIRSUFFIX@/$LIBDIRSUFFIX/g" \
|
||||
> $PKG/usr/bin/startkwayland
|
||||
chmod 0755 $PKG/usr/bin/startkwayland
|
||||
|
||||
# Install custom "full wayland" session
|
||||
pushd $PKG/usr/share/wayland-sessions/
|
||||
sed '/^Name/d;s/^Exec=/Exec=env GDK_BACKEND=wayland QT_QPA_PLATFORM=wayland /' plasmawayland.desktop > z_plasmafullwayland.desktop
|
||||
echo 'Name=Plasma (Full Wayland)' >> z_plasmafullwayland.desktop
|
||||
popd
|
||||
|
||||
# Add a "fail-safe" version of KDE Plasma desktop session.
|
||||
# Prefix the name with "z_" because SDDM is braindead:
|
||||
mkdir -p $PKG/usr/share/xsessions
|
||||
cat $CWD/post-install/plasma-workspace/xsession/plasma-safe.desktop \
|
||||
| sed -e "s,@PREFIX@,/usr,g" \
|
||||
> $PKG/usr/share/xsessions/z_plasma-safe.desktop
|
||||
|
||||
# What is "plugins/plugins"?
|
||||
mv $PKG/usr/lib$LIBDIRSUFFIX/qt5/plugins/{plugins,}/phonon_platform
|
||||
rmdir $PKG/usr/lib$LIBDIRSUFFIX/qt5/plugins/plugins
|
||||
|
||||
# Move the polkit dbus configuration files to the proper place:
|
||||
mkdir -p $PKG/etc
|
||||
mv $PKG/etc/kde/dbus-1 $PKG/etc/
|
||||
|
||||
if [ "$SLACKPAM" == "no" ]; then
|
||||
# For shadow, this file needs to be setuid root just like the KDE4 version:
|
||||
if [ -f $PKG/usr/lib$LIBDIRSUFFIX/kcheckpass ]; then
|
||||
chmod +s $PKG/usr/lib$LIBDIRSUFFIX/kcheckpass
|
||||
fi
|
||||
|
||||
# ck-launch-session is needed for a Wayland session, since we do not have PAM:
|
||||
sed -e 's/^Exec=dbus-launch/Exec=ck-launch-session dbus-launch --sh-syntax/' \
|
||||
-i $PKG/usr/share/wayland-sessions/plasmawayland.desktop
|
||||
else
|
||||
# Install a PAM file for Plasma5 workspace:
|
||||
install -Dm644 $CWD/post-install/plasma-workspace/pam.d/kde $PKG/etc/pam.d/kde
|
||||
fi
|
||||
|
||||
if [ "$SLKELOGIND" == "yes" ]; then
|
||||
# Since elogind does not set DBUS_SESSION_BUS_ADDRESS we need to start
|
||||
# Plasma X11 session through dbus-run-session like Wayland is launched:
|
||||
sed -i $PKG/usr/share/xsessions/plasma.desktop \
|
||||
-e "s,^Exec=/,Exec=dbus-run-session /,"
|
||||
fi
|
|
@ -0,0 +1,10 @@
|
|||
#%PAM-1.0
|
||||
auth include system-auth
|
||||
auth include postlogin
|
||||
account include system-auth
|
||||
password include system-auth
|
||||
session include system-auth
|
||||
session required pam_loginuid.so
|
||||
-session optional pam_ck_connector.so nox11
|
||||
-session optional pam_elogind.so
|
||||
session include postlogin
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Start KWin as a Plasma 5 Wayland session
|
||||
dbus-launch --sh-syntax --exit-with-session /usr/bin/startplasma-wayland
|
|
@ -0,0 +1,33 @@
|
|||
#!/bin/sh
|
||||
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
|
||||
|
||||
userresources=$HOME/.Xresources
|
||||
usermodmap=$HOME/.Xmodmap
|
||||
sysresources=/etc/X11/xinit/.Xresources
|
||||
sysmodmap=/etc/X11/xinit/.Xmodmap
|
||||
|
||||
# merge in defaults and keymaps
|
||||
|
||||
if [ -f $sysresources ]; then
|
||||
xrdb -merge $sysresources
|
||||
fi
|
||||
|
||||
if [ -f $sysmodmap ]; then
|
||||
xmodmap $sysmodmap
|
||||
fi
|
||||
|
||||
if [ -f $userresources ]; then
|
||||
xrdb -merge $userresources
|
||||
fi
|
||||
|
||||
if [ -f $usermodmap ]; then
|
||||
xmodmap $usermodmap
|
||||
fi
|
||||
|
||||
# Start the window manager:
|
||||
if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then
|
||||
ck-launch-session dbus-launch --sh-syntax --exit-with-session startplasma-x11
|
||||
else
|
||||
dbus-launch --sh-syntax --exit-with-session startplasma-x11
|
||||
fi
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=XSession
|
||||
Exec=dbus-run-session /usr/bin/startplasma-x11 --failsafe
|
||||
TryExec=/usr/bin/startplasma-x11
|
||||
DesktopNames=KDE
|
||||
Name=Plasma (Failsafe)
|
||||
Comment=Plasma by KDE (Failsafe)
|
||||
|
19
patches/source/plasma-workspace/slack-desc/plasma-workspace
Normal file
19
patches/source/plasma-workspace/slack-desc/plasma-workspace
Normal file
|
@ -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 ':' except on otherwise blank lines.
|
||||
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
plasma-workspace: plasma-workspace (KDE Plasma Workspace)
|
||||
plasma-workspace:
|
||||
plasma-workspace: The Plasma Workspace provides support for KDE Plasma Widgets,
|
||||
plasma-workspace: integrated search, hardware management, and a high degree of
|
||||
plasma-workspace: customizability.
|
||||
plasma-workspace:
|
||||
plasma-workspace:
|
||||
plasma-workspace:
|
||||
plasma-workspace:
|
||||
plasma-workspace:
|
||||
plasma-workspace:
|
Loading…
Add table
Reference in a new issue