summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Gianelloni <wolf31o2@gentoo.org>2006-10-05 22:59:08 +0000
committerChris Gianelloni <wolf31o2@gentoo.org>2006-10-05 22:59:08 +0000
commit4a61278c2ce98b2dd110424e4b246ba9a6589e0c (patch)
treef287d8ac05cefa537be41df174a8dcc3e2d948dc /games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild
parentgames herd (diff)
downloadgentoo-2-4a61278c2ce98b2dd110424e4b246ba9a6589e0c.tar.gz
gentoo-2-4a61278c2ce98b2dd110424e4b246ba9a6589e0c.tar.bz2
gentoo-2-4a61278c2ce98b2dd110424e4b246ba9a6589e0c.zip
Added wrapper to allow us to write out some temp files. Wrapper by Alex Linke <incubation.11@freenet.de>. Closing bug #93604.
(Portage version: 2.1.2_pre1-r4)
Diffstat (limited to 'games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild')
-rw-r--r--games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild212
1 files changed, 212 insertions, 0 deletions
diff --git a/games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild b/games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild
new file mode 100644
index 000000000000..47d93574de2e
--- /dev/null
+++ b/games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild,v 1.1 2006/10/05 22:59:08 wolf31o2 Exp $
+
+# [x] Base Install Required (+4 MB)
+# [x] Scenarios (+7 MB)
+# [x] Sounds and Graphics (+118 MB)
+# [x] Music (+65 MB)
+# [x] Videos (+147 MB)
+# --------------------
+# Total 341 MB
+
+LANGS="de es pl"
+LANGPACKPREFIX="${PN}-lang"
+LANGPACKBASE="http://babelize.org/download/"
+LANGPACKPATHPREFIX="${LANGPACKBASE}/${LANGPACKPREFIX}"
+LANGPACKVERSION=1.0.4
+
+inherit eutils games
+
+DESCRIPTION="Heroes of Might and Magic III : The Restoration of Erathia - turn-based 2-D medieval combat"
+HOMEPAGE="http://www.lokigames.com/products/heroes3/"
+
+# 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.
+SRC_URI="x86? ( mirror://lokigames/${PN}/${P}-cdrom-x86.run )
+ ppc? ( mirror://lokigames/${PN}/${P}-ppc.run )"
+# This is commented because the server is unreachable.
+# linguas_es? ( ${LANGPACKPATHPREFIX}-es.tar.gz )
+# linguas_de? ( ${LANGPACKPATHPREFIX}-de.tar.gz )
+# linguas_pl? ( ${LANGPACKPATHPREFIX}-pl.tar.gz )"
+
+# ${LANGPACKBASE}/${PN}-localize-${LANGPACKVERSION}.run
+
+LICENSE="LOKI-EULA"
+SLOT="0"
+IUSE="nocd maps music sounds videos"
+#linguas_en linguas_es linguas_pl linguas_de"
+KEYWORDS="~ppc ~x86"
+RESTRICT="strip"
+
+DEPEND="virtual/libc
+ dev-util/xdelta
+ games-util/loki_patch"
+RDEPEND="!ppc? ( sys-libs/lib-compat-loki )"
+
+S=${WORKDIR}
+
+GAMES_CHECK_LICENSE="yes"
+dir=${GAMES_PREFIX_OPT}/${PN}
+Ddir=${D}/${dir}
+
+pkg_setup() {
+ games_pkg_setup
+# strip-linguas en ${LANGS}
+
+ use nocd && fullinstall=1
+ use sounds && use videos && use maps && fullinstall=1
+
+ [ ${fullinstall} -eq 1 ] \
+ && ewarn "The full installation takes about 341 MB of space!"
+
+# if [ -n "${fullinstall}" ]
+# then
+# langcount=0
+# for i in ${LINGUAS}
+# do
+# i="${i/_/-}"
+# if [ ${i} != "en" ]
+# then
+# let $((++langcount))
+# if [ $langcount = 2 ]
+# then
+# eerror "Heroes3 only supports one localization at once!"
+# die "Localization is only supported when Heroes3 is in a single language!"
+# fi
+# fi
+# done
+# else
+# for i in ${LINGUAS}
+# do
+# i="${i/_/-}"
+# if [ ${i} != "en" ]
+# then
+# eerror "Full installation (nocd flag or data + video + maps flags) is needed for ${i} language!"
+# die "Localization is only supported when Heroes3 is fully locally installed!"
+# fi
+# done
+# fi
+ cdrom_get_cds hiscore.tar.gz
+}
+
+src_unpack() {
+ use x86 && unpack_makeself ${P}-cdrom-x86.run
+ use ppc && unpack_makeself ${P}-ppc.run
+
+# for i in ${LINGUAS}
+# do
+# i="${i/_/-}"
+# if [ ${i} != "en" ]
+# then
+# mkdir localize
+# cd localize
+## unpack_makeself ${PN}-localize-${LANGPACKVERSION}.run
+# unpack ${LANGPACKPREFIX}-${i}.tar.gz
+# break
+# fi
+# done
+}
+
+src_install() {
+ exeinto "${dir}"
+ insinto "${dir}"
+ einfo "Copying files... this may take a while..."
+ doexe ${CDROM_ROOT}/bin/x86/${PN}
+ doins ${CDROM_ROOT}/{Heroes_III_Tutorial.pdf,README,icon.{bmp,xpm}}
+
+ if use nocd
+ then
+ doins -r ${CDROM_ROOT}/{data,maps,mp3} || die "copying data"
+ else
+ if use maps
+ then
+ doins -r ${CDROM_ROOT}/maps
+ fi
+ if use music
+ then
+ doins -r ${CDROM_ROOT}/mp3
+ fi
+ if use sounds
+ then
+ insinto "${dir}"/data
+ doins ${CDROM_ROOT}/data/{*.lod,*.snd}
+ fi
+ if use videos
+ then
+ doins -r ${CDROM_ROOT}/data/video
+ fi
+ fi
+
+# if [ -n "${fullinstall}" ]
+# then
+# for i in ${LINGUAS}
+# do
+# i="${i/_/-}"
+# if [ ${i} != "en" ]
+# then
+# find "${S}/localize/${i}" -type f | while read xfile
+# do
+# local file=$(echo "${xfile}" | \
+# sed "s#^${S}/localize/${i}/##;s#\.xdelta\$##")
+# ebegin "Localizing ${file}"
+# xdelta patch "${xfile}" "${Ddir}/${file}" "${Ddir}/${file}.xdp"
+# local retval=$?
+# if [ $retval = 0 ] ; then
+# mv -f "${Ddir}/${file}.xdp" "${Ddir}/${file}"
+# else
+# rm -f "${Ddir}/${file}.xdp"
+# fi
+# eend $retval "File $file could not be localized/patched! Original english version untouched..."
+# done
+# break
+# fi
+# done
+# fi
+
+ tar zxf ${CDROM_ROOT}/hiscore.tar.gz -C "${Ddir}" || die "unpacking hiscore"
+
+ cd "${S}"
+ loki_patch --verify patch.dat
+ loki_patch patch.dat "${Ddir}" >& /dev/null || die "patching"
+
+ # 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 '{}' \;
+
+ newicon ${CDROM_ROOT}/icon.xpm heroes3.xpm
+
+ prepgamesdirs
+ make_desktop_entry heroes3 "Heroes of Might and Magic III" "heroes3.xpm"
+
+ if ! use ppc
+ then
+ einfo "Linking libs provided by 'sys-libs/lib-compat-loki' to '${dir}'."
+ dosym /lib/loki_ld-linux.so.2 ${dir}/ld-linux.so.2 || die "dosym"
+ dosym /usr/lib/loki_libc.so.6 ${dir}/libc.so.6 || die "dosym"
+ dosym /usr/lib/loki_libnss_files.so.2 ${dir}/libnss_files.so.2 \
+ || die "dosym failed"
+ fi
+
+ einfo "Changing 'hiscore.dat' to be writeable for group 'games'."
+ fperms g+w "${dir}/data/hiscore.dat" || die "fperms failed"
+
+ # in order to play campaign games, put this wrapper in place.
+ # it changes CWD to a user-writeable directory before executing heroes3.
+ # (fixes bug #93604)
+ einfo "Preparing wrapper."
+ cp "${FILESDIR}"/heroes3-wrapper.sh "${T}"/heroes3 || \
+ die "copying wrapper failed"
+ sed -i -e "s:GAMES_PREFIX_OPT:${GAMES_PREFIX_OPT}:" "${T}"/heroes3 ||
+ die "sed failed"
+ dogamesbin "${T}"/heroes3 || die "doexe failed"
+
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ einfo "To play the game run:"
+ einfo " heroes3"
+}