#!/bin/bash # # Heavily based on the Slackware 13.0 SlackBuild # # OpenArena # http://www.openarena.ws/ # # Packager: Luca Cireddu # luca@lucacireddu.it # http://www.lucacireddu.it # # Config variables: PKGNAME="openarena" VERSION="0.8.5" TAG="srd" BUILD="1" EXTENSION="tgz" # Looking for arch: case "$(arch)" in i?86) ARCH="i386" ;; x86_64) ARCH="x86_64" ;; esac # Name and dir vars: SRC_OUTDIR="${PKGNAME}-0.8.1" # Download urls: BASE_URL="http://download.tuxfamily.org/openarena/rel" SRC_FILENAME[1]="oa081.zip" SRC_FILENAME[2]="oa085p.zip" DN_URL[1]="${BASE_URL}/081/${SRC_FILENAME[1]}" DN_URL[2]="${BASE_URL}/085/${SRC_FILENAME[2]}" # 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 -p ${PKG} mkdir -p ${TMP} # Untar the source archive; if [ ! -e "${CWD}/${SRC_FILENAME[1]}" ]; then (cd ${CWD}; wget "${DN_URL[1]}" || exit 1) fi if [ ! -e "${CWD}/${SRC_FILENAME[2]}" ]; then (cd ${CWD}; wget "${DN_URL[2]}" || exit 1) fi cd ${TMP} unzip "${CWD}/${SRC_FILENAME[1]}" || exit 1 unzip -o "${CWD}/${SRC_FILENAME[2]}" || exit 1 cd ${TMP}/${SRC_OUTDIR} || exit 1 # Chown and Chmod its files: cd ${TMP}/${SRC_OUTDIR} || exit 1 chown -Rv root:root . find . -type d -exec chmod -v 0755 '{}' ';' find . -type f -exec chmod -v 0644 '{}' ';' # Copying files: cd ${TMP}/${SRC_OUTDIR} || exit 1 mkdir -pv ${PKG}${BLD_PREFIX} || exit 1 mkdir -pv ${PKG}${BLD_DESKTOP} || exit 1 mkdir -pv ${PKG}${BLD_ICONS} || exit 1 mkdir -pv ${PKG}${BLD_DOCDIR}/${PKGNAME}-${VERSION} || exit 1 mkdir -pv ${PKG}${BLD_BINARIES} || exit 1 cp -Rv ${TMP}/${SRC_OUTDIR}/* ${PKG}${BLD_PREFIX} || exit 1 cd ${PKG}${BLD_PREFIX} || exit 1 rm -v SDL.dll || exit 1 rm -v libogg-0.dll || exit 1 rm -v libvorbis-0.dll || exit 1 rm -v libvorbisfile-3.dll || exit 1 rm -v oa_ded.exe || exit 1 rm -v openarena-deprecated.exe || exit 1 rm -v openarena_deprecated.exe || exit 1 rm -v openarena.exe || exit 1 rm -Rv legacy || exit 1 rm -Rv OpenArena.app || exit 1 if [ "${ARCH}" = "i386" ]; then rm -v openarena.x86_64 || exit 1 rm -v oa_ded.x86_64 || exit 1 chmod 0755 openarena.i386 -v || exit 1 chmod 0755 oa_ded.i386 -v || exit 1 fi if [ "${ARCH}" = "x86_64" ]; then rm -v openarena.i386 || exit 1 rm -v oa_ded.i386 || exit 1 chmod 0755 openarena.x86_64 -v || exit 1 chmod 0755 oa_ded.x86_64 -v || exit 1 fi # Copying icon and creating desktop file: cp -v ${CWD}/extras/${PKGNAME}.png ${PKG}${BLD_ICONS}/${PKGNAME}.png || exit 1 cat < ${PKG}${BLD_DESKTOP}/${PKGNAME}.desktop [Desktop Entry] Name=${PKGNAME} Comment="OpenArena is a Free Software first-person shooter that is multiplayer oriented." Exec=${BLD_BINARIES}/oa Icon=${BLD_ICONS}/${PKGNAME}.png Terminal=false StartupNotify=false Type=Application Categories=Game;ArcadeGame; Encoding=UTF-8 EOD chmod 0644 ${PKG}${BLD_DESKTOP}/${PKGNAME}.desktop # Restore CWD: cd ${TMP}/${SRC_OUTDIR} || exit 1 # Copying files into documents directory: cd ${TMP}/${SRC_OUTDIR} || exit 1 cp -v COPYING CHANGES CHANGES LINUXNOTES README WENEED ${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 -p ${PKG}/install cat ${CWD}/slack-desc > ${PKG}/install/slack-desc echo "#!/bin/bash if [ -e ${BLD_BINARIES}/oa ]; then rm ${BLD_BINARIES}/oa fi if [ -e ${BLD_BINARIES}/oaded ]; then rm ${BLD_BINARIES}/oaded fi cat < ${BLD_BINARIES}/oa #!/bin/bash cd ${BLD_PREFIX} || exit 1 ./openarena.${ARCH} \"\\\${@}\" EOF cat < ${BLD_BINARIES}/oaded #!/bin/bash cd ${BLD_PREFIX} || exit 1 ./oa_ded.${ARCH} \"\\\${@}\" EOF chmod 755 ${BLD_BINARIES}/oa chmod 755 ${BLD_BINARIES}/oaded echo \"run oa for the game, or oaded for the server\" " > ${PKG}/install/doinst.sh # 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