diff options
author | 2012-12-17 21:42:41 +0000 | |
---|---|---|
committer | 2012-12-17 21:42:41 +0000 | |
commit | 61e87fc0b0527ec7a1b7a53a195cfc54a068a5ba (patch) | |
tree | e6a8ea1f3c4043c067362694ccc7d7424dceb23a /games-rpg/penumbra-collection/penumbra-collection-1.1.ebuild | |
parent | mask games-rpg/penumbra-collection for 64bit-native as it needs emul libs (diff) | |
download | gentoo-2-61e87fc0b0527ec7a1b7a53a195cfc54a068a5ba.tar.gz gentoo-2-61e87fc0b0527ec7a1b7a53a195cfc54a068a5ba.tar.bz2 gentoo-2-61e87fc0b0527ec7a1b7a53a195cfc54a068a5ba.zip |
initial import based on work from Robert Cernansky wrt #278326
(Portage version: 2.2.0_alpha148/cvs/Linux x86_64, signed Manifest commit with key E73C35B3)
Diffstat (limited to 'games-rpg/penumbra-collection/penumbra-collection-1.1.ebuild')
-rw-r--r-- | games-rpg/penumbra-collection/penumbra-collection-1.1.ebuild | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/games-rpg/penumbra-collection/penumbra-collection-1.1.ebuild b/games-rpg/penumbra-collection/penumbra-collection-1.1.ebuild new file mode 100644 index 000000000000..ab73bafd662c --- /dev/null +++ b/games-rpg/penumbra-collection/penumbra-collection-1.1.ebuild @@ -0,0 +1,198 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/games-rpg/penumbra-collection/penumbra-collection-1.1.ebuild,v 1.1 2012/12/17 21:42:41 hasufell Exp $ + +EAPI=5 + +inherit eutils unpacker gnome2-utils games + +MY_PN="PenumbraCollection" + +DESCRIPTION="Scary first-person adventure game trilogy which focuses on story, immersion and puzzles" +HOMEPAGE="http://www.penumbragame.com/" +SRC_URI="${MY_PN}-${PV}.sh" + +LICENSE="PENUMBRA-COLLECTION" +SLOT="0" +KEYWORDS="~amd64 ~x86 -*" +IUSE="" +RESTRICT="fetch" + +RDEPEND=" + virtual/glu + virtual/opengl + x86? ( + media-libs/fontconfig + media-libs/freealut + media-libs/freetype + media-libs/libogg + media-libs/libsdl[X,audio,video,opengl] + media-libs/libvorbis + media-libs/sdl-image[gif,jpeg,png] + media-libs/sdl-ttf + media-gfx/nvidia-cg-toolkit + x11-libs/fltk:1 + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXft + x11-libs/libXrender + ) + amd64? ( + app-emulation/emul-linux-x86-opengl + app-emulation/emul-linux-x86-sdl + app-emulation/emul-linux-x86-soundlibs + app-emulation/emul-linux-x86-xlibs + )" +DEPEND="app-arch/xz-utils" + +gamedir=${GAMES_PREFIX_OPT}/${MY_PN} +INSTALL_KEY_FILE=${gamedir}/collectionkey + +QA_PREBUILT="${gamedir}/Overture/penumbra.bin + ${gamedir}/BlackPlague/requiem.bin + ${gamedir}/BlackPlague/blackplague.bin" +QA_PREBUILT_amd64="${QA_PREBUILT} + ${gamedir}/BlackPlague/lib/libfltk.so.1.1 + ${gamedir}/BlackPlague/lib/libCgGL.so + ${gamedir}/BlackPlague/lib/libCg.so + ${gamedir}/Overture/lib/libfltk.so.1.1 + ${gamedir}/Overture/lib/libCgGL.so + ${gamedir}/Overture/lib/libCg.so" + +S=${WORKDIR}/${MY_PN} + +pkg_nofetch() { + einfo "Please buy & download ${SRC_URI} from:" + einfo " ${HOMEPAGE}" + einfo "and move it to ${DISTDIR}" + einfo +} + +src_unpack() { + unpack_makeself + + mv subarch subarch.tar.lzma || die + unpack ./subarch.tar.lzma + + mv instarchive_all instarchive_all.tar.lzma || die + unpack ./instarchive_all.tar.lzma +} + +src_install() { + local destDir i episodeDir library directory + # perform instalation for each episode; note that Requiem is extension of + # Black Plague so it has no dedicated directory at this level + for episodeDir in Overture BlackPlague; do + destDir="${gamedir}/${episodeDir}" + + insinto "${destDir}" + + # install every directory recursively except lib + for directory in \ + $(find ${episodeDir}/* -maxdepth 0 -type d ! -name lib); do + doins -r "${directory}" + done + + # amd64 does not provide some libs, use bundled ones + if use amd64 ; then + exeinto "${gamedir}/${episodeDir}/lib" + for library in \ + libfltk.so.1.1 \ + libCgGL.so \ + libCg.so; do + doexe ${episodeDir}/lib/${library} + done + fi + + doins ${episodeDir}/*.cfg + + exeinto "${destDir}" + doexe ${episodeDir}/openurl.sh ${episodeDir}/*.bin + + # make sure that cache files are newer than models otherwise the game + # tries to regenerate them which sometimes causes a crash (as reported + # in bug #278326 comment #6) + touch "${D}/${destDir}"/core/*cache/* + done + + newicon -s 64 Overture/penumbra.png penumbra-overture.png + newicon -s 64 BlackPlague/penumbra.png penumbra-blackplague.png + newicon -s 64 BlackPlague/requiem.png penumbra-requiem.png + + games_make_wrapper penumbra-overture ./penumbra.bin \ + "${gamedir}/Overture" "${gamedir}/Overture/lib" + games_make_wrapper penumbra-blackplague ./blackplague.bin \ + "${gamedir}/BlackPlague" "${gamedir}/BlackPlague/lib" + games_make_wrapper penumbra-requiem ./requiem.bin \ + "${gamedir}/BlackPlague" "${gamedir}/BlackPlague/lib" + + for i in overture blackplague requiem; do + make_desktop_entry penumbra-${i} "Penumbra: Overture" \ + penumbra-${i} + done + + docinto Overture + dodoc Overture/CHANGELOG.txt Overture/Manual.pdf Overture/README.linux + docinto BlackPlague + dodoc BlackPlague/Manual.pdf BlackPlague/README.linux + + prepgamesdirs +} + +pkg_preinst() { + games_pkg_preinst + gnome2_icon_savelist +} + +pkg_postinst() { + games_pkg_postinst + gnome2_icon_cache_update + + if [[ -f "${INSTALL_KEY_FILE}" ]] ; then + einfo "The installation key file already exists: ${INSTALL_KEY_FILE}" + else + ewarn "You MUST run this before playing the game:" + ewarn " emerge --config ${PN}" + ewarn "To enter your installation key." + fi +} + +pkg_postrm() { + gnome2_icon_cache_update + einfo "If you uninstalled ${PN} you might want to remove the keyfile as well in" + einfo " ${INSTALL_KEY_FILE}" +} + +pkg_config() { + local key1 key2 + + ewarn "Your installation key is NOT checked for validity here." + ewarn "Make sure you type it in correctly." + ewarn "If you CTRL+C out of this, the game will not run!" + echo + einfo "The key format is: XXXX-XXXX-XXXX-XXXX" + while true ; do + einfo "Please enter your key:" + read key1 + if [[ -z "${key1}" ]] ; then + echo "You entered a blank key. Try again." + continue + fi + einfo "Please re-enter your key:" + read key2 + if [[ -z "${key2}" ]] ; then + echo "You entered a blank key. Try again." + continue + fi + + if [[ "${key1}" == "${key2}" ]] ; then + echo "${key1}" | tr '[:lower:]' '[:upper:]' > "${INSTALL_KEY_FILE}" + echo -e "// Do not give this file to ANYONE.\n// Frictional Games Support will NEVER ask for this file" \ + >> "${INSTALL_KEY_FILE}" + einfo "Created ${INSTALL_KEY_FILE}" + break + else + eerror "Your installation key entries do not match. Try again." + fi + done +} |