Hi,
> I use default /usr/local location and do as little customization of the
> build process as possible. Then I tell my KDE sessions to use /usr/local
> stuff as well like this:
This does not touch all relevant env variables (see attached script). It is
configured to have
~/kde/src/<name>/kdepim - source
~/kde/build/<name>/kdepim - build
~/kde/inst/<name> - install dir
after running the script you have to do something like:
setKDEEnv master
Okay it additionally also makes sure that you have different home dirs etc.
In your case the folling env variables should be enough to set:
XDG_DATA_DIRS - needed for akonadi resources
LD_LIBRARY_PATH - to find libs
KDEDIRS
KDEDIR
KDEHOME
PATH
QT_PLUGIN_PATH
> > If somebody would spend the work to provide patches for Jessie, would
> > there be a way to continuously update the packages in the Debian
> > infrastructure? Or would that only work with an external repo?
It can't be done inside Jessie main repo, because debian does allow updates of
packages only for security fixes or fatal issues. Well I may be arguable, that
there are fatal issues, but the work is not worth that need to be done to
extratct the patches. The easier approch is to upload the newer packages to
backports.debian.org. But this also is work, that needs to be done, so if you
step into that, feel welcome! Keep in mind you have to support packages that
are in backports till the end of jessie, so this is not an fire & forget.
Regards,
sandro
--
#! /bin/bash
## A script to setup some needed variables and functions for KDE 4
development.
# Otheng kde3 seems to be in /usr/bin so /usr/sbin seems okay to leave in.
#export PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Qt
# only set Qt related variables if you compiled Qt on your own
# (which is discouraged). if you use the distro provided Qt, skip
# this section. Comment it if necessary.
#export QTDIR=$HOME/qt4
#prepend PATH $QTDIR/bin
#prepend LD_LIBRARY_PATH $QTDIR/lib
#prepend PKG_CONFIG_PATH $QTDIR/lib/pkgconfig
export BASEDIR=/home/kdetest/kde
export GLOBAL_BUILD_DIR=$BASEDIR/build
export GLOBAL_INSTALL_DIR=$BASEDIR/inst
export GLOBAL_HOME_DIR=$BASEDIR/home
export GLOBAL_TMP_DIR=/tmp
export GLOBAL_VARTMP_DIR=/var/tmp
export KDE_SRC=$BASEDIR/src
if [ -z "$ORIGINAL_PATH" ]; then
export ORIGINAL_PATH=$PATH
fi
# KDE
export KDESYCOCA=/var/tmp/kdesycoca-custom
# XDG
unset XDG_DATA_DIRS # to avoid seeing kde3 files from /usr
unset XDG_CONFIG_DIRS
# Use makeobj instead of make, to automatically switch to the build dir.
# If you don't have makeobj, install the package named kdesdk-scripts or
# kdesdk, or check out kdesdk/scripts from svn.
alias make='nice makeobj -j3'
function printKDEenv {
echo "KDEHOME: $KDEHOME"
echo "KDEDIR: $KDEDIR"
echo "KDEDIRS: $KDEDIRS"
echo "BUILD_DIR: $BUILD_DIR"
echo "PATH: $PATH"
echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
echo "PKG_CONFIG_PATH: $PKG_CONFIG_PATH"
echo "QT_PLUGIN_PATH: $QT_PLUGIN_PATH"
echo "CMAKE_PREFIX_PATH: $CMAKE_PREFIX_PATH"
echo "CMAKE_LIBRARY_PATH: $CMAKE_LIBRARY_PATH"
echo "CMAKE_INCLUDE_PATH: $CMAKE_INCLUDE_PATH"
echo "CMAKE_INSTALL_PREFIX: $CMAKE_INSTALL_PREFIX"
echo "XDG_DATA_DIRS: $XDG_DATA_DIRS"
}
function resetCMakePaths {
unset CMAKE_PREFIX_PATH
unset CMAKE_LIBRARY_PATH
unset CMAKE_INCLUDE_PATH
unset CMAKE_MODULE_PATH
unset CMAKE_INSTALL_PREFIX
}
function setCMakePrefixPath {
prefixPath="$1"
export CMAKE_PREFIX_PATH=$prefixPath
export CMAKE_LIBRARY_PATH=$prefixPath/lib:$CMAKE_LIBRARY_PATH
export CMAKE_INCLUDE_PATH=$prefixPath/include:$prefixPath/include/KDE:
$CMAKE_INCLUDE_PATH
export CMAKE_MODULE_PATH=$prefixPath/share/apps/cmake/modules:
$CMAKE_MODULE_PATH
export CMAKE_INSTALL_PREFIX=$prefixPath
}
#Sets all kde related variables (and also resets them"
function setKDEEnv {
envName="$1"
setEnv $envName
export KDEDIR="$GLOBAL_INSTALL_DIR/$envName"
export KDEDIRS=$KDEDIR
export KDEHOME="$GLOBAL_HOME_DIR/.$envName"
export KDETMP="$GLOBAL_TMP_DIR/$envName-$USER"
export KDEVARTMP="$GLOBAL_VARTMP_DIR/$envName-$USER"
export XDG_DATA_DIRS="$GLOBAL_INSTALL_DIR/$envName/share"
mkdir -p $KDETMP
mkdir -p $KDEVARTMP
export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins:
$KDEDIR/lib/plugins/sqldrivers
export
KDE4_AUTH_POLICY_FILES_INSTALL_DIR=$KDEDIR/usr/share/polkit-1/actions
export XDG_CONFIG_HOME=$KDEHOME/.config
export XDG_DATA_HOME=$KDEHOME/.local/share
}
#Sets all kde related variables (and also resets them"
function setEnv {
envName="$1"
echo "Setting env $envName"
export TARGETDIR="$GLOBAL_INSTALL_DIR/$envName"
export PATH=$TARGETDIR/bin:$ORIGINAL_PATH
export LD_LIBRARY_PATH=$TARGETDIR/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$TARGETDIR/lib/pkgconfig:$PKG_CONFIG_PATH
export QT_PLUGIN_PATH=$TARGETDIR/lib/kde4:$TARGETDIR/lib/kde4/plugins
setCMakePrefixPath "$TARGETDIR"
export SRC_DIR=$KDE_SRC
export BUILD_DIR=$GLOBAL_BUILD_DIR/$envName
# Tell many scripts how to switch from source dir to build dir:
export OBJ_REPLACEMENT="s#$SRC_DIR#$BUILD_DIR#"
}
#native build prefix and /usr/local as install prefix
function setEnvNative {
export SRC_DIR=$KDE_SRC
export BUILD_DIR=$HOME/devel/build/native
resetCMakePaths
export CMAKE_INSTALL_PREFIX=/usr/local
# Tell many scripts how to switch from source dir to build dir:
export OBJ_REPLACEMENT="s#$SRC_DIR#$BUILD_DIR#"
}
# A function to easily build the current directory of KDE.
function cmakekde {
if test -n "$1"; then
# srcFolder is defined via command line argument
srcFolder="$1"
else
# get srcFolder for current dir
srcFolder=`pwd | sed -e s,$BUILD_DIR,$SRC_DIR,`
fi
# we are in the src folder, change to build directory
# Alternatively, we could just use makeobj in the commands below...
current=`pwd`
if [[ "$srcFolder" == "$current" ]]; then
cb
fi
# Buildtypes: debug/debugfull
# export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins
# export
KDE4_AUTH_POLICY_FILES_INSTALL_DIR=$KDEDIR/usr/share/polkit-1/actions
# LIB_SUFFIX is for akonadi
cmake "$srcFolder" \
-DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-
DKDE4_AUTH_POLICY_FILES_INSTALL_DIR="$KDE4_AUTH_POLICY_FILES_INSTALL_DIR" \
-DCMAKE_BUILD_TYPE=debugfull \
-DKDE4_BUILD_TESTS=TRUE
cd "$current"
}
function cmakekolab {
if test -n "$1"; then
# srcFolder is defined via command line argument
srcFolder="$1"
else
# get srcFolder for current dir
srcFolder=`pwd | sed -e s,$BUILD_DIR,$SRC_DIR,`
fi
# we are in the src folder, change to build directory
# Alternatively, we could just use makeobj in the commands below...
current=`pwd`
if [[ "$srcFolder" == "$current" ]]; then
cb
fi
# Buildtypes: debug/debugfull
cmake "$srcFolder" -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" -
DCMAKE_BUILD_TYPE=debugfull
cd "$current"
}
type cb && unalias cb
# A function to easily change to the build directory.
function cb {
# Make sure build directory exists.
mkdir -p "$BUILD_DIR"
# command line argument
if test -n "$1"; then
cd "$BUILD_DIR/$1"
return
fi
# substitute src dir with build dir
dest=`pwd | sed -e s,$SRC_DIR,$BUILD_DIR,`
if test ! -d "$dest"; then
# build directory does not exist, create
mkdir -p "$dest"
fi
cd "$dest"
}
type cs && unalias cs
# Change to the source directory.
function cs {
# Make sure source directory exists.
mkdir -p "$SRC_DIR"
# command line argument
if test -n "$1"; then
cd "$SRC_DIR/$1"
else
# substitute build dir with src dir
dest=`pwd | sed -e s,$BUILD_DIR,$SRC_DIR,`
current=`pwd`
if [ "$dest" = "$current" ]; then
cd "$SRC_DIR"
else
cd "$dest"
fi
fi
}
# Add autocompletion to cs function
function _cs_scandir {
base=$1
ext=$2
if [ -d $base ]; then
for d in `ls $base`; do
if [ -d $base/$d ]; then
dirs="$dirs $ext$d/"
fi
done
fi
}
function _cs() {
local cur dirs
_cs_scandir "$SRC_DIR"
_cs_scandir "$SRC_DIR/KDE" "KDE/"
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=( $(compgen -W "${dirs}" -- ${cur}) )
}
# Remove comment on next line to enable cs autocompletion
#complete -F _cs csAttachment:
signature.asc
Description: This is a digitally signed message part.