#!/bin/bash # # Heavily based on the Slackware 13.0 SlackBuild # # AlienArena (a fast, fun and free FPS) # http://icculus.org/alienarena/rpa/index.html # # Packager: Luca Cireddu # luca@lucacireddu.it # http://www.lucacireddu.it # # Config variables: PKGNAME="alienarena" VERSION="7.33.linux20091227" ARCH="x86" TAG="srd" BUILD="2" EXTENSION="txz" # Name and dir vars: PKGNAME_REAL="${PKGNAME}" VERSION_REAL="$(echo ${VERSION} | awk -F. '{ print $1 "_" $2 "-" $3 }')" SRC_OUTDIR="${PKGNAME_REAL}$(echo ${VERSION} | awk -F. '{ print $1 "_" $2 }')" # Download urls: BASE_URL="http://icculus.org/${PKGNAME_REAL}/Files/" SRC_FILENAME="${PKGNAME_REAL}${VERSION_REAL}.zip" DN_URL="${BASE_URL}${SRC_FILENAME}" # Standard destinations folders: BLD_PREFIX="/opt/${PKGNAME}" SYS_PREFIX="/usr" BLD_BINARIES="${SYS_PREFIX}/bin" BLD_DOCDIR="${SYS_PREFIX}/doc" BLD_DESKTOP="${SYS_PREFIX}/share/applications" BLD_ICONS="${SYS_PREFIX}/share/pixmaps" # Dirs variables: CWD="$(pwd)" TMP="/tmp/${EXTENSION}_build-${PKGNAME}" PKG="${TMP}/package" # Cleaning and/or creating build folders: rm -rf ${PKG} >> /dev/null 2>> /dev/null rm -rf ${TMP} >> /dev/null 2>> /dev/null mkdir -pv ${PKG} mkdir -pv ${TMP} # Untar the source archive; if [ ! -e "${CWD}/${SRC_FILENAME}" ]; then (cd ${CWD}; wget ${DN_URL} || exit 1) fi cd ${TMP} if file "${CWD}/${SRC_FILENAME}" | grep "bzip2" ; then tar xjvf "${CWD}/${SRC_FILENAME}" || exit 1 elif file "${CWD}/${SRC_FILENAME}" | grep "gzip" ; then tar xzvf "${CWD}/${SRC_FILENAME}" || exit 1 elif file "${CWD}/${SRC_FILENAME}" | grep "Zip" ; then unzip "${CWD}/${SRC_FILENAME}" || exit 1 else echo "ERROR" echo "Archive file-type unknown" exit 1 fi cd ${TMP}/${SRC_OUTDIR} || exit 1 # Chown and Chmod its files: cd ${TMP}/${SRC_OUTDIR} || exit 1 chown -Rv root:root . chmod -R u+w,go+r-w,a-s . # Copying files: mkdir -pv ${PKG}${BLD_PREFIX} || exit 1 mkdir -pv ${PKG}${BLD_DESKTOP} || exit 1 mkdir -pv ${PKG}${BLD_ICONS} || exit 1 cp -Rv ${TMP}/${SRC_OUTDIR}/* ${PKG}${BLD_PREFIX} || exit 1 cd ${PKG}${BLD_PREFIX} || exit 1 rm -Rv ./source || exit 1 rm -v ./Aa1.ico chmod 755 ${PKG}${BLD_PREFIX}/crx chmod 755 ${PKG}${BLD_PREFIX}/crded # Restore CWD: cd ${TMP}/${SRC_OUTDIR} || exit 1 # Add a documentation directory: mkdir -pv ${PKG}${BLD_DOCDIR}/${PKGNAME}-${VERSION} || exit 1 cat ${CWD}/slack-desc > ${PKG}${BLD_DOCDIR}/${PKGNAME}-${VERSION}/slack-desc cat ${CWD}/${PKGNAME}.SlackBuild > ${PKG}${BLD_DOCDIR}/${PKGNAME}-${VERSION}/${PKGNAME}.SlackBuild # Make Slackware package info and doinst.sh: mkdir -pv ${PKG}/install || exit 1 cat ${CWD}/slack-desc > ${PKG}/install/slack-desc cat < ${PKG}/install/doinst.sh #!/bin/bash if [ -e ${BLD_BINARIES}/aa ]; then rm ${BLD_BINARIES}/aa fi if [ -e ${BLD_BINARIES}/aaded ]; then rm ${BLD_BINARIES}/aaded fi cat < ${BLD_BINARIES}/aa #!/bin/bash cd ${BLD_PREFIX} || exit 1 ./crx "\${@}" EOF cat < ${BLD_BINARIES}/aaded #!/bin/bash cd ${BLD_PREFIX} || exit 1 ./crded "\${@}" EOF chmod 755 ${BLD_BINARIES}/aa chmod 755 ${BLD_BINARIES}/aaded echo "run aa for the game, or aaded for the server" EODI # Creating slack-required: #requiredbuilder -v -y -s ${CWD} ${PKG} || exit 1 #cat ${PKG}/install/slack-required > ${PKG}${BLD_DOCDIR}/slack-required # Make package: cd ${PKG} chown root:root * -Rv makepkg -l y -c n ${CWD}/${PKGNAME}-${VERSION}-${ARCH}-${BUILD}${TAG}.${EXTENSION} # Creating some infos: ( cd ${CWD} md5sum ${PKGNAME}-${VERSION}-${ARCH}-${BUILD}${TAG}.${EXTENSION} > ${PKGNAME}-${VERSION}-${ARCH}-${BUILD}${TAG}.${EXTENSION}.md5 cat slack-desc > ${PKGNAME}-${VERSION}.txt ) # Removing files, if asked: case "${1}" in "--cleanup") rm -rf ${TMP} >> /dev/null 2>> /dev/null ;; esac