diff options
author | James Le Cuirot <chewi@gentoo.org> | 2021-07-10 23:14:56 +0100 |
---|---|---|
committer | James Le Cuirot <chewi@gentoo.org> | 2021-07-10 23:14:56 +0100 |
commit | 5ca99171eb0a4d194a52fb62ec6ed79f9f33f5aa (patch) | |
tree | 60b9e3d4cfe9f6056404ca0885b24a24b25cc395 /games-action | |
parent | autotools.eclass: add EAPI 8 support (diff) | |
download | gentoo-5ca99171eb0a4d194a52fb62ec6ed79f9f33f5aa.tar.gz gentoo-5ca99171eb0a4d194a52fb62ec6ed79f9f33f5aa.tar.bz2 gentoo-5ca99171eb0a4d194a52fb62ec6ed79f9f33f5aa.zip |
games-action/dxx-rebirth: Bump snapshot to 20210623
Fixes: https://bugs.gentoo.org/801487
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Diffstat (limited to 'games-action')
-rw-r--r-- | games-action/dxx-rebirth/Manifest | 1 | ||||
-rw-r--r-- | games-action/dxx-rebirth/dxx-rebirth-0.61.0_pre20210623.ebuild | 249 | ||||
-rw-r--r-- | games-action/dxx-rebirth/dxx-rebirth-9999.ebuild | 2 |
3 files changed, 252 insertions, 0 deletions
diff --git a/games-action/dxx-rebirth/Manifest b/games-action/dxx-rebirth/Manifest index 1b705069b99f..f41040fea495 100644 --- a/games-action/dxx-rebirth/Manifest +++ b/games-action/dxx-rebirth/Manifest @@ -1 +1,2 @@ DIST dxx-rebirth-0.61.0_pre20200615.tar.gz 1959226 BLAKE2B 08d66eb1599100172e2bd8dcb8e13ca11314f3b06658c36851ddc7d91897a8376899b7c33b6e7a2d7b72e93cf7f20f157994d06f880e138dc807350e4c64c517 SHA512 3470e2b9cf20268f1af5e8084f0b361d1dd5d797bee9a1d97ce5509046f79750ac214d0f34e7eef1acc4ee4ae868ad3f34d33b45ff163863333e9d8a7d758db2 +DIST dxx-rebirth_20210623-src.tar.xz 1340044 BLAKE2B f16a8904d777559e789d719bc0d6d2dbb7d26c1128984117b6c64a334ae589dd5806439cc51e458a583e1b6cc831dae7c51bf7bd3fbc972989b0ce4e5b932a4e SHA512 150d873fa045df6fb2f9bb70334d08eeae0cc7a639e825f1352fed28501ab9541a27bf3395fc1929bc8d76ed9126b038eed67c5a01657f43116da4663e929821 diff --git a/games-action/dxx-rebirth/dxx-rebirth-0.61.0_pre20210623.ebuild b/games-action/dxx-rebirth/dxx-rebirth-0.61.0_pre20210623.ebuild new file mode 100644 index 000000000000..f2aeb8f86f45 --- /dev/null +++ b/games-action/dxx-rebirth/dxx-rebirth-0.61.0_pre20210623.ebuild @@ -0,0 +1,249 @@ +# Copyright 2017-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7,8,9} ) + +inherit desktop 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" +else + S="${WORKDIR}/${PN}_${PV##*_pre}-src" + SRC_URI="https://www.dxx-rebirth.com/download/dxx/rebirth/${PN}_${PV##*_pre}-src.tar.xz" + + # 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 ) +' + +BDEPEND="virtual/pkgconfig" + +# 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 +} diff --git a/games-action/dxx-rebirth/dxx-rebirth-9999.ebuild b/games-action/dxx-rebirth/dxx-rebirth-9999.ebuild index b29054e2a7bc..8b70e138369e 100644 --- a/games-action/dxx-rebirth/dxx-rebirth-9999.ebuild +++ b/games-action/dxx-rebirth/dxx-rebirth-9999.ebuild @@ -16,6 +16,8 @@ else 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. # |