diff options
Diffstat (limited to 'games-strategy/civctp/civctp-1.2a.ebuild')
-rw-r--r-- | games-strategy/civctp/civctp-1.2a.ebuild | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/games-strategy/civctp/civctp-1.2a.ebuild b/games-strategy/civctp/civctp-1.2a.ebuild new file mode 100644 index 0000000..8559e3c --- /dev/null +++ b/games-strategy/civctp/civctp-1.2a.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +# [x] Base Install Required (+400MB) +# [x] Videos (+225MB) +# -------------------- +# Total 625MB + +inherit eutils games + +IUSE="langpatch nocd videos" +DESCRIPTION="Civilization Call to Power" +HOMEPAGE="http://www.lokigames.com/products/civctp/" +KEYWORDS="x86" +DEPEND="virtual/libc + sys-apps/gawk + games-util/loki_patch" + +# Since I do not have a PPC machine to test with, I will leave the PPC stuff in +# here so someone else can stabilize loki_setupdb and loki_patch for PPC and +# then KEYWORD this appropriately. +CTP_LANGUAGES="english french german italian spanish" +CTP_NO_LANG=${CTP_LANG:-y} +CTP_LANG=${CTP_LANG:-english} + +SRC_URI="x86? ( + mirror://lokigames/${PN}/${P}-english-unified-x86.run + linguas_fr? ( mirror://lokigames/${PN}/${P}-french-unified-x86.run ) + linguas_de? ( mirror://lokigames/${PN}/${P}-german-unified-x86.run ) + linguas_it? ( mirror://lokigames/${PN}/${P}-italian-unified-x86.run ) + linguas_es? ( mirror://lokigames/${PN}/${P}-spanish-unified-x86.run ) + ) + ppc? ( + mirror://lokigames/${PN}/${P}-english-unified-ppc.run + linguas_fr? ( mirror://lokigames/${PN}/${P}-french-unified-ppc.run ) + linguas_de? ( mirror://lokigames/${PN}/${P}-german-unified-ppc.run ) + linguas_it? ( mirror://lokigames/${PN}/${P}-italian-unified-ppc.run ) + linguas_es? ( mirror://lokigames/${PN}/${P}-spanish-unified-ppc.run ) + ) + langpatch? ( + mirror://lokigames/${PN}/${P}-${CTP_LANG}.run + )" + +LICENSE="LOKI-EULA" +SLOT="0" +RESTRICT="nostrip nomirror" + +S=${WORKDIR} + +dir=${GAMES_PREFIX_OPT} +Ddir=${D}/${dir} + +check_ctp2_cd_version() { + local CUR_LANG + local LANG_CNT + local MY_LANGS + local USED_LANG + + cdrom_get_cds CivCTP-data.tar.gz + + MY_LANGS=${CTP_LANGUAGES// /|} + USED_LANG="" + test -f ${CDROM_ROOT}/.ctpcd || die "No .ctpcd file found."; + CTP_VER=$(cat ${CDROM_ROOT}/.ctpcd) + test -f ${CDROM_ROOT}/setup/tarball.list || die "No setup/tarball.list found." + CTP_CD_LANG=$(awk -F/ "/\/ctp_data\/(${MY_LANGS})\/$/ { print \$3; }" ${CDROM_ROOT}/setup/tarball.list 2>/dev/null|head -n 1) + + if test -z "${CTP_CD_LANG}"; then + die "Could not determine language of CtP-CD."; + else + einfo "Found CtP-CD version ${CTP_VER} in ${CTP_CD_LANG}." + fi + LANG_CNT=0 + for CUR_LANG in ${CTP_LANG_USE}; do + if useq ${CUR_LANG}; then + LANG_CNT=$((LANG_CNT+1)) + USED_LANG=${CUR_LANG} + fi + done + if [ $LANG_CNT -eq 0 ]; then + eerror "" + eerror "You did not specify the language of your CivCTP cd." + eerror "" + eerror "I determined you have the ${CTP_CD_LANG} version of CivCTP." + eerror "Please add civctp-${CTP_CD_LANG} to your USE-flags." + eerror "" + die "Language of CivCTP-CD not specified in USE-flags." + elif [ $LANG_CNT -gt 1 ]; then + eerror "" + eerror "You specified more than one language for your CivCTP cd." + eerror "Obviously, this cannot be true. I determined you have the" + eerror "${CTP_CD_LANG} version of CivCTP." + eerror "Please remove any other civctp-* flag from your USE-flags" + eerror "" + die "More than one language specified for CivCTP-CD" + fi + USED_LANG=${USED_LANG//civctp-/} + if [ "${CTP_CD_LANG}" != "${USED_LANG}" ]; then + eerror "" + eerror "You specified you have the ${USED_LANG} version of CivCTP." + eerror "However, i recognized the ${CTP_CD_LANG} version." + eerror "Please replace civctp-${USED_LANG} by ${CTP_CD_LANG}" + eerror "in your USE-flags." + eerror "" + die "Expected ${CTP_CD_LANG}, but got ${USED_LANG}." + fi +} + +pkg_setup() { + check_license || die "License check failed" + use nocd && ewarn "The full installation takes about 625 MB of space!" + + # The following is ugly, but we need to know the CTP version + # _before_ we can download the updates + check_ctp2_cd_version + + if useq langpatch; then + if [ "${CTP_NO_LANG}" = "y" ]; then + ewarn "" + ewarn "You did not set the CTP_LANG variable to contain the language" + ewarn "your CivCTP should be patched to." + ewarn "Thus, i assume you want the ${CTP_LANG} version of CivCTP." + ewarn "" + fi + fi + + games_pkg_setup +} + +src_unpack() { + local my_a + + # We patch in order of A=in order of SRC_URI + for my_a in ${A} ; do + mkdir -p ${S}/${my_a}.dir + cd ${S}/${my_a}.dir + unpack_makeself ${my_a} + done +} + +src_install() { + local my_a + + einfo "Copying files... this may take a while..." + dodir ${dir} + exeinto ${dir} + cd ${CDROM_ROOT} || die "Could not change directory to ${CDROM_ROOT}" + /bin/sh ${CDROM_ROOT}/setup/unpack_data install ${Ddir} > /dev/null 2>&1 || die "unpack_data failed" + if useq nocd; then + /bin/sh ${CDROM_ROOT}/setup/unpack_videos install ${Ddir} > /dev/null 2>&1 || die "unpack_videos failed" + elif useq videos; then + /bin/sh ${CDROM_ROOT}/setup/unpack_videos install ${Ddir} > /dev/null 2>&1 || die "unpack_videos failed" + fi + cd ${S} + + for my_a in ${A}; do + einfo "Applying patch from ${my_a}..." + cd ${S}/${my_a}.dir || die "patch dir ${my_a}.dir does not exist in workdir." + loki_patch --verify patch.dat || die "Verifying patch failed" + loki_patch patch.dat ${Ddir}/CivCTP > /dev/null 2>&1 || die "Patching CivCTP to ${PV} failed." + done + + games_make_wrapper civctp ./civctp ${dir}/CivCTP + + insinto /usr/share/pixmaps + cp -p ${Ddir}/CivCTP/icon.xpm ${S}/civctp.xpm + doins ${S}/civctp.xpm + + # now, since these files are coming off a cd, the times/sizes/md5sums wont + # be different ... that means portage will try to unmerge some files (!) + # we run touch on ${D} so as to make sure portage doesnt do any such thing + find ${Ddir} -exec touch '{}' \; + + prepgamesdirs + make_desktop_entry civctp "Civilization Call to Power" "civctp.xpm" +} + +pkg_postinst() { + einfo "To play the game run:" + einfo " civctp" + + games_pkg_postinst +} |