# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=5 inherit eutils unpacker gnome2-utils games MY_PN="PenumbraCollection" DESCRIPTION="Scary first-person adventure trilogy focussing 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=" x11-libs/fltk:1 media-gfx/nvidia-cg-toolkit[abi_x86_32(-)] >=media-libs/fontconfig-2.10.92[abi_x86_32(-)] >=media-libs/freealut-1.1.0-r3[abi_x86_32(-)] >=media-libs/freetype-2.5.0.1[abi_x86_32(-)] >=media-libs/libogg-1.3.1[abi_x86_32(-)] >=media-libs/libsdl-1.2.15-r5[X,sound,video,opengl,abi_x86_32(-)] >=media-libs/libvorbis-1.3.3-r1[abi_x86_32(-)] >=media-libs/sdl-image-1.2.12-r1[gif,jpeg,png,abi_x86_32(-)] >=media-libs/sdl-ttf-2.0.11-r1[abi_x86_32(-)] virtual/glu[abi_x86_32(-)] virtual/opengl[abi_x86_32(-)] x11-libs/libX11[abi_x86_32(-)] x11-libs/libXext[abi_x86_32(-)] x11-libs/libXft[abi_x86_32(-)] x11-libs/libXrender[abi_x86_32(-)]" 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" if [[ $ARCH == amd64 ]] ; then QA_PREBUILT="${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" fi 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 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" make_desktop_entry penumbra-overture "Penumbra: Overture" \ penumbra-overture make_desktop_entry penumbra-blackplague "Penumbra: Black Plague" \ penumbra-blackplague make_desktop_entry penumbra-requiem "Penumbra: Requiem" \ penumbra-requiem 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 }