Source

SlackBuilds / freedroidrpg / src / freedroidrpg.SlackBuild

#!/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 second to last line to keep this dir intact.

# Source archive renamed to better suite this slackbuild

NAME="freedroidrpg"            #Enter package Name!
VERSION=${VERSION:-"0.14.1"}      #Enter package Version!
VL_PACKAGER=${VL_PACKAGER:-"nicdm"}   #Enter your Name!


#SYSTEM VARIABLES
#----------------------------------------------------------------------------
BUILDNUM=${BUILDNUM:-"1"}
VL_VERSION=${VL_VERSION:-"$(ls /var/log/packages/|grep vlconfig2|cut -d "-" -f4|cut -c 2-5)"}
BUILD=${BUILD:-"$BUILDNUM""$VL_VERSION"}
ARCH=${ARCH:-$(uname -m)}
CONFIG_OPTIONS=${CONFIG_OPTIONS:-""}
LDFLAG_OPTIONS=${LDFLAG_OPTIONS:-""}
#----------------------------------------------------------------------------


#SETUP PACKAGING ENVIRONMENT
#--------------------------------------------
CWD=$(pwd)
cd ../
RELEASEDIR=$(pwd)
cd $CWD
mkdir -p $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 1
fi

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

if [ $VL_PACKAGER = "YOURNAME" ]; then
   echo 'Who are you?
   Please edit VL_PACKAGER=${VL_PACKAGER:-YOURNAME} in this script.
   Change the word "YOURNAME" to your VectorLinux packager name.
   You may also export VL_PACKAGER, or call this script with
   VL_PACKAGER="YOUR NAME HERE"'
   exit 1
fi

#CFLAGS SETUP
#--------------------------------------------
if [[ "$ARCH" = i?86 ]]; then
   ARCH=i586
   SLKCFLAGS="-O2 -march=i586 -mtune=i686"
   CONFIGURE_TRIPLET="i486-slackware-linux"
elif [ "$ARCH" = "x86_64" ]; then
   SLKCFLAGS="-O2 -fpic"
   CONFIGURE_TRIPLET="x86_64-pc-linux"
fi

export CFLAGS="$SLKCFLAGS $CFLAG_OPTIONS"
export CXXFLAGS=$CFLAGS
export LDFLAGS="$LDFLAGS $LDFLAG_OPTIONS"
#--------------------------------------------
rm -rf $PKG
mkdir -p $PKG
cd $TMP
rm -rf $NAME-$VERSION

#EXTRACT SOURCES
#-----------------------------------------------------
echo "Extracting source..."
tar xvf $CWD/$NAME-$VERSION.tar.* || exit 1
#-----------------------------------------------------
cd $TMP/$NAME-$VERSION

#SET PERMISSIONS
#-----------------------------------------
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 {} \;
#-----------------------------------------

#CONFIGURE & MAKE
#----------------------------------------------------------------------
# If you are building a KDE-related app, then change the following
# arguments in the script below:
# --prefix=$(kde-config -prefix) \
# --sysconfdir=/etc/kde \
#
# Making these changes will ensure that your package will build in the
# correct path and that it will work seamlessly within the KDE environment.
#
#-----------------------------------------------------------------------
echo "Configuring source..."
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--with-included-gettext \
--enable-opengl \
--enable-editors \
--disable-sdltest \
--disable-gtktest \
--with-x \
--with-sdl \
--disable-debug \
--program-prefix="" \
--program-suffix="" \
--build=$CONFIGURE_TRIPLET \
$CONFIG_OPTIONS || exit 1

make || exit 1

make install DESTDIR=$PKG || exit

# remove some junk
rm $PKG/usr/bin/{croppy,pngtoico}

#######################################################################
#Miscellenious tweaks and things outside a normal ./configure go here #
#######################################################################
mkdir -p $PKG/usr/share/applications

cat > $PKG/usr/share/applications/$NAME.desktop << EOF
[Desktop Entry]
Type=Application
Version=1.0
Encoding=UTF-8
Name=FreedroidRPG
Name[tr]=FreedroidRPG
GenericName=Freedroid RPG
GenericName[tr]=Freedroid RPG Oyunu
Icon=freedroidrpg
Exec=freedroidRPG
Terminal=false
StartupNotify=false
Categories=Application;Game;RolePlaying
EOF

mkdir -p $PKG/usr/share/pixmaps
cp $CWD/$NAME.png $PKG/usr/share/pixmaps/$NAME.png
mkdir -p $PKG/usr/doc/$NAME-$VERSION
cp -a AUTHORS COPYING ChangeLog NEWS README \
$PKG/usr/doc/$NAME-$VERSION
cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$VERSION/$NAME.SlackBuild
#----------------------------------------------------------------------

if [ -d $PKG/usr/share/man ] ; then
   mkdir -p $PKG/usr/man
   mv $PKG/usr/share/man/* $PKG/usr/man
   rm  $PKG/usr/share/man
fi
find $PKG/usr/man -type f -exec gzip -9 {} \;
if [ -d $PKG/usr/share/info ] ; then
   mkdir -p $PKG/usr/info
   mv $PKG/usr/share/info/* $PKG/usr/info
   rm $PKG/usr/share/info
fi 
find $PKG/usr/info -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

# Fill in the package summary between the () below.
# Then package the description, License, Author and Website.
# There may be no more then 11 $NAME: lines in a valid slack-desc.
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 ':'.

$SHIM|-----handy-ruler------------------------------------------------------|
$NAME: $NAME (A Diablo clone- Tux as the hero and MS, the evil power)
$NAME:
$NAME: FreedroidRPG is a single player role playing game inspired by games
$NAME: like Diablo and Gothic. The story in short? Tux is tired of MS taking
$NAME: over the world, and he is going to do something about it.
$NAME:
$NAME:
$NAME:
$NAME: License: GPL 2.0
$NAME: Authors: Arthur Huillet <ahuillet@freedroid.org>
$NAME: Website: http://freedroid.sourceforge.net/

#----------------------------------------
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

#STRIPPING
#------------------------------------------------------------------------------------------------------------------
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
#------------------------------------------------------------------------------------------------------------------

#FINISH PACKAGE
#--------------------------------------------------------------
echo "Finding dependencies..."
requiredbuilder -v -y -s $RELEASEDIR $PKG
echo "Creating package $NAME-$VERSION-$ARCH-$BUILD.txz"
makepkg -l y -c n $RELEASEDIR/$NAME-$VERSION-$ARCH-$BUILD.txz
cd $CWD
echo "Cleaning up temp files..." && rm -rf $TMP
echo "Package Complete"
#--------------------------------------------------------------
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.