Skip to content

Commit

Permalink
games-action/dxx-rebirth: Add udpated ebuilds
Browse files Browse the repository at this point in the history
Add ebuilds so that the package supports current testing gcc 10, including a live ebuild, and references new free content packages.

Closes: https://bugs.gentoo.org/724886
Signed-off-by: Ian Silvester <iansilvester@fastmail.fm>
Closes: #16308
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
  • Loading branch information
dr-diem authored and chewi committed Jul 3, 2020
1 parent 829eb28 commit 8868a8d
Show file tree
Hide file tree
Showing 4 changed files with 529 additions and 4 deletions.
1 change: 1 addition & 0 deletions games-action/dxx-rebirth/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ DIST d1xr-sc55-music.dxa 72803408 BLAKE2B eb52491f5c43e9f04aea5715cffc0a47d029dd
DIST d2xr-briefings-ger.dxa 11717 BLAKE2B 27af93656ac91bf5490195d2aebc9c9f252cb730094cccb53298b07f2e2031935033b8db765b40fdad93fb55b157a2be07906ea45185b754e5ec7c205803cc92 SHA512 479aa577dc65271c705e80404ec46e6c59ee3a5122d6e9705dbdd16b71b16c0d3447426e3e74937aa20eb7026f67a3896c5e814fbfcede9164bd557b6eb8423c
DIST d2xr-opl3-music.dxa 22710919 BLAKE2B 82bdf29b6afe88305d4c7b69bb8b094efcf33ad23becec223311775cd50600ed399c207ee3a05da3800bcc5e123d00f9f8fa7d2d4f4d4be57bbf71e1c2482a9c SHA512 876321a9a16403f6e9d12e10bb73c9cdc57e1a106fa64833a1be8cc17b74f6f13e57e40f051a1b40e7bc88b95bfe86cff181c93c8619383dfdeb74f36f5cce86
DIST d2xr-sc55-music.dxa 19579531 BLAKE2B 16091e24477a49319f2685884a7538a3597a9132707ac1d59405fa08ce7492158075df4ee680a5c7ba44aa0bd0b16170057f6a8956eab4b56913d00ee2f1f339 SHA512 290713b05627bf65bdc55fc6631a0c86e50f484a167f3fd20b3fe2bc5b772437939b5bf32eea852874dd983fbd47f160cae2412a2d6c5319f0d1583a33d28da6
DIST dxx-rebirth-0.61.0_pre20200615.tar.gz 1959226 BLAKE2B 08d66eb1599100172e2bd8dcb8e13ca11314f3b06658c36851ddc7d91897a8376899b7c33b6e7a2d7b72e93cf7f20f157994d06f880e138dc807350e4c64c517 SHA512 3470e2b9cf20268f1af5e8084f0b361d1dd5d797bee9a1d97ce5509046f79750ac214d0f34e7eef1acc4ee4ae868ad3f34d33b45ff163863333e9d8a7d758db2
DIST dxx-rebirth_v0.59.100-src.tar.gz 1809614 BLAKE2B 6826380312fa23dbc99459db9272cf7ffb5a00a14cfdd777339633fbd943a288af00f182692ebc3078e4c39bf6b6cc9fb05cc6a533ec126b8c881eb22c465868 SHA512 dc9b7ad263e189e779756b62613d4bc62371cb5fec2176a4013395fc18c9d03ab0c9ddc5ccf2668b87e4a77b25d500bdef373126f176bfce49f73b5a98de23d7
262 changes: 262 additions & 0 deletions games-action/dxx-rebirth/dxx-rebirth-0.61.0_pre20200615.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,262 @@
# Copyright 2017-2020 DXX Rebirth project contributors
# Distributed under the terms of the GNU General Public License v2

# This file is part of the DXX-Rebirth project.
#
# It is copyright by its individual contributors, as recorded in the
# project's Git history. See COPYING.txt at the top level for license
# terms and a link to the Git history.

EAPI=7
PYTHON_COMPAT=( python3_7 )

inherit desktop eutils python-any-r1 scons-utils toolchain-funcs xdg
if [[ "$PV" = 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/dxx-rebirth/dxx-rebirth"
# Live ebuilds have blank keywords.
KEYWORDS=
PROPERTIES="live"
else
# dxx-rebirth-0.61.0_pre20190720.ebuild
#MY_COMMIT='a17792c89fd49dd12fdf5981670dd7f64b42850f'
# dxx-rebirth-0.61.0_pre20200615.ebuild
MY_COMMIT='0c2fcf691ffb2a586991350d67f3efd1cca2a1f3'
# dxx-rebirth-0.61.0_pre20200627.ebuild
#MY_COMMIT='aba40babb47d36a88011af01e4bc0fc00dca74ef'
S="$WORKDIR/$PN-$MY_COMMIT"
#SRC_URI="https://github.com/dxx-rebirth/dxx-rebirth/archive/$MY_COMMIT.tar.gz -> $PN-$PVR.tar.gz"
SRC_URI="https://codeload.github.com/dxx-rebirth/dxx-rebirth/tar.gz/$MY_COMMIT -> $PN-$PVR.tar.gz"
unset MY_COMMIT

# Games under Gentoo are marked as 'testing' by convention
#
# Other architectures are reported to work, but not tested regularly by
# the core team.
#
# Raspberry Pi support is tested by an outside contributor, and his
# fixes are merged into the main source by upstream.
#
# Cross-compilation to Windows is also supported.
KEYWORDS="~amd64 ~x86"
fi

DESCRIPTION="Descent Rebirth - enhanced Descent 1 & 2 engine"
HOMEPAGE="https://www.dxx-rebirth.com/"

LICENSE="DXX-Rebirth GPL-3"
SLOT="0"

# Default to building both game engines. The total size is relatively
# small.
IUSE="+d1x +d2x +data debug editor +flac ipv6 +joystick l10n_de +midi +mp3 +music +opengl opl3-musicpack +png sc55-musicpack sdl2 tracker valgrind +vorbis"

# Game data is stored in HOG files.
# Game movies are in MVL files.
# Various add-ons use zip files to bundle their content together.
#
# PNG support enables writing screenshots as PNG instead of TGA (for
# USE=opengl) or PCX (for USE=-opengl).
DEPEND="dev-games/physfs[hog,mvl,zip]
opengl? (
virtual/opengl
virtual/glu )
png? ( media-libs/libpng )
"

# As of this writing, there is no Portage shorthand syntax to express:
# "
# flag1? ( package[flag1] )
# flag2? ( package[flag2] )
# ...
# flagN? ( package[flagN] )
# ", such that unsetting all flags removes the dependency on package.
# Fake it by using a text fragment that is repeatedly expanded with
# differing substitutions.
#
# The use of single quotes is intentional here. The ${word} is a
# placeholder to be matched by text substitution when the fragment is
# expanded, not a shell variable reference.
#
# For each flag, depend on freedata using the same flag. If none of the
# flags are set, freedata is not needed.
DXX_RDEPEND_USE_FREEDATA_FRAGMENT='
${USE}? ( games-action/descent${ENGINE}-freedata[${USE}] )
'
# Block <0.59.100 due to file collision.
#
# If USE=data, then require a game data package.
# The build process does not use the game data, nor change how the game
# is built based on what game data will be used. At startup, the game
# will search for both types of game data and use what it finds. Users
# can switch between shareware/retail data at any time by
# adding/removing the appropriate data packages. A rebuild is _not_
# required after swapping the data files.
#
# USE-depend on freedata for various extras, but only if any of those
# extras are enabled.
DXX_RDEPEND_ENGINE_FRAGMENT='
d${ENGINE}x? (
!<games-action/d${ENGINE}x-rebirth-0.59.100
data? (
|| (
games-action/descent${ENGINE}-data
games-action/descent${ENGINE}-demodata
)
)
'"
${DXX_RDEPEND_USE_FREEDATA_FRAGMENT//\$\{USE\}/l10n_de}
${DXX_RDEPEND_USE_FREEDATA_FRAGMENT//\$\{USE\}/opl3-musicpack}
${DXX_RDEPEND_USE_FREEDATA_FRAGMENT//\$\{USE\}/sc55-musicpack}
"'
)
'

DXX_DEPEND_USE_SDL_VERSION_FRAGMENT='
media-libs/lib${SDL_version}[joystick?,opengl?,sound,video]
media-libs/${SDL_version}-image
music? ( media-libs/${SDL_version}-mixer )
'
DXX_RDEPEND_USE_SDL_VERSION_FRAGMENT='
music? ( media-libs/${SDL_version}-mixer[flac?,midi?,mp3?,vorbis?] )
'
DEPEND="${DEPEND}
!sdl2? ( ${DXX_DEPEND_USE_SDL_VERSION_FRAGMENT//\$\{SDL_version\}/sdl} )
sdl2? ( ${DXX_DEPEND_USE_SDL_VERSION_FRAGMENT//\$\{SDL_version\}/sdl2} )
"
unset DXX_DEPEND_USE_SDL_VERSION_FRAGMENT

unset DXX_RDEPEND_USE_FREEDATA_FRAGMENT
RDEPEND="${DEPEND}
!sdl2? ( ${DXX_RDEPEND_USE_SDL_VERSION_FRAGMENT//\$\{SDL_version\}/sdl} )
sdl2? ( ${DXX_RDEPEND_USE_SDL_VERSION_FRAGMENT//\$\{SDL_version\}/sdl2} )
${DXX_RDEPEND_ENGINE_FRAGMENT//\$\{ENGINE\}/1}
${DXX_RDEPEND_ENGINE_FRAGMENT//\$\{ENGINE\}/2}
"
unset DXX_RDEPEND_ENGINE_FRAGMENT
unset DXX_RDEPEND_USE_SDL_VERSION_FRAGMENT

# USE=valgrind enables use of a Valgrind header. A build with valgrind
# instrumentation can be run without installing Valgrind, so this
# dependency is only in DEPEND, instead of being in both DEPEND and
# RDEPEND.
DEPEND+='
valgrind? ( dev-util/valgrind )
'

# This ebuild builds d1x-rebirth, d2x-rebirth, or both. Building none
# would mean this ebuild installs zero files.
#
# For each of the supported music flags, require USE=music, so that the
# package is built with sdl-mixer support. Individual music types can be
# changed without a Rebirth rebuild by rebuilding sdl-mixer with
# appropriate support, but Rebirth must have sdl-mixer support at build
# time in order to support any of these music formats at runtime.
#
# All music files in the optional musicpack downloads are .ogg, so
# require USE=vorbis if those packs are enabled.
REQUIRED_USE='
|| ( d1x d2x )
flac? ( music )
midi? ( music )
mp3? ( music )
vorbis? ( music )
opl3-musicpack? ( vorbis )
sc55-musicpack? ( vorbis )
sdl2? ( opengl )
'

# As of this writing, IUSE_RUNTIME is a GLEP, but not an implemented
# feature. This variable is stored here to be ready to activate when
# Portage implements this feature.
#
# Note that while individual music formats can be switched without a
# rebuild, the master flag USE=music controls whether sdl-mixer is used,
# and therefore requires a rebuild when changed.
#IUSE_RUNTIME="flac l10n_de midi mp3 opl3-musicpack sc55-musicpack vorbis"

dxx_scons() {
# Always build profile `m`. If use editor, also build profile `e`.
# Set most variables in the default anonymous profile. Only
# `builddir` and `editor` are set in the named profiles, since those
# must be different between the two builds.
#
# Notes for end users:
# - Per-engine options can be set with an engine prefix, as shown
# for sharepath. Such options are used in place of
# engine-unqualified options. For example, to disable sdlmixer
# for Descent 2: Rebirth, but use the setting below for Descent 1:
# Rebirth, set EXTRA_ESCONS="d2x_sdlmixer=0".
# - Profile `site` is searched before the anonymous profile, and is
# deliberately unused in this ebuild. Set options in the site
# profile to affect both engines:
# EXTRA_ESCONS="site_verbosebuild=0".
local scons_build_profile=m mysconsargs=(
sdl2=$(usex sdl2 1 0)
sdlmixer=$(usex music 1 0)
verbosebuild=1
debug=$(usex debug 1 0)
ipv6=$(usex ipv6 1 0)
opengl=$(usex opengl 1 0)
use_tracker=$(usex tracker 1 0)
prefix="${EPREFIX}"/usr
screenshot=$(usex png png legacy)
m_builddir=build/main/
m_editor=0
)
if use editor; then
scons_build_profile+=+e
mysconsargs+=( \
e_builddir=build/editor/
e_editor=1
)
fi
if ! use joystick; then
mysconsargs+=( \
max_joysticks=0
)
fi
# Add sharepath and enable build of selected games. The trailing
# comma after `$scons_build_profile` is required to cause scons to
# search the anonymous profile. If omitted, only settings from the
# named profile would be used.
use d1x && mysconsargs+=( d1x_sharepath="/usr/share/games/d1x" d1x="$scons_build_profile,site," )
use d2x && mysconsargs+=( d2x_sharepath="/usr/share/games/d2x" d2x="$scons_build_profile,site," )
use valgrind && mysconsargs+=( poison=valgrind )
escons "${mysconsargs[@]}" "$@"
}

src_compile() {
tc-export CXX PKG_CONFIG
dxx_scons register_install_target=0 build
}

src_install() {
# Use upstream install target to handle the various combinations of
# enabled/disabled engines and optional editor support.
dxx_scons register_compile_target=0 register_install_target=1 DESTDIR="$D" "$D"
local DV
for DV in 1 2; do
if ! use d${DV}x; then
continue
fi
local PROGRAM=d${DV}x-rebirth
docinto "${PROGRAM}"
dodoc "${PROGRAM}"/*.txt
make_desktop_entry "${PROGRAM}" "Descent ${DV} Rebirth" "${PROGRAM}"
doicon "${PROGRAM}/${PROGRAM}.xpm"
done
}

pkg_postinst() {
xdg_pkg_postinst
if ! use data; then
elog "$PN requires game data to play."
elog "Game data is not included in this package. To play the game,"
elog "emerge the packages required by USE=data or install the game"
elog "data by hand."
elog
elog "Changing USE=data does not change how this package is built,"
elog "only its runtime dependencies."
fi
}

0 comments on commit 8868a8d

Please sign in to comment.