forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
games-action/descent2-data: Rewrite with GOG, closes #369397, #612896
Thanks to Jared B for the initial ebuild work and Xdelta patches. Package-Manager: Portage-2.3.5, Repoman-2.3.2
- Loading branch information
Showing
3 changed files
with
125 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
DIST d2xptch12.tgz 158419 SHA256 61743c19baecde602c778e6ea44ef4a28bab9b8aa16a5f2772e3799863487a80 SHA512 14d59280e685a9c3d5e23e1d535f37f89768e022b795067793a994c5150685addfcacbd2dc52231804240d01d17d57b1db04335d41bc5930e3c8a845ebbb396b WHIRLPOOL ea2d14205eaa8978f22b9e9c3e20d99cf4c9ea8f43a4c688cb4cd9fc85b41b1dfdfed9fa38161ba776357a16370ede00fcc191a5d01ba1e7c4635720f0d1e77c | ||
DIST setup_descent2_2.1.0.10.exe 554371624 SHA256 e787d95574f8a4bf3c442ad49e837186319d3bb041a33a00df726be3be7c9750 SHA512 0db1935864eb59002cc995dfe9c40badd72d0a3dcec61092b0760481cd3d1316db17631c05043b938e4b958d696c508ce379face9baa260dcc598c77b4460618 WHIRLPOOL 1f13b652c79752772cf2a151ca7663443e8936be352ddb100e140b00bc6f88a13ba5d4dfad17cb07ed78ed5b629fad1aaeeb7424a2216b68761c4065b6f8ac3c |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
# Copyright 1999-2017 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
CDROM_OPTIONAL="yes" | ||
inherit cdrom eutils | ||
|
||
# Not possible to apply official 1.2 patch under Linux. A Gentoo user | ||
# created Xdelta patches and the DXX-Rebirth project kindly hosted them. | ||
MY_PATCH="http://www.dxx-rebirth.com/download/dxx/misc/d2xptch12.tgz" | ||
|
||
# For GOG install | ||
MY_EXE="setup_descent2_2.1.0.10.exe" | ||
|
||
DESCRIPTION="Data files for Descent 2" | ||
HOMEPAGE="http://www.interplay.com/games/descent.php" | ||
SRC_URI="cdinstall? ( ${MY_PATCH} ) | ||
!cdinstall? ( ${MY_EXE} )" | ||
LICENSE="descent-data" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~x86" | ||
IUSE="doc videos" | ||
RESTRICT="bindist !cdinstall? ( fetch )" | ||
|
||
# <d2x-0.2.5-r3 may include the data. | ||
RDEPEND="!<games-action/d2x-0.2.5-r3 | ||
!games-action/descent2-demodata" | ||
|
||
DEPEND="cdinstall? ( | ||
app-arch/unarj | ||
dev-util/xdelta:3 | ||
) | ||
!cdinstall? ( | ||
app-arch/innoextract | ||
)" | ||
|
||
S="${WORKDIR}" | ||
|
||
pkg_nofetch() { | ||
elog "You must place a copy of, or symlink to, the GOG setup package here:" | ||
elog "${DISTDIR}/${MY_EXE}" | ||
echo | ||
elog "If you wish to install from CD-ROM instead, please enable the cdinstall flag." | ||
} | ||
|
||
src_unpack() { | ||
if use cdinstall; then | ||
default | ||
cdrom_get_cds d2data/descent2.sow:descent2.hog | ||
|
||
case ${CDROM_SET} in | ||
0) | ||
einfo "Found Descent 2 CD" | ||
unarj e "${CDROM_ABSMATCH}" || die ;; | ||
1) | ||
einfo "Found Descent 2 installation" | ||
cd "${CDROM_ABSMATCH%/*}" || die ;; | ||
esac | ||
else | ||
einfo "Unpacking ${MY_EXE}. This will take a while..." | ||
innoextract -e -s -p1 -L -I app -d gog "${DISTDIR}/${MY_EXE}" || die | ||
cd "${WORKDIR}/gog/app" || die | ||
fi | ||
|
||
eshopts_push -s globstar nocaseglob nullglob | ||
|
||
# Strip directories | ||
# Lowercase | ||
# d2{-2plyr,chaos}.* into data/missions | ||
# *.dem into data/demos | ||
# Documentation into doc | ||
# Remainder into data | ||
# Exclude Vertigo files | ||
|
||
tar c \ | ||
--mode=u+w \ | ||
--ignore-case \ | ||
--xform='s:.*/::xg' \ | ||
--xform='s:.*:\L\0:x' \ | ||
--xform='s:^d2(-2plyr|chaos)\.:data/missions/\0:x' \ | ||
--xform='s:.*\.dem$:data/demos/\0:x' \ | ||
--xform='s:.*\.(pdf|txt)$:doc/\0:x' \ | ||
--xform='s:^[^/]+$:data/\0:x' \ | ||
--exclude='d2x*' \ | ||
--exclude='hoard.ham' \ | ||
--exclude='panic.*' \ | ||
--exclude="$(use doc || echo '*.pdf')" \ | ||
--exclude="$(use videos || echo '*.mvl')" \ | ||
*.{txt,pdf} *-h.mvl **/*.{ham,hog,mn2,pig,s11,s22} \ | ||
| tar x -C "${WORKDIR}" | ||
|
||
assert "tar failed" | ||
eshopts_pop | ||
} | ||
|
||
src_prepare() { | ||
# Patch to 1.2 if necessary | ||
if use cdinstall; then | ||
if [[ $(md5sum data/descent2.ham) != 7f30c3d7d4087b8584b49012a53ce022* ]]; then | ||
local i | ||
for i in *.xdelta; do | ||
xdelta3 -d -s data/"${i%.*}" "${i}" data/"${i%.*}".new || die | ||
mv data/"${i%.*}"{.new,} || die | ||
done | ||
fi | ||
fi | ||
|
||
default | ||
} | ||
|
||
src_install() { | ||
insinto /usr/share/games/d2x | ||
doins -r data/* | ||
[[ -d doc ]] && dodoc doc/* | ||
} | ||
|
||
pkg_postinst() { | ||
elog "A client is needed to run the game, e.g. games-action/dxx-rebirth." | ||
echo | ||
} |