#!/bin/sh
# Author: Gufo	gufo<at>people<dot>it - http://gufo.dontexist.org
# Heavily based on the Slackware 12.1 SlackBuild
# License Gplv2
# Some suggestion taken from http://slackbuilds.org/
# http://packages.debian.org/testing/admin/tmpreaper

APP=tmpreaper
VERSION=1.6.10
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 .

CFLAGS="$SLKCFLAGS" \
./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/man

make || exit 1

make install DESTDIR=$PKG || exit 1

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

# Configuration files 
mkdir -p $PKG/etc
if [ -e $CWD/tmpreaper.conf.gz ]; then
    zcat $CWD/tmpreaper.conf.gz > $PKG/etc/tmpreaper.conf.new
else
    cp debian/tmpreaper.conf $PKG/etc
fi

# Cron script
mkdir -p $PKG/etc/cron.daily
cp debian/cron.daily $PKG/etc/cron.daily/tmpreaper.new
chmod 644 $PKG/etc/cron.daily/tmpreaper.new

# Man pages
mkdir -p $PKG/usr/man/man5
cp debian/tmpreaper.conf.5 $PKG/usr/man/man5

# Documentation
mkdir -p $PKG/usr/doc/$APP-$VERSION || exit 1
cat $CWD/$APP.SlackBuild > $PKG/usr/doc/$APP-$VERSION/$APP.SlackBuild
# Copy documentation to the docs directory and fix permissions
cp -a debian/{README.security,changelog} COPYING INSTALL README $PKG/usr/doc/$APP-$VERSION
find $PKG/usr/doc/$APP-$VERSION -type f -exec chmod 644 {} \;

# 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

