#!/bin/bash # kdebase.SlackBuild # Heavily based on the original Slackware build scripts, # Modified by Stuart Winter # 08-Aug-2005 # Record toolchain & other info for the build log: slackbuildinfo # Paths to skeleton port's source & real Slackware source tree: export CWD=$SLACKSOURCE/$PKGSERIES/$PACKAGE 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/qt ]; then QTDIR=/usr/lib/qt fi # Temporary build locations: export TMPBUILD=$TMP/build-$PACKAGE export PKG=$TMP/package-$PACKAGE mkpkgdirs # Delete & re-create temporary directories then cd into $TMPBUILD # Create some package framework: mkdir -p $PKG/opt/kde mkdir -p $PKG/etc/X11/xinit $PKG/etc/profile.d mkdir -p $PKG/usr/doc/$PACKAGE-$VERSION # Extract source: tar jxvvf $CWD/$PACKAGE-$VERSION.tar.bz2 cd $PACKAGE-$VERSION slackhousekeeping # Apply patches: zcat $CWD/kdebase-3.5.4.halbackend.diff.gz | patch -p1 --verbose --suffix=.orig --backup || exit 1 zcat $CWD/kdebase.startkde.xdg.diff.gz | patch -p1 --verbose --suffix=.orig --backup || exit 1 zcat $CWD/kdebase-3.5.4.video.redirect.diff.gz | patch -p1 --verbose --suffix=.orig --backup || exit 1 zcat $CWD/kdebase-3.5.4.kicker-taskbar-resize.diff.gz | patch -p0 --verbose --suffix=.orig --backup || exit 1 zcat $CWD/kdebase-3.5.4.ksystraycmd-quoting.diff.gz | patch -p0 --verbose --suffix=.orig --backup || exit 1 zcat $CWD/kdebase-3.5.4.mediamanager-fstabfix.diff.gz | patch -p0 --verbose --suffix=.orig --backup || exit 1 # Configure: CFLAGS=$CPUOPT \ CXXFLAGS=$CPUOPT \ ./configure \ --prefix=/opt/kde \ --with-shadow \ --with-xinerama \ --disable-debug \ --program-prefix="" \ --program-suffix="" \ $TARGET-slackware-linux || failconfig # Build: make $NUMJOBS || failmake # Install into package: make install DESTDIR=$PKG ### CAUSES ARTS TO NOT USE REALTIME PRIORITY BY DEFAULT, WORKING AROUND A LOGOUT HANG ### ### THIS SHOULD BE RECONSIDERED WITH EACH KDEBASE RELEASE! ### cat $CWD/kludge/kcmartsrc > $PKG/opt/kde/share/config/kcmartsrc ### !!! KLUDGE ALERT !!! ### # Copy docs: cp -a AUTHORS COPYING INSTALL README kdebase.lsm \ $PKG/usr/doc/$PACKAGE-$VERSION install -m755 $CWD/xinit/xinitrc.kde $PKG/etc/X11/xinit/ install -m755 $CWD/profile.d/kde.sh $PKG/etc/profile.d/ install -m755 $CWD/profile.d/kde.csh $PKG/etc/profile.d/ # Change the konsole defaults to look like the real Linux console: cat $CWD/config/konsolerc > $PKG/opt/kde/share/config/konsolerc chmod 644 $PKG/opt/kde/share/config/konsolerc # Make konsole a login shell by default: cat $CWD/config/konsole.desktop > $PKG/opt/kde/share/applications/kde/konsole.desktop chmod 644 $PKG/opt/kde/share/applications/kde/konsole.desktop # set sane defaults for antialiasing: if [ ! -e $PKG/opt/kde/share/config/kdeglobals ]; then cat $CWD/config/kdeglobals > $PKG/opt/kde/share/config/kdeglobals chmod 644 $PKG/opt/kde/share/config/kdeglobals else # This might be fixed or unsafe. Better check it out... echo echo "BAILOUT: kdeglobals already exists. Check to see if anti-aliased" echo " fonts work out-of-the-box now..." echo exit 1 fi # Setup config files for KDM: $PKG/opt/kde/bin/genkdmconf --no-old --no-old-scripts --no-backup --in $PKG/opt/kde/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. cat $PKG/opt/kde/share/config/kdm/kdmrc | perl -pi -e 's|AllowRootLogin=false|AllowRootLogin=true|' > $PKG/opt/kde/share/config/kdm/kdmrc.new rm -f $PKG/opt/kde/share/config/kdm/kdmrc cp -a $PKG/opt/kde/share/config/kdm/Xsession $PKG/opt/kde/share/config/kdm/Xsession.orig cat $CWD/config/Xsession > $PKG/opt/kde/share/config/kdm/Xsession mv $PKG/opt/kde/share/config/kdm/backgroundrc $PKG/opt/kde/share/config/kdm/backgroundrc.new # 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 # Build the package: if [ $PORTARCH = arm ]; then slackmp # run makepkg else makepkg -l y -c n $PKGSTORE/$PKGSERIES/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz fi # Perform any final checks on the package: cd $PKG slackhlinks # search for any hard links