#!/bin/bash # kdebase-workspace.SlackBuild # Heavily based on the original Slackware build scripts, # Modified by Stuart Winter # Record toolchain & other info for the build log: slackbuildinfo # Paths to skeleton port's source & real Slackware source tree: export CWD=$SLACKSOURCE/$PKGSERIES/$PKGNAM export PORTCWD=$PWD # Set the config option variables if they are not already set: if [ -r ../KDE.options ]; then . ../KDE.options fi # The global options may be overridden here (if needed): if [ -r ./local.options ]; then . ./local.options fi # Avoid a version number in .la files: if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then QTDIR=/usr/lib${LIBDIRSUFFIX}/qt fi # Temporary build locations: export TMPBUILD=$TMP/build-$PKGNAM export PKG=$TMP/package-$PKGNAM mkpkgdirs # Delete & re-create temporary directories then cd into $TMPBUILD # Extract source: tar xf $CWD/../src/kdebase-workspace-$VERSION.tar.?z* cd $PKGNAM-$VERSION || exit 1 slackhousekeeping # Apply patches: # Increase the timeout to accomodate slow-to-initialize video chipset drivers: zcat $CWD/kdebase-workspace.kdm.server.timeout.diff.gz | patch -p1 --verbose || exit 1 # Patches for ARM: for i in $PORTCWD/sources/*.diff ; do auto_apply_patch $i || exit 1 done # Configure: mkdir -p build cd build cmake \ $KDE_OPT_ARGS \ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DMAN_INSTALL_DIR=/usr/man \ -DSYSCONF_INSTALL_DIR=/etc/kde \ -DLIB_SUFFIX=${LIBDIRSUFFIX} \ .. || exit 1 # Build: make $NUMJOBS || make || exit 1 # Install into package: make install DESTDIR=$PKG cd - # Use ck-launch-session in runlevel 3, # to start and attach a ConsoleKit session to the X session: mkdir -p $PKG/etc/X11/xinit cat $CWD/xinit/xinitrc.kde > $PKG/etc/X11/xinit/xinitrc.kde chmod 0755 $PKG/etc/X11/xinit/xinitrc.kde # Setup config files for KDM: $PKG/usr/bin/genkdmconf --no-old --no-old-scripts --no-backup --in $PKG/usr/share/config/kdm # Not allowing root to login at the console is just plain silly. If they # have physical access to the machine, what's the point of trying to stop # this? Even the kdmrc file says this is supposed to be the default. sed -i 's/AllowRootLogin=false/AllowRootLogin=true/' \ $PKG/usr/share/config/kdm/kdmrc # We are also not ready to create a separate 'kdm' non-root user: sed -i 's/GreeterUID=kdm/#&/' \ $PKG/usr/share/config/kdm/kdmrc mv $PKG/usr/share/config/kdm/kdmrc $PKG/usr/share/config/kdm/kdmrc.new cp -a $PKG/usr/share/config/kdm/Xsession $PKG/usr/share/config/kdm/Xsession.orig cat $CWD/config/Xsession | sed -e "s#/lib#/lib${LIBDIRSUFFIX}#" \ > $PKG/usr/share/config/kdm/Xsession mv $PKG/usr/share/config/kdm/backgroundrc $PKG/usr/share/config/kdm/backgroundrc.new # Move the KDM files someplace FHS compliant: mkdir -p $PKG/etc/kde mv $PKG/usr/share/config/kdm $PKG/etc/kde ( cd $PKG/usr/share/config ; ln -sf ../../../etc/kde/kdm . ) # Move the polkit dbus configuration files to the proper place: mv $PKG/etc/kde/dbus-1 $PKG/etc/ # This is fubar: rm -f $PKG/usr/share/icons/hicolor/index.theme mkdir -p $PKG/usr/doc/kdebase-workspace-$VERSION cp -a COPYING* README $PKG/usr/doc/kdebase-workspace-$VERSION # If necessary, start the fakeroot server so we can set file/dir ownerships: start_fakeroot # Apply generic Slackware packaging policies: cd $PKG slackstripall # strip all .a archives and all ELFs slackgzpages -i # compress man & info pages and delete usr/info/dir slackslack # chown -R root:root, chmod -R og-w, slackchown, slack644docs slackdesc # install slack-desc and doinst.sh slackmp # run makepkg -l y -c n # Perform any final checks on the package: cd $PKG slackhlinks # search for any hard links