#!/bin/sh
# Author: Gufo	gufo<at>people<dot>it - http://gufo.dontexist.org
# Heavily based on the Slackware 12.0 SlackBuild
# License Gplv2
# Some suggestion taken from http://slackbuilds.org/
# Based on the  work of kaneda@bohater.net <http://kaneda.bohater.net/slackware>

# Requires: eventlog

APP=syslog-ng
VERSION=2.0.9
BUILD=${BUILD:-1gufo}

ARCH=${ARCH:-i486}

CWD=$(pwd)
if [ "$TMP" = "" ]; then
      TMP=/tmp
fi

if [ "$ARCH" = "i386" ]; then
  SLKCFLAGS="-O2 -march=i386 -mtune=i686"
 elif [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
 elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
fi

PKG=$TMP/$APP-$VERSION-build

# Delete the leftover directories if they exist (due to a previous build)
# and (re)create the packaging directory
rm -rf $PKG $TMP/$APP-$VERSION
mkdir -p $TMP $PKG || exit 1

cd $TMP || exit 1

tar zxvf "$CWD"/$APP-$VERSION.tar.gz || exit 1

cd $APP-$VERSION || exit 1

# Change ownership and permissions if necessary
# This may not be needed in some source tarballs, but it never hurts
chown -R root:root .
chmod -R u+w,go+r-w,a-s .

./configure --prefix=/usr \
    --sysconfdir=/etc/syslog-ng \
    --localstatedir=/var \
    --enable-dynamic-linking

make || exit 1

make install DESTDIR=$PKG || exit 1

mkdir -p $PKG/install || exit 1
cp "$CWD"/slack-desc $PKG/install

# Documentation
mkdir -p $PKG/usr/doc/$APP-$VERSION || exit 1
cp $CWD/$APP.SlackBuild $PKG/usr/doc/$APP-$VERSION/$APP.SlackBuild
# Copy documentation to the docs directory and fix permissions
cp -a AUTHORS COPYING ChangeLog NEWS README VERSION $PKG/usr/doc/$APP-$VERSION
cp -a $TMP/$APP-$VERSION/doc/examples  $PKG/usr/doc/$APP-$VERSION
cp -a $TMP/$APP-$VERSION/doc/reference $PKG/usr/doc/$APP-$VERSION
cp -a $TMP/$APP-$VERSION/doc/security $PKG/usr/doc/$APP-$VERSION
mv -f $PKG/usr/share/man $PKG/usr/man
rm -r $PKG/usr/share/

find $PKG/usr/doc/$APP-$VERSION -type f -exec chmod 644 {} \;

mkdir -p $PKG/etc/syslog-ng || exit 1
cp -fr -fr $TMP/$APP-$VERSION/doc/examples/syslog-ng.conf.sample $PKG/etc/syslog-ng/syslog-ng.conf.new

mkdir -p $PKG/etc/logrotate.d/ || exit 1
zcat $CWD/syslog-ng.gz > $PKG//etc/logrotate.d/syslog-ng.new

# Add doinst.sh to package (if it exists)
if [ -e $CWD/doinst.sh.gz ]; then
  zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
fi

if [ -e $CWD/rc.$APP.gz ]; then
  mkdir $PKG/etc/rc.d/
  zcat $CWD/rc.$APP.gz > $PKG/etc/rc.d/rc.$APP.new
fi

# Strip some libraries and binaries
( 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
)

# Compress man pages if they exist
if [ -d $PKG/usr/man ]; then
  ( cd $PKG/usr/man
  find . -type f -exec gzip -9 {} \;
  for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
  ) 
fi

# Compress info pages if they exist (and remove the dir file)
if [ -d $PKG/usr/info ]; then
  gzip -9 $PKG/usr/info/*.info
  rm -f $PKG/usr/info/dir
fi


cd $PKG
requiredbuilder -v -y -s $CWD $PKG
/sbin/makepkg -l y -c n $TMP/$APP-$VERSION-$ARCH-$BUILD.tgz
cp $TMP/$APP-$VERSION-$ARCH-$BUILD.tgz "$CWD"

rm -r $PKG $TMP/$APP-$VERSION
