summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-rpg/amnesia-tdd/amnesia-tdd-1.2.1.ebuild')
-rw-r--r--games-rpg/amnesia-tdd/amnesia-tdd-1.2.1.ebuild295
1 files changed, 295 insertions, 0 deletions
diff --git a/games-rpg/amnesia-tdd/amnesia-tdd-1.2.1.ebuild b/games-rpg/amnesia-tdd/amnesia-tdd-1.2.1.ebuild
new file mode 100644
index 0000000..2db4a21
--- /dev/null
+++ b/games-rpg/amnesia-tdd/amnesia-tdd-1.2.1.ebuild
@@ -0,0 +1,295 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=3
+
+inherit check-reqs eutils games unpacker
+
+MY_PN="${PN//-/_}"
+MY_ARCH="${ARCH/amd64/x86_64}"
+MY_REV="-2"
+
+DESCRIPTION="Amnesia: The Dark Descent is a first person survival horror. A game about immersion, discovery and living through a nightmare."
+HOMEPAGE="http://www.amnesiagame.com/"
+SRC_URI="${MY_PN}_${PV}${MY_REV}.sh"
+
+RESTRICT="fetch strip"
+LICENSE="Frictional_Games-EULA"
+
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc linguas_de linguas_es linguas_fr linguas_it linguas_ru"
+
+DEPEND="app-arch/xz-utils"
+RDEPEND="media-libs/freealut
+ >=media-libs/glew-1.5
+ media-libs/jpeg:62
+ media-libs/libpng:1.2
+ media-libs/libtheora
+ media-libs/libvorbis
+ media-libs/openal
+ media-libs/sdl-image
+ media-libs/sdl-ttf
+ sys-libs/zlib
+ x11-libs/libxcb
+ x11-libs/libXext
+ virtual/glu
+ virtual/opengl"
+
+S="${WORKDIR}/${PN}"
+
+GAMEDIR="${GAMES_PREFIX_OPT}/${PN}"
+
+pkg_nofetch() {
+ einfo ""
+ einfo "Please buy and download \"${SRC_URI}\" from:"
+ einfo " ${HOMEPAGE}"
+ einfo "and move/link it to \"${DISTDIR}\""
+ einfo ""
+}
+
+pkg_setup() {
+ CHECKREQS_DISK_BUILD="3500M"
+ check-reqs_pkg_setup
+ games_pkg_setup
+}
+
+src_unpack() {
+ einfo "\nUnpacking files. This will take several minutes.\n"
+
+ mkdir "tmp" || die "mkdir 'tmp' failed"
+ cd "./tmp" || die "cd 'tmp' failed"
+
+ unpack_makeself || die "unpack_makeself failed"
+
+ mv "instarchive_all" "../${P}.tar.lzma" || die "move 'instarchive_all' failed"
+ mv "instarchive_all_${MY_ARCH}" "../${P}-${MY_ARCH}.tar.lzma" || die "move 'instarchive_all_${MY_ARCH}' failed"
+
+ cd "${WORKDIR}" || die "cd '${WORKDIR}' failed"
+ rm -rf "./tmp"
+
+ # This version is packed incorrectly and lzma will 'fail' at end of unpack
+ # output tarball is ok, though, decompress manually to skip
+ # unpack error checking of the LZMA decompression
+ echo ">>> Unpacking ./${P}.tar.lzma to /tmp/portage/games-rpg/amnesia-tdd-1.2.1/work"
+ xz -F lzma -d -c "./${P}.tar.lzma" 2>/dev/null | tar xf - \
+ || die "unpacking '${P}.tar.lzma' failed"
+ rm "./${P}.tar.lzma"
+
+ unpack "./${P}-${MY_ARCH}.tar.lzma" || die "unpack '${P}-${MY_ARCH}.tar.lzma' failed"
+ rm "./${P}-${MY_ARCH}.tar.lzma"
+
+ mv "Amnesia" "${PN}" || die "mv 'Amnesia' failed"
+
+ # libfltk.so.1.1 is needed because it's no longer in portage
+ mv "${S}"/libs*/all/libfltk* "${S}"/libs*/
+}
+
+src_prepare() {
+ # Files to remove.
+ REMOVE="libs*/*
+ *.pdf
+ *.rtf
+ *.sh"
+
+ # Files to keep.
+ # Bundled LibIL (media-libs/devil) isn't in portage as too old
+ KEEP="libs*/libIL*
+ libs*/libfltk*"
+
+ # Collect infos about languages...
+ LINGUAS_ARRAY=() # Linguas - string: E.g.: "linguas_en"
+ LANG_ARRAY=() # Lang - string: E.g.: "en"
+ LANGUAGE_ARRAY=() # Language - string: E.g.: "english"
+ LANGUAGE_SHORT_ARRAY=() # Language Short - string: E.g.: "eng"
+ USE_ARRAY=() # Used - bool (0,1)
+
+ local linguas_in_use="0"
+ for use in ${IUSE}
+ do
+ if [[ "${use%%_*}" == "linguas" ]]
+ then
+ local tmp="${use}"
+ LINGUAS_ARRAY=(${LINGUAS_ARRAY[@]} "${tmp}")
+
+ tmp="${tmp##linguas_}"
+ LANG_ARRAY=(${LANG_ARRAY[@]} "${tmp}")
+
+ case "${tmp}" in
+ "de") tmp="german";;
+ "es") tmp="spanish";;
+ "fr") tmp="french";;
+ "it") tmp="italian";;
+ "ru") tmp="russian";;
+ *) tmp="";;
+ esac
+ LANGUAGE_ARRAY=(${LANGUAGE_ARRAY[@]} "${tmp}")
+ LANGUAGE_SHORT_ARRAY=(${LANGUAGE_SHORT_ARRAY[@]} "${tmp:0:3}")
+
+ if use ${use}
+ then
+ USE_ARRAY=(${USE_ARRAY[@]} "1")
+ linguas_in_use="$(( ${linguas_in_use} + 1 ))"
+ else
+ USE_ARRAY=(${USE_ARRAY[@]} "0")
+ fi
+ fi
+ done
+
+ # ...then process them.
+ local n="0"
+ local docs_eng="0"
+ while [[ "${n}" -lt "${#LINGUAS_ARRAY[@]}" ]]
+ do
+ if [[ "${USE_ARRAY[${n}]}" -gt "0" ]]
+ then
+ # If only one lang is selected, use it as default.
+ if [[ "${linguas_in_use}" == "1" ]]
+ then
+ sed -e "s#english.lang#${LANGUAGE_ARRAY[${n}]}.lang#g" \
+ -i config/*main_init.cfg || die "sed \"config/*main_init.cfg\" failed"
+ fi
+ else
+ REMOVE="${REMOVE} $(find config -type f -name "*${LANGUAGE_ARRAY[${n}]}.lang")"
+ if [[ -d "lang/${LANGUAGE_SHORT_ARRAY[${n}]}" ]]
+ then
+ REMOVE="${REMOVE} lang/${LANGUAGE_SHORT_ARRAY[${n}]}"
+ fi
+ fi
+
+ if use doc
+ then
+ if [[ -f "EULA_${LANG_ARRAY[${n}]}.rtf" && -f "Manual_${LANG_ARRAY[${n}]}.pdf" ]]
+ then
+ KEEP="${KEEP} EULA_${LANG_ARRAY[${n}]}.rtf Manual_${LANG_ARRAY[${n}]}.pdf"
+ else
+ local docs_eng="1"
+ fi
+ fi
+
+ n="$(( ${n} + 1 ))"
+ done
+
+ if use doc && [[ ( "${linguas_in_use}" == "0" || "${docs_eng}" != "0" ) ]]
+ then
+ KEEP="${KEEP} EULA_en.rtf Manual_en.pdf Remember*.pdf"
+ fi
+
+ einfo " Removing useless files ..."
+ for remove in ${REMOVE}
+ do
+ local removable="1"
+ for keep in ${KEEP}
+ do
+ if [[ "${remove}" == "${keep}" && "${removable}" == "1" ]]
+ then
+ local removable="0"
+ fi
+ done
+
+ if [[ "${removable}" == "1" ]]
+ then
+ rm -r "${S}/"${remove} &> /dev/null
+ fi
+ done
+
+ if use amd64
+ then
+ mv "Amnesia.bin64" "Amnesia.bin" || die "mv \"Amnesia.bin64\" failed"
+ mv "Launcher.bin64" "Launcher.bin" || die "mv \"Launcher.bin64\" failed"
+ fi
+}
+
+src_install() {
+ # Install data
+ insinto "${GAMEDIR}"
+
+ einfo " Installing game data files ..."
+ for directory in $(find * -maxdepth 0 -type d ! -name "libs*")
+ do
+ doins -r ${directory} || die "doins game data files failed"
+ done
+
+ # Other files
+ find . -maxdepth 1 -type f ! -name "*.bin" \
+ ! -name "*.pdf" \
+ ! -name "*.png" \
+ ! -name "*.rtf" \
+ ! -name "*.sh" \
+ -exec doins '{}' \; || die "doins other files failed"
+
+
+ # Install libraries and executables
+ einfo " Installing libraries and executables ..."
+ if use amd64
+ then
+ local libsdir="${GAMEDIR}/libs64"
+ else
+ local libsdir="${GAMEDIR}/libs"
+ fi
+
+ exeinto "${libsdir}" || die "exeinto \"${libsdir}\" failed"
+ doexe libs*/* || die "doexe \"libs\" failed"
+
+ dosym "/usr/$(get_libdir)/libGLEW.so" "${libsdir}/libGLEW.so.1.5"
+
+ exeinto "${GAMEDIR}" || die "exeinto \"${GAMEDIR}\" failed"
+ doexe *.bin || die "doexe \".bin\" binaries failed"
+
+
+ # Make game wrapper
+ dodir "${GAMES_BINDIR}" || die "dodir \"${GAMES_BINDIR}\" failed"
+
+ local wrapper="${D}/${GAMES_BINDIR}/${PN}"
+ local ext="${PN}-justine"
+ touch "${wrapper}" || die "touch \"${wrapper}\" failed"
+ ln -s "${wrapper}" "${D}/${GAMES_BINDIR}/${ext}" || die "ln -s \"${ext}\" failed"
+
+ cat << EOF >> "${wrapper}" || die "echo failed"
+#!/bin/sh
+cd "${GAMEDIR}"
+
+if [[ "\$(basename "\${0}")" == "${ext}" ]]
+then
+ params="ptest \${@}"
+fi
+
+if [[ -w "\${HOME}/.frictionalgames/Amnesia/Main/main_settings.cfg" ]]
+then
+ exec ./Amnesia.bin \${params:-"\${@}"}
+else
+ exec ./Launcher.bin "\${@}"
+fi
+EOF
+
+
+ # Install icon and desktop file
+ newicon "Amnesia.png" "${PN}.png" || die "newicon failed"
+ make_desktop_entry "${PN}" "Amnesia: The Dark Descent" "${PN}" || die "make_desktop_entry failed"
+ make_desktop_entry "${ext}" "Amnesia: The Dark Descent - Justine" "${PN}" || die "make_desktop_entry failed"
+
+
+ # Install documentation
+ if use doc
+ then
+ dodoc *.rtf *.pdf || die "dodoc failed"
+ fi
+
+
+ # Setting permissions.
+ einfo " Setting permissions ..."
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ ewarn ""
+ ewarn "Amnesia: The Dark Descent needs video drivers that provide a complete".
+ ewarn "GLSL 1.20 implementation. For more information, please visit:"
+ ewarn "http://www.frictionalgames.com/forum/thread-3760.html"
+ ewarn ""
+ ewarn "--------------------------------------------------------------------"
+ ewarn ""
+ ewarn "Saved games from previous versions may not be fully compatible."
+ ewarn ""
+}