diff options
author | Eric Hameleers <alien@slackware.com> | 2007-03-27 13:19:54 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2007-03-27 13:19:54 +0000 |
commit | d0346372e97e67aede05610b8ff7b57983705ebf (patch) | |
tree | d4f286e96d2a35a852be9c0eae47a1eb537f5213 /sendxmpp/build/sendxmpp.SlackBuild | |
parent | 6adc807aec37980848ec2a51687eb005f86f123f (diff) | |
download | asb-d0346372e97e67aede05610b8ff7b57983705ebf.tar.gz asb-d0346372e97e67aede05610b8ff7b57983705ebf.tar.xz |
Update to 0.0.8 and polished the SlackBuild
Diffstat (limited to 'sendxmpp/build/sendxmpp.SlackBuild')
-rwxr-xr-x | sendxmpp/build/sendxmpp.SlackBuild | 198 |
1 files changed, 158 insertions, 40 deletions
diff --git a/sendxmpp/build/sendxmpp.SlackBuild b/sendxmpp/build/sendxmpp.SlackBuild index 20467580..1366aa36 100755 --- a/sendxmpp/build/sendxmpp.SlackBuild +++ b/sendxmpp/build/sendxmpp.SlackBuild @@ -1,54 +1,172 @@ #!/bin/sh +# $Id$ +# Written 2004,2007 by Eric Hameleers <alien@slackware.com> +# ----------------------------------------------------------------------------- # -# This module requires Getopt::Long and Net::XMPP +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers <alien@slackware.com> +# For: sendxmpp +# Descr: send xmpp -jabber- messages from the command line +# URL: http://sendxmpp.platon.sk/ +# Needs: Getopt::Long and Net::XMPP +# Changelog: +# 0.0.6-1: 07/Dec/2004 by Eric Hameleers <alien@slackware.com> +# * Initial build. +# 0.0.8-1: 27/Mar/2007 by Eric Hameleers <alien@slackware.com> +# * Update. +# +# Run 'sh sendxmpp.SlackBuild --cleanup' to build a Slackware package. +# The package (.tgz) plus descriptive .txt file are created in /tmp . +# Install using 'installpkg'. # -CWD=`pwd` -PRGNAM=sendxmpp -PKG=/tmp/package-$PRGNAM -TMP=/tmp +# ----------------------------------------------------------------------------- -VERSION=0.0.6 +# --- INIT --- +# Set initial variables: + +PRGNAM=sendxmpp +VERSION=${VERSION:-0.0.8} ARCH=${ARCH:-i486} -BUILD=1 +BUILD=${BUILD:-1} + +DOCS="Changes MANIFEST README" + +# Where do we look for sources? +CWD=`pwd` +SRCDIR=`dirname $0` +[ "${SRCDIR:0:1}" == "." ] && SRCDIR=${CWD}/${SRCDIR} + +# Place to build (TMP) package (PKG) and output (OUTPUT) the program: +TMP=${TMP:-/tmp/build} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.tar.gz" +SRCURL="http://sendxmpp.platon.sk/${PRGNAM}-${VERSION}.tar.gz" + +## +## --- with a little luck, you won't have to edit below this point --- ## +## + +# Exit the script on errors: +set -e +trap 'echo "$0 FAILED at line $LINENO!" | tee $OUTPUT/error-${PRGNAM}.log' ERR +# Catch unitialized variables: +set -u +P1=${1:-1} + +if [ ! -d $TMP/tmp-$PRGNAM ]; then + mkdir -p $TMP/tmp-$PRGNAM # location to build the source +elif [ "$P1" != "--oldbuild" ]; then + # If the "--oldbuild" parameter is present, we keep + # the old build files and continue; + # By default we remove the remnants of previous build and continue: + rm -rf $TMP/tmp-$PRGNAM/* +fi + +if [ ! -d $PKG ]; then + mkdir -p $PKG # place for the package to be built +else + rm -rf $PKG/* # We always erase old package's contents: +fi + +if [ ! -d $OUTPUT ]; then + mkdir -p $OUTPUT # place for the package to be saved +fi + -rm -rf $PKG -rm -rf /tmp/tmp-$PRGNAM -mkdir -p $PKG -mkdir -p /tmp/tmp-$PRGNAM +# --- SOURCE FILE AVAILABILITY --- -cd /tmp/tmp-$PRGNAM -tar xzvf $CWD/$PRGNAM-$VERSION.tar.gz -cd $PRGNAM-$VERSION -chown -R root.root . -perl Makefile.PL -make +if ! [ -f ${SOURCE} ]; then + if ! [ "x${SRCURL}" == "x" ]; then + # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT + [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/`basename $SOURCE`" + echo "Source '`basename ${SOURCE}`' not available yet..." + echo "Will download file to `dirname $SOURCE`" + wget -nv -O "${SOURCE}" "${SRCURL}" || true + if [ $? -ne 0 ]; then + echo "Downloading '`basename ${SOURCE}`' failed... aborting the build." + mv -f "${SOURCE}" "${SOURCE}".FAIL + exit 1 + fi + else + echo "File '`basename ${SOURCE}`' not available... aborting the build." + exit 1 + fi +fi +if [ "$P1" == "--download" ]; then + echo "Download complete." + exit 0 +fi + +# --- PACKAGE BUILDING --- + +echo "++" +echo "|| $PRGNAM-$VERSION" +echo "++" + +cd $TMP/tmp-$PRGNAM + +# Source extraction and compilation: +tar xzvf ${SOURCE} +chown -R root:root * +chmod -R u+w,go+r-w,a-s * +cd ${PRGNAM}-${VERSION} + +echo Building ... + +perl Makefile.PL 2>&1 | tee $OUTPUT/make-${PRGNAM}.log +echo "" >> $OUTPUT/make-${PRGNAM}.log +make 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log + +# Use installwatch if available, to produce a logfile of the installation +# process that is more easily readable: mkdir -p $PKG/usr -installwatch -o $CWD/install.log make install DESTDIR=$PKG - -( cd $PKG - find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null - find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null -) -( cd $PKG - # Remove 'special' files - find . -name perllocal.pod \ - -o -name ".packlist" \ - -o -name "*.bs" \ - | xargs rm -f - # No empty directories - find . -type d -depth -exec rmdir {} \; 2>/dev/null -) - -DOC="Changes MANIFEST README" +if `which installwatch > /dev/null 2>&1`; then + installwatch -o $OUTPUT/install-${PRGNAM}.log make DESTDIR=$PKG install +else + make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log +fi + +# Documentation: mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a $DOC $PKG/usr/doc/$PRGNAM-$VERSION -chmod 644 $PKG/usr/doc/$PRGNAM-$VERSION/* -gzip -9 $PKG/usr/man/*/* -gzip -9 $PKG/usr/share/man/*/* +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true +chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* + +# Compress the man page(s): +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + +# Remove Perl special files and empty directories: +cd $PKG +find . -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f +find . -type d -depth -exec rmdir {} \; 2>/dev/null +cd - + +# Strip binaries: +cd $PKG +find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true +find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true +cd - + +# Package description: mkdir -p $PKG/install -cat $CWD/slack-desc > $PKG/install/slack-desc +cat $SRCDIR/slack-desc > $PKG/install/slack-desc +if [ -f $SRCDIR/doinst.sh ]; then + cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh +fi +# Build the package: cd $PKG -makepkg -l y -c n ../$PRGNAM-$VERSION-$ARCH-$BUILD.tgz +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log +cd $OUTPUT +md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz.md5 +cd - +cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txt +# Clean up the extra stuff: +if [ "$P1" = "--cleanup" ]; then + rm -rf $TMP/tmp-$PRGNAM + rm -rf $PKG +fi |