From 0d98dd4b89245e950248da54a88dfb050edee9a9 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Sat, 18 Apr 2020 21:46:03 +0100 Subject: [PATCH] games-strategy/settlers-2-gold-data: New package I don't have any actual CDs to test with so I've had to fudge some testing using the GOG version. Let me know if it doesn't work. Package-Manager: Portage-2.3.99, Repoman-2.3.22 Signed-off-by: James Le Cuirot --- games-strategy/settlers-2-gold-data/Manifest | 1 + .../settlers-2-gold-data/metadata.xml | 8 ++ .../settlers-2-gold-data-0.ebuild | 96 +++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 games-strategy/settlers-2-gold-data/Manifest create mode 100644 games-strategy/settlers-2-gold-data/metadata.xml create mode 100644 games-strategy/settlers-2-gold-data/settlers-2-gold-data-0.ebuild diff --git a/games-strategy/settlers-2-gold-data/Manifest b/games-strategy/settlers-2-gold-data/Manifest new file mode 100644 index 0000000000000..7cd6c4b7630aa --- /dev/null +++ b/games-strategy/settlers-2-gold-data/Manifest @@ -0,0 +1 @@ +DIST setup_the_settlers_2_gold_1.5.1_(30319).exe 306652144 BLAKE2B d415d47e68c07b891c099d1a626f8b0641a49c5acd06953aa1280ddef2b4e7b360ee09739bae3b8489cf23c3e38e2a3d60311f360a0b3e5acf7884833380ae86 SHA512 743c2ab9eee293ec82178dac38c142366de4ef1a4c46517d30b457513bcbacf5f14d5309a2e357dd4785e439598266d90ce1c27e23165112e8f304a48f23d110 diff --git a/games-strategy/settlers-2-gold-data/metadata.xml b/games-strategy/settlers-2-gold-data/metadata.xml new file mode 100644 index 0000000000000..26079e608bed9 --- /dev/null +++ b/games-strategy/settlers-2-gold-data/metadata.xml @@ -0,0 +1,8 @@ + + + + + games@gentoo.org + Gentoo Games Project + + diff --git a/games-strategy/settlers-2-gold-data/settlers-2-gold-data-0.ebuild b/games-strategy/settlers-2-gold-data/settlers-2-gold-data-0.ebuild new file mode 100644 index 0000000000000..970f2869c44c6 --- /dev/null +++ b/games-strategy/settlers-2-gold-data/settlers-2-gold-data-0.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CDROM_OPTIONAL="yes" +inherit cdrom estack + +# For GOG install +MY_EXE="setup_the_settlers_2_gold_1.5.1_(30319).exe" + +DESCRIPTION="Data files for The Settlers II: Gold Edition" +HOMEPAGE="https://www.gog.com/game/the_settlers_2_gold_edition" +# There are non-English GOG downloads but RTTR uses its own translations. +SRC_URI="!cdinstall? ( ${MY_EXE} )" +LICENSE="!cdinstall? ( GOG-EULA ) cdinstall? ( all-rights-reserved )" +SLOT="0" +KEYWORDS="~amd64 ~x86" +RESTRICT="bindist !cdinstall? ( fetch )" + +RDEPEND=" + games-strategy/s25rttr +" + +BDEPEND=" + !cdinstall? ( app-arch/innoextract ) +" + +S="${WORKDIR}/target" + +pkg_nofetch() { + einfo "Please buy and download ${MY_EXE} from:" + einfo " https://www.gog.com/game/the_settlers_2_gold_edition" + einfo "and move it to your distfiles directory." + echo + einfo "If you wish to install from CD-ROM instead, please enable the cdinstall flag." +} + +dotar() { + eshopts_push -s globstar nocaseglob nullglob + + # Uppercase + # Avoid copying files twice + # Don't include *.ENG or *.GER files as they are unused by RTTR + + tar c \ + --mode=u+w \ + --ignore-case \ + --xform='s:.*:\U\0:x' \ + --exclude-from=<(find "${S}"/ -type f -printf "%P\n" 2>/dev/null) \ + {DATA,GFX}/**/*.{BBM,BOB,DAT,FNT,IDX,LBM,LST,RTX,WLD} \ + | tar x -C "${S}" + + assert "tar failed" + eshopts_pop +} + +src_unpack() { + unset CDROM_SET + mkdir -p "${S}" || die + + if use cdinstall; then + default + cdrom_get_cds S2/GFX/PICS/MISSION/AFRICA.LBM:GFX/PICS/MISSION/AFRICA.LBM:S2/GFX/PICS/SETUP010.LBM ::S2/S2/GFX/PICS/MISSION/AFRICA.LBM + + case ${CDROM_SET} in + 0) + einfo "Found The Settlers II: Gold Edition CD" + cd "${CDROM_ROOT}"/[Ss]2 || die ;; + 1) + einfo "Found The Settlers II: Gold Edition installation" + cd "${CDROM_ROOT}" || die ;; + 2) + einfo "Found The Settlers II: Veni, Vidi, Vici CD" + cd "${CDROM_ROOT}/"[Ss]2 || die ;; + esac + else + einfo "Unpacking ${MY_EXE}." + innoextract -e -s -p1 -I DATA -I GFX -d gog "${DISTDIR}/${MY_EXE}" || die + cd gog || die + fi + + dotar + + if [[ ${CDROM_SET} == 2 ]]; then + cdrom_load_next_cd + einfo "Found The Settlers II: Mission CD" + cd "${CDROM_ROOT}"/[Ss]2/[Ss]2 || die + dotar + fi +} + +src_install() { + insinto /usr/share/s25rttr/S2 + doins -r * +}