diff options
Diffstat (limited to 'games-strategy/heroes3')
-rw-r--r-- | games-strategy/heroes3/Manifest | 5 | ||||
-rw-r--r-- | games-strategy/heroes3/files/heroes3-wrapper.sh | 13 | ||||
-rw-r--r-- | games-strategy/heroes3/heroes3-1.3.1a-r2.ebuild | 208 | ||||
-rw-r--r-- | games-strategy/heroes3/metadata.xml | 13 |
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> |