summaryrefslogtreecommitdiff
path: root/source/xap/xfce/xfce.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'source/xap/xfce/xfce.SlackBuild')
-rwxr-xr-xsource/xap/xfce/xfce.SlackBuild201
1 files changed, 201 insertions, 0 deletions
diff --git a/source/xap/xfce/xfce.SlackBuild b/source/xap/xfce/xfce.SlackBuild
new file mode 100755
index 00000000..2ed8042e
--- /dev/null
+++ b/source/xap/xfce/xfce.SlackBuild
@@ -0,0 +1,201 @@
+#!/bin/sh
+
+# Copyright 2003 Slackware Linux, Inc., Concord, CA, USA
+# Copyright 2007, 2008, 2009 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.
+
+VERSION=4.6.1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-5}
+
+# A few tarballs have different versions; handle them here
+XDT_VERS=4.6.0 # xfce4-dev-tools version
+EXO_VERS=0.3.101 # exo version
+THUNAR_VERS=1.0.1 # thunar version
+GXE_VERS=2.6.0 # gtk-xfce-engine version
+TERM_VERS=0.4.0 # terminal version
+MPAD_VERS=0.2.16 # mousepad version
+XFWMTHEME_VERS=4.6.0 # xfwm4-themes version
+
+NUMJOBS=${NUMJOBS:--j6}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/xfce-build-dir}
+PKG=$TMP/package-xfce
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP || exit 1
+
+COMPRESSION=xz
+COMPRESSUTIL=xz
+
+# The Rodent theme isn't xdg-compliant, so they're not shipping it
+# xfce4-icon-theme-$VERSION.tar.$COMPRESSION
+# We'll set Tango as the system default instead...
+
+for file in \
+ xfce4-dev-tools-$XDT_VERS.tar.$COMPRESSION \
+ libxfce4util-$VERSION.tar.$COMPRESSION \
+ xfconf-$VERSION.tar.$COMPRESSION \
+ libxfcegui4-$VERSION.tar.$COMPRESSION \
+ libxfce4menu-$VERSION.tar.$COMPRESSION \
+ exo-$EXO_VERS.tar.$COMPRESSION \
+ xfce4-panel-$VERSION.tar.$COMPRESSION \
+ Thunar-$THUNAR_VERS.tar.$COMPRESSION \
+ xfce4-settings-$VERSION.tar.$COMPRESSION \
+ xfce4-session-$VERSION.tar.$COMPRESSION \
+ xfdesktop-$VERSION.tar.$COMPRESSION \
+ xfwm4-$VERSION.tar.$COMPRESSION \
+ xfce-utils-$VERSION.tar.$COMPRESSION \
+ xfce4-mixer-$VERSION.tar.$COMPRESSION \
+ xfprint-$VERSION.tar.$COMPRESSION \
+ xfce4-appfinder-$VERSION.tar.$COMPRESSION \
+ gtk-xfce-engine-$GXE_VERS.tar.$COMPRESSION \
+ Terminal-$TERM_VERS.tar.$COMPRESSION \
+ xfwm4-themes-$XFWMTHEME_VERS.tar.$COMPRESSION \
+ mousepad-$MPAD_VERS.tar.$COMPRESSION \
+ orage-$VERSION.tar.$COMPRESSION ;
+do
+ $COMPRESSUTIL -dc $CWD/src/$file | tar xvf - || exit 1
+ cd $(basename $file .tar.$COMPRESSION) || exit 1
+ chown -R root:root .
+ find . \
+ \( -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 {} \;
+
+ # Here's where we patch or set up any other package-specific stuff:
+ # Patch to only show xfcalendar in XFce (otherwise it shows up in
+ # KDE's Lost & Found and does not work):
+ if [ "$file" = "orage-$VERSION.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/xfcalendar.desktop.in.diff.gz | patch -p1 || exit 1
+ fi
+ # Fix http://bugzilla.xfce.org/show_bug.cgi?id=5461
+ # and enable python bindings in libexo
+ if [ "$file" = "exo-$EXO_VERS.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/exo_fix_quoting.diff.gz | patch -p0 || exit 1
+ PACKAGE_SPECIFIC_OPTIONS="--enable-python"
+ fi
+ # Make Terminal respect --docdir
+ if [ "$file" = "Terminal-$TERM_VERS.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/terminal-0.4.0-fixup_docdir.diff.gz | patch -p1 || exit 1
+ fi
+ # Make Thunar respect --docdir
+ if [ "$file" = "Thunar-$THUNAR_VERS.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/thunar-1.0.1-fixup_docdir.diff.gz | patch -p1 || exit 1
+ fi
+ # Fix the missing education icon in the desktop menu
+ if [ "$file" = "xfdesktop-$VERSION.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/xfdesktop-fix_education_icon.diff.gz | patch -p1 || exit 1
+ fi
+ # End patches/package-specific stuff
+
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc/xfce \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/xfce-$VERSION/$(basename $file .tar.$COMPRESSION) \
+ --htmldir=/usr/doc/xfce-$VERSION/$(basename $file .tar.$COMPRESSION)/html \
+ --disable-static \
+ --build=$ARCH-slackware-linux \
+ $PACKAGE_SPECIFIC_OPTIONS
+
+ # Unset this now -- we're done with it
+ unset PACKAGE_SPECIFIC_OPTIONS
+
+ make $NUMJOBS || make || exit 1
+ make install || exit 1
+ make install DESTDIR=$PKG
+
+ mkdir -p $PKG/usr/doc/xfce-$VERSION/$(basename $file .tar.$COMPRESSION)
+ # This will cause errors, but won't miss any docs:
+ cp -a \
+ AUTHORS BUGS COMPOSITOR COPYING* FAQ HACKING INSTALL \
+ NEWS NOTES README* THANKS TODO example.gtkrc-2.0 \
+ $PKG/usr/doc/xfce-$VERSION/$(basename $file .tar.$COMPRESSION) \
+ 2> /dev/null || true
+
+ cd - ;
+done
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# The Rodent icon theme isn't xdg compliant, so it spews errors quite often
+# and just flat breaks some things here and there, so the Xfce team elected
+# not to ship it with 4.6.0. In the meantime, we'll default to Tango.
+sed -i s/Rodent/Tango/ \
+ $PKG/etc/xfce/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
+
+# We're going to borrow the "applications-education" icons (six of them)
+# from kde's oxygen icon theme (it's LGPL)
+tar xf $CWD/icons.tar.xz -C $PKG/usr/share
+
+# We don't want any of those icon caches
+find $PKG/usr/share/icons -type f -name "index-theme.cache" -exec rm -f {} \;
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/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
+
+mkdir -p $PKG/etc/profile.d
+cp -a $CWD/profile.d/* $PKG/etc/profile.d
+chown root:root $PKG/etc/profile.d/*
+chmod 755 $PKG/etc/profile.d/*
+
+mkdir -p $PKG/etc/X11/xinit
+( cd $PKG/etc/X11/xinit
+ ln -sf ../../xfce/xdg/xfce4/xinitrc xinitrc.xfce
+ chmod 755 ../../xfce/xdg/xfce4/xinitrc
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/xfce-$VERSION-$ARCH-$BUILD.txz
+