#!/usr/bin/bash
# This script assumes it will be launched within "/NAME/VERSION/src" dir. 
# With all sources in "src" Your Vector Linux .tlz package, slack-desc, 
# and slack-required will be found in "VERSION" dir. The extraction and 
# build will be in a temp dir created in "NAME" dir, and then removed on exit.
# Comment out last line to keep this dir intact.

#Find Configuration Files
#--------------------------------------------
CWD=`pwd`
cd ../../../
TOP=`pwd`
CONFIGURATIONS=$TOP/Configurations
cd $CWD
#--------------------------------------------



NAME="manslide"		#Enter Name!
VERSION=1.9		#Enter Version!



#SYSTEM VARIABLES
#-----------------------------------------------------
ARCH=`cat $CONFIGURATIONS/ARCH`
BUILD=`cat $CONFIGURATIONS/BUILD`
VL_PACKAGER=`cat $CONFIGURATIONS/VL_PACKAGER`
CONFIG_OPTIONS=`cat $CONFIGURATIONS/CONFIG_OPTIONS`
CFLAG_OPTIONS=`cat $CONFIGURATIONS/CFLAG_OPTIONS`
LDFLAG_OPTIONS=`cat $CONFIGURATIONS/LDFLAG_OPTIONS`
#-----------------------------------------------------

CWD=`pwd`
cd ../
RELEASEDIR=`pwd`
cd $CWD
mkdir $RELEASEDIR/tmp
TMP=$RELEASEDIR/tmp
PKG=$TMP/package-$NAME

if [ $UID != 0 ]; then
	echo "You are not authorized to run this script. Please login as root"
	exit
fi

if [ ! -x /usr/bin/requiredbuilder ]; then
	echo "Requiredbuilder not installed, or not executable."
	exit
fi

#CFLAGS Setup
#--------------------------------------------
if [ "$ARCH" = "i386" ]; then
  SLKCFLAGS="-O2 -march=i386 -mtune=i686"
elif [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "s390" ]; then
  SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2"
fi

export CFLAGS="$SLKCFLAGS $CFLAG_OPTIONS"
export CXXFLAGS=$CFLAGS
export LDFLAGS=$LDFLAG_OPTIONS
#--------------------------------------------

rm -rf $PKG
mkdir -p $PKG
cd $TMP
rm -rf $NAME-$VERSION

#Extract Sources. **Check file type!**
#-----------------------------------------------------
#tar xjvf $CWD/$NAME-$VERSION.tar.bz2 || exit 1
tar zxvf $CWD/$NAME-$VERSION.tar.gz || exit 1
#-----------------------------------------------------


cd $TMP/Manslide-$VERSION


echo "Setting permissions..."


chown -R root:root .
find . -perm 664 -exec chmod 644 {} \;
find . -perm 777 -exec chmod 755 {} \;
find . -perm 2777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 2755 -exec chmod 755 {} \;
find . -perm 774 -exec chmod 644 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 600 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
find . -perm 400 -exec chmod 644 {} \;
find . -perm 440 -exec chmod 644 {} \;
find . -perm 511 -exec chmod 755 {} \;
find . -perm 711 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;

mkdir -p $PKG/usr/bin
cat << EOF > $PKG/usr/bin/manslide
#!/bin/bash
cd /usr/share/manslide
exec /usr/share/manslide/Manslide
EOF

chmod 755 $PKG/usr/bin/*

mkdir -p $PKG/usr/share/manslide
( /opt/qt4/bin/qmake -unix -o Makefile Manslide.pro
make )

install -m 755  Manslide $PKG/usr/share/manslide 

cp -a manslide_*.{qm,ts} $PKG/usr/share/manslide
cp -a -r {BIB_ManSlide,Interface} $PKG/usr/share/manslide

mkdir -p $PKG/usr/share/applications
cat << EOF > $PKG/usr/share/applications/$NAME.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Manslide
Name[it]=Manslide
GenericName=Slideshow creator
GenericName[it]=Creatore di presentazioni 
Comment=This is a program to simply create your own slideshow
Icon=manslide
Exec=manslide
Terminal=false
StartupNotify=true
Categories=AudioVideo
EOF

mkdir -p $PKG/usr/share/pixmaps
cp -a    $TMP/Manslide-$VERSION/Interface/vague.png  $PKG/usr/share/pixmaps/manslide.png

mkdir -p $PKG/usr/doc/$NAME-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/slack-desc > $PKG/usr/doc/$NAME-$VERSION/slack-desc
cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$VERSION/$NAME.SlackBuild

strip --strip-unneeded $PKG/usr/bin/*

cd $PKG
ADD="mjpegtools >= 1.9.0rc2-i486-1sl,sox >= 14.0.0-i486-1as,mplayer >= 1.0rc1try3-i686,qt4 >= 4.3.1-i686-4as" \
requiredbuilder -y -v -s $CWD $PKG

find $PKG/usr/man -type f -exec gzip -9 {} \;
mkdir -p $PKG/install

           # This creates the white space in front of "handy-ruler" in slack-desc below.

	   LENGTH=`expr length "$NAME"`	   
	   SPACES=0
	   SHIM=""
	   until [ "$SPACES" = "$LENGTH" ]; do
	     SHIM="$SHIM "
	     let SPACES=$SPACES+1
	   done


cat > $RELEASEDIR/slack-desc << EOF
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.  Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in.  You must
# make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':'.
   
   |-----handy-ruler------------------------------------------------------|
$NAME: $NAME (Slideshow creator)
$NAME: 
$NAME: Manslide is a tool for generating slideshows. It supports 3D
$NAME: special effects and is very simple to use.
$NAME: 
$NAME: License: GPL
$NAME: Website: http://www.kde-apps.org/content/show.php/Manslide?content=52227
$NAME: Authors: Gibault St�phane
$NAME: 

#----------------------------------------
BUILDDATE: `date`
PACKAGER:  $VL_PACKAGER
HOST:      `uname -srm`
DISTRO:    `cat /etc/vector-version`
CFLAGS:    $CFLAGS
LDFLAGS:   $LDFLAGS
CONFIGURE: `awk "/\.\/configure\ /" $TMP/$NAME-$VERSION/config.log`

EOF

cat $RELEASEDIR/slack-desc > $PKG/install/slack-desc

cd $PKG
echo " "
echo "Stripping...."
echo " "
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

echo "Finding dependancies..."
requiredbuilder -v -y -s $RELEASEDIR $PKG

#Finish package
#--------------------------------------------------------------
echo "Creating package $NAME-$VERSION-$ARCH-$BUILD.tlz"
makepkg -l y -c n $RELEASEDIR/$NAME-$VERSION-$ARCH-$BUILD.tlz
cd $CWD
echo "Cleaning up temp files..."
rm -rf $TMP
echo "Package Complete"
#--------------------------------------------------------------