summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-strategy/heroes3')
-rw-r--r--games-strategy/heroes3/Manifest2
-rw-r--r--games-strategy/heroes3/files/heroes3-wrapper.sh13
-rw-r--r--games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild209
-rw-r--r--games-strategy/heroes3/metadata.xml10
4 files changed, 234 insertions, 0 deletions
diff --git a/games-strategy/heroes3/Manifest b/games-strategy/heroes3/Manifest
new file mode 100644
index 00000000000..7a9fbeb30a2
--- /dev/null
+++ b/games-strategy/heroes3/Manifest
@@ -0,0 +1,2 @@
+DIST heroes3-1.3.1a-cdrom-x86.run 3012188 SHA256 f87d78e09278e2f05cb15e2f79dfeaae2cef8fb147b83185dd4f818c0ab7759e
+DIST heroes3-1.3.1a-ppc.run 2643068 SHA256 b14eeb8eef705b20dbf54eb308b2232d6110f4ec568cb82d9ea9fb7f9cca3137
diff --git a/games-strategy/heroes3/files/heroes3-wrapper.sh b/games-strategy/heroes3/files/heroes3-wrapper.sh
new file mode 100644
index 00000000000..3847c539ed7
--- /dev/null
+++ b/games-strategy/heroes3/files/heroes3-wrapper.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+DIR="${HOME}/.loki/heroes3"
+
+if [ ! -d "${DIR}" ]; then
+ echo "* Creating '${DIR}'"
+ mkdir -p ${DIR}
+fi
+
+# fixes bug #93604
+cd ${DIR}
+
+exec GAMES_PREFIX_OPT/heroes3/heroes3 ${@}
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 00000000000..3344ed6aee5
--- /dev/null
+++ b/games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild
@@ -0,0 +1,209 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# [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
+
+EAPI=5
+LANGS="de es pl"
+LANGPACKPREFIX="${PN}-lang"
+LANGPACKBASE="http://babelize.org/download/"
+LANGPACKPATHPREFIX="${LANGPACKBASE}/${LANGPACKPREFIX}"
+LANGPACKVERSION=1.0.4
+
+inherit eutils unpacker cdrom 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 )
+ amd64? ( 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="~amd64 ~ppc x86"
+RESTRICT="strip"
+
+DEPEND="=dev-util/xdelta-1*
+ games-util/loki_patch"
+RDEPEND="!ppc? ( sys-libs/lib-compat-loki )"
+
+S=${WORKDIR}
+
+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
+}
+
+src_unpack() {
+ cdrom_get_cds hiscore.tar.gz
+ (use x86 || use amd64) && 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}
+ 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
+
+ cd "${S}"
+ loki_patch --verify patch.dat
+ loki_patch patch.dat "${Ddir}" >& /dev/null || die
+
+ # 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"
+
+ 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
+ dosym /usr/lib/loki_libc.so.6 "${dir}"/libc.so.6
+ dosym /usr/lib/loki_libnss_files.so.2 "${dir}"/libnss_files.so.2
+ fi
+
+ elog "Changing 'hiscore.dat' to be writeable for group 'games'."
+ fperms g+w "${dir}/data/hiscore.dat"
+
+ # 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
+ sed -i -e "s:GAMES_PREFIX_OPT:${GAMES_PREFIX_OPT}:" "${T}"/heroes3 || die
+ dogamesbin "${T}"/heroes3
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ elog "To play the game run:"
+ elog " heroes3"
+}
diff --git a/games-strategy/heroes3/metadata.xml b/games-strategy/heroes3/metadata.xml
new file mode 100644
index 00000000000..dcc07710cea
--- /dev/null
+++ b/games-strategy/heroes3/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <use>
+ <flag name="maps">Installs optional map data</flag>
+ <flag name="music">Installs optional music data</flag>
+ <flag name="sounds">Installs optional sound data</flag>
+ </use>
+</pkgmetadata>