summaryrefslogtreecommitdiff
path: root/games-strategy/heroes3
diff options
context:
space:
mode:
Diffstat (limited to 'games-strategy/heroes3')
-rw-r--r--games-strategy/heroes3/Manifest5
-rw-r--r--games-strategy/heroes3/files/heroes3-wrapper.sh13
-rw-r--r--games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild208
-rw-r--r--games-strategy/heroes3/metadata.xml13
4 files changed, 239 insertions, 0 deletions
diff --git a/games-strategy/heroes3/Manifest b/games-strategy/heroes3/Manifest
new file mode 100644
index 000000000000..bf69810036c1
--- /dev/null
+++ b/games-strategy/heroes3/Manifest
@@ -0,0 +1,5 @@
+AUX heroes3-wrapper.sh 195 BLAKE2B 8c588f523487201cc7323f49e0912c32dee2699d04ed4ac9bea55aa588918fc797c93d2fbeb04aa5a726ebce01e0862d5e21a80d477f1e32f535f5c5c9d771ef SHA512 ac1871676ffb0c818ddd9dcadad031d3e296982a989dcc91241b2630eb773e341058e1d4406374a21bcc0f6c8caba94398541ddbc540e7c140660838ef3ed0c8
+DIST heroes3-1.3.1a-cdrom-x86.run 3012188 BLAKE2B 9a76fef81737fd4d0bd6d6c75a5c845a8fef00e739463737996b2065cc9be0c773c198d76310ceafb25cd60b01ded7862cc3ef906eebbe91d50d5f34d454a23a SHA512 d0cb902386361b17009aece0d0508a0c19683c71acf3abe11a7f50ec2d4710a89cda3f5f9da326b58e9b945da5f62533dea54457e141ce71ebc3e9945dca814d
+DIST heroes3-1.3.1a-ppc.run 2643068 BLAKE2B bb975aca97d5b753badb6f0511f2bc88f3ace3488f82a1d70ddd5cadf78f8ab57c4472f6d3d3e9f69728d1008d51ab31a816660611e421873f7b773bf76fb23e SHA512 3578dbed0ed9fd47f67e6abaec4b4d66628160509e68dc3bea7b5288230e344b5b8f9d380c6a35ffc9d084d0e2a54ce84df72b13bfb609fa4d7edd1456264276
+EBUILD heroes3-1.3.1a-r2.ebuild 5478 BLAKE2B 6b13ab2a5bf911b39b36d73cdb702f6f643cdb993ed9a2130799eb8f16427b54dbb66bedbc1fba5b8ebc85c7bc4213b0fd2bb6f59b6adb6804dc8013325372c0 SHA512 56678d9f57e964d89f93fa61a11c2cb3c2b476bbe982a1b861b01859655de51a579e34114b210d2fba412506ffe2db3693a035b854acd0e7e4ba1142596595c9
+MISC metadata.xml 451 BLAKE2B ea23bfe60a36d79f73d5ec04c4b58fe66241baff684458e6121f0f247ee8516767f372551e8b17933cbdb4271d3e99f6028c9a99136daa6e8b558e7a918acf2a SHA512 d4b4f5dd75aec49703e77221d3811c20f72405f45f5ac7990e46a8cf8d639f3c53c5bfae13e6615c0a0ac16ee57073c8e92de355f7e1ac934d9be6b90bce6990
diff --git a/games-strategy/heroes3/files/heroes3-wrapper.sh b/games-strategy/heroes3/files/heroes3-wrapper.sh
new file mode 100644
index 000000000000..3847c539ed76
--- /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 000000000000..a08da4b3256a
--- /dev/null
+++ b/games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# [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"
+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 ~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 000000000000..5ae90d93661b
--- /dev/null
+++ b/games-strategy/heroes3/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
+ <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>