summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-roguelike')
-rw-r--r--games-roguelike/stone-soup/files/make-advpng.patch21
-rw-r--r--games-roguelike/stone-soup/files/make-no-png-dep-fix.patch94
-rw-r--r--games-roguelike/stone-soup/files/make.patch45
-rw-r--r--games-roguelike/stone-soup/metadata.xml6
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.25.1-r102.ebuild2
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.25.1-r103.ebuild203
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.26.1-r1.ebuild2
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.26.1-r2.ebuild207
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.27.1-r1.ebuild203
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.27.1.ebuild2
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.28.0-r1.ebuild222
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.28.0.ebuild2
12 files changed, 993 insertions, 16 deletions
diff --git a/games-roguelike/stone-soup/files/make-advpng.patch b/games-roguelike/stone-soup/files/make-advpng.patch
new file mode 100644
index 000000000000..683e478212b4
--- /dev/null
+++ b/games-roguelike/stone-soup/files/make-advpng.patch
@@ -0,0 +1,21 @@
+--- a/Makefile 2022-05-22 11:54:15.819138403 -0500
++++ b/Makefile 2022-05-22 11:56:24.475145274 -0500
+@@ -1080,8 +1080,7 @@
+
+ ifdef TILES_ANY
+ ifndef NO_OPTIMIZE
+- PNGCRUSH = pngcrush -q -m 113
+- PNGCRUSH_LABEL = PNGCRUSH
++ USE_ADVPNG = y
+ endif
+ endif
+
+@@ -1727,7 +1726,8 @@
+ $(TILEDEFSRCS) $(TILEDEFHDRS) $(ORIGTILEFILES): build-rltiles
+
+ dat/tiles/%.png: $(RLTILES)/%.png
+ $(QUIET_PNGCRUSH)$(PNGCRUSH) $< $@
++ $(QUIET_ADVPNG)$(ADVPNG) $@
+
+ clean-rltiles:
+ $(RM) $(DESTTILEFILES)
diff --git a/games-roguelike/stone-soup/files/make-no-png-dep-fix.patch b/games-roguelike/stone-soup/files/make-no-png-dep-fix.patch
new file mode 100644
index 000000000000..b43c9c41e8c8
--- /dev/null
+++ b/games-roguelike/stone-soup/files/make-no-png-dep-fix.patch
@@ -0,0 +1,94 @@
+--- a/Makefile 2021-08-02 13:54:26.603900984 -0500
++++ b/Makefile 2021-08-02 13:57:26.018910565 -0500
+@@ -186,7 +186,7 @@
+ uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
+ uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
+
+-HOST := $(shell sh -c 'cc -dumpmachine || echo unknown')
++HOST :=
+ ARCH := $(HOST)
+
+ ifdef CROSSHOST
+@@ -457,15 +457,7 @@
+ GCC_VER_SUFFIX:=-$(GCC_VER)
+ endif
+
+-# Attempt to use a full compiler name, to make
+-# distcc builds work nicely.
+-LMACH := $(shell gcc -dumpmachine)-
+-ifeq ($(LMACH),-)
+ LMACH :=
+-endif
+-ifeq ($(shell which $(LMACH)gcc$(GCC_VER_SUFFIX) > /dev/null 2> /dev/null && echo "Yes"),)
+-LMACH :=
+-endif
+
+ ifneq ($(FORCE_CC),)
+ GCC := $(FORCE_CC)
+@@ -765,7 +757,6 @@
+ FULLDEBUG=YesPlease
+ DEBUG=YesPlease
+ NO_OPTIMIZE=YesPlease
+- COVERAGE=YesPlease
+ endif
+
+ # Debug-Lite
+@@ -773,7 +764,6 @@
+ ifneq (,$(filter debug-lite,$(MAKECMDGOALS)))
+ DEBUG=YesPlease
+ NO_OPTIMIZE=YesPlease
+- COVERAGE=YesPlease
+ endif
+
+ # Profile
+@@ -781,12 +771,10 @@
+ ifneq (,$(filter profile,$(MAKECMDGOALS)))
+ FULLDEBUG=YesPlease
+ DEBUG=YesPlease
+- COVERAGE=YesPlease
+ endif
+
+ # Unit tests
+ ifneq (,$(filter catch2-tests,$(MAKECMDGOALS)))
+- COVERAGE=YesPlease
+ endif
+
+ ifdef HURRY
+@@ -938,7 +926,7 @@
+ INSTALL_FONTS += "$(PROPORTIONAL_FONT)"
+ endif
+ else
+- SYS_PROPORTIONAL_FONT = $(shell util/find_font "$(OUR_PROPORTIONAL_FONT)")
++ SYS_PROPORTIONAL_FONT = /usr/share/fonts/dejavu/DejaVuSans.ttf
+ ifneq (,$(SYS_PROPORTIONAL_FONT))
+ ifeq (,$(COPY_FONTS))
+ DEFINES += -DPROPORTIONAL_FONT=\"$(SYS_PROPORTIONAL_FONT)\"
+@@ -958,7 +946,7 @@
+ INSTALL_FONTS += "$(MONOSPACED_FONT)"
+ endif
+ else
+- SYS_MONOSPACED_FONT = $(shell util/find_font "$(OUR_MONOSPACED_FONT)")
++ SYS_MONOSPACED_FONT = /usr/share/fonts/dejavu/DejaVuSansMono.ttf
+ ifneq (,$(SYS_MONOSPACED_FONT))
+ ifeq (,$(COPY_FONTS))
+ DEFINES += -DMONOSPACED_FONT=\"$(SYS_MONOSPACED_FONT)\"
+@@ -1187,9 +1175,8 @@
+
+ LANGUAGES = $(filter-out en, $(notdir $(wildcard dat/descript/??)))
+ SRC_PKG_BASE := stone_soup
+-SRC_VERSION := $(shell git describe --tags $(MERGE_BASE) 2>/dev/null || cat util/release_ver)
++SRC_VERSION := $(shell cat util/release_ver)
+ MAJOR_VERSION = $(shell echo "$(SRC_VERSION)"|$(SED) -r 's/-.*//;s/^([^.]+\.[^.]+).*/\1/')
+-RECENT_TAG := $(shell git describe --abbrev=0 --tags $(MERGE_BASE))
+ WINARCH := $(shell $(GXX) -dumpmachine | grep -q x64_64 && echo win64 || echo win32)
+
+ export SRC_VERSION
+@@ -1523,7 +1510,7 @@
+ endif
+ endif
+
+-install: all install-data
++install: install-data
+ [ -d $(prefix_fp)/$(bin_prefix) ] || mkdir -p $(prefix_fp)/$(bin_prefix)
+ $(COPY) $(GAME) $(prefix_fp)/$(bin_prefix)/
+ $(STRIP) $(prefix_fp)/$(bin_prefix)/$(GAME)
diff --git a/games-roguelike/stone-soup/files/make.patch b/games-roguelike/stone-soup/files/make.patch
index b43c9c41e8c8..e0d086520099 100644
--- a/games-roguelike/stone-soup/files/make.patch
+++ b/games-roguelike/stone-soup/files/make.patch
@@ -1,5 +1,5 @@
---- a/Makefile 2021-08-02 13:54:26.603900984 -0500
-+++ b/Makefile 2021-08-02 13:57:26.018910565 -0500
+--- a/Makefile 2022-05-22 11:25:51.733047395 -0500
++++ b/Makefile 2022-05-22 11:42:54.240102003 -0500
@@ -186,7 +186,7 @@
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
@@ -9,7 +9,7 @@
ARCH := $(HOST)
ifdef CROSSHOST
-@@ -457,15 +457,7 @@
+@@ -451,15 +451,7 @@
GCC_VER_SUFFIX:=-$(GCC_VER)
endif
@@ -25,7 +25,7 @@
ifneq ($(FORCE_CC),)
GCC := $(FORCE_CC)
-@@ -765,7 +757,6 @@
+@@ -759,7 +751,6 @@
FULLDEBUG=YesPlease
DEBUG=YesPlease
NO_OPTIMIZE=YesPlease
@@ -33,7 +33,7 @@
endif
# Debug-Lite
-@@ -773,7 +764,6 @@
+@@ -767,7 +758,6 @@
ifneq (,$(filter debug-lite,$(MAKECMDGOALS)))
DEBUG=YesPlease
NO_OPTIMIZE=YesPlease
@@ -41,7 +41,7 @@
endif
# Profile
-@@ -781,12 +771,10 @@
+@@ -775,12 +765,10 @@
ifneq (,$(filter profile,$(MAKECMDGOALS)))
FULLDEBUG=YesPlease
DEBUG=YesPlease
@@ -54,7 +54,7 @@
endif
ifdef HURRY
-@@ -938,7 +926,7 @@
+@@ -932,7 +920,7 @@
INSTALL_FONTS += "$(PROPORTIONAL_FONT)"
endif
else
@@ -63,7 +63,7 @@
ifneq (,$(SYS_PROPORTIONAL_FONT))
ifeq (,$(COPY_FONTS))
DEFINES += -DPROPORTIONAL_FONT=\"$(SYS_PROPORTIONAL_FONT)\"
-@@ -958,7 +946,7 @@
+@@ -952,7 +940,7 @@
INSTALL_FONTS += "$(MONOSPACED_FONT)"
endif
else
@@ -72,7 +72,22 @@
ifneq (,$(SYS_MONOSPACED_FONT))
ifeq (,$(COPY_FONTS))
DEFINES += -DMONOSPACED_FONT=\"$(SYS_MONOSPACED_FONT)\"
-@@ -1187,9 +1175,8 @@
+@@ -1092,14 +1080,8 @@
+
+ ifdef TILES_ANY
+ ifndef NO_OPTIMIZE
+- ifneq (,$(shell which advpng))
+- USE_ADVPNG = y
+- else
+- ifneq (,$(shell which pngcrush))
+ PNGCRUSH = pngcrush -q -m 113
+ PNGCRUSH_LABEL = PNGCRUSH
+- endif
+- endif
+ endif
+ endif
+
+@@ -1181,9 +1163,8 @@
LANGUAGES = $(filter-out en, $(notdir $(wildcard dat/descript/??)))
SRC_PKG_BASE := stone_soup
@@ -83,7 +98,7 @@
WINARCH := $(shell $(GXX) -dumpmachine | grep -q x64_64 && echo win64 || echo win32)
export SRC_VERSION
-@@ -1523,7 +1510,7 @@
+@@ -1511,7 +1492,7 @@
endif
endif
@@ -92,3 +107,13 @@
[ -d $(prefix_fp)/$(bin_prefix) ] || mkdir -p $(prefix_fp)/$(bin_prefix)
$(COPY) $(GAME) $(prefix_fp)/$(bin_prefix)/
$(STRIP) $(prefix_fp)/$(bin_prefix)/$(GAME)
+@@ -1747,9 +1728,6 @@
+
+ dat/tiles/%.png: $(RLTILES)/%.png
+ $(QUIET_PNGCRUSH)$(PNGCRUSH) $< $@
+-ifdef USE_ADVPNG
+- $(QUIET_ADVPNG)$(ADVPNG) $@
+-endif
+
+ clean-rltiles:
+ $(RM) $(DESTTILEFILES)
diff --git a/games-roguelike/stone-soup/metadata.xml b/games-roguelike/stone-soup/metadata.xml
index 3d2030e7ea4d..1893130c23a1 100644
--- a/games-roguelike/stone-soup/metadata.xml
+++ b/games-roguelike/stone-soup/metadata.xml
@@ -15,12 +15,14 @@
<remote-id type="sourceforge">crawl-ref</remote-id>
</upstream>
<use>
- <flag name="tiles">Enable for graphical (tiled) build.
- (can be enabled on top of ncurses)
+ <flag name="advpng">Use alternate png optimization.
</flag>
<flag name="ncurses">Enable for console (uses ncurses) based build.
(can be enabled on top of tiles)
</flag>
+ <flag name="tiles">Enable for graphical (tiled) build.
+ (can be enabled on top of ncurses)
+ </flag>
</use>
<longdescription lang="en">
Dungeon Crawl Stone Soup is a free roguelike game of exploration
diff --git a/games-roguelike/stone-soup/stone-soup-0.25.1-r102.ebuild b/games-roguelike/stone-soup/stone-soup-0.25.1-r102.ebuild
index c78e6a378ad4..caf09a0a1313 100644
--- a/games-roguelike/stone-soup/stone-soup-0.25.1-r102.ebuild
+++ b/games-roguelike/stone-soup/stone-soup-0.25.1-r102.ebuild
@@ -63,7 +63,7 @@ DEPEND="${RDEPEND}
S=${WORKDIR}/${MY_P}/source
PATCHES=(
- "${FILESDIR}"/make.patch
+ "${FILESDIR}"/make-no-png-dep-fix.patch
"${FILESDIR}"/rltiles-make.patch
)
diff --git a/games-roguelike/stone-soup/stone-soup-0.25.1-r103.ebuild b/games-roguelike/stone-soup/stone-soup-0.25.1-r103.ebuild
new file mode 100644
index 000000000000..67a30f696915
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.25.1-r103.ebuild
@@ -0,0 +1,203 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..3} )
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+VIRTUALX_REQUIRED="manual"
+inherit desktop python-any-r1 lua-single xdg-utils toolchain-funcs
+
+MY_P="stone_soup-${PV}"
+DESCRIPTION="Role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="https://crawl.develz.org"
+SLOT="0.25"
+SRC_URI="
+ https://github.com/crawl/crawl/releases/download/${PV}/${PN/-/_}-${PV}.zip
+ https://dev.gentoo.org/~stasibear/distfiles/${PN}.png -> ${PN}-${SLOT}.png
+ https://dev.gentoo.org/~stasibear/distfiles/${PN}.svg -> ${PN}-${SLOT}.svg
+"
+
+# 3-clause BSD: mt19937ar.cc, MSVC/stdint.h
+# 2-clause BSD: all contributions by Steve Noonan and Jesse Luehrs
+# Public Domain|CC0: most of tiles
+# MIT: json.cc/json.h, some .js files in webserver/static/scripts/contrib/
+LICENSE="GPL-2 BSD BSD-2 public-domain CC0-1.0 MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE="advpng debug ncurses sound test +tiles"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ ${LUA_DEPS}
+ dev-db/sqlite:3
+ sys-libs/zlib
+ !ncurses? ( !tiles? ( sys-libs/ncurses:0 ) )
+ ncurses? ( sys-libs/ncurses:0 )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ sound? (
+ media-libs/libsdl2[X,opengl,sound,video]
+ media-libs/sdl2-mixer
+ )
+ !sound? ( media-libs/libsdl2[X,opengl,video] )
+ media-libs/sdl2-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ test? ( dev-cpp/catch:0 )
+ tiles? (
+ sys-libs/ncurses:0
+ )
+ "
+BDEPEND="
+ app-arch/unzip
+ dev-lang/perl
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ sys-devel/flex
+ tiles? (
+ advpng? (
+ app-arch/advancecomp
+ )
+ !advpng? (
+ media-gfx/pngcrush
+ )
+ )
+ virtual/pkgconfig
+ virtual/yacc
+ "
+
+S=${WORKDIR}/${MY_P}/source
+PATCHES=(
+ "${FILESDIR}"/make.patch
+ "${FILESDIR}"/rltiles-make.patch
+)
+
+python_check_deps() {
+ has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+
+ python-any-r1_pkg_setup
+
+ if use !ncurses && use !tiles ; then
+ ewarn "Neither ncurses nor tiles frontend"
+ ewarn "selected, choosing ncurses only."
+ ewarn "Note that you can also enable both."
+ fi
+
+ if use sound && use !tiles ; then
+ ewarn "Sound support is only available with tiles."
+ fi
+}
+
+src_prepare() {
+ default
+ python_fix_shebang "${S}/util/species-gen.py"
+
+ if use advpng; then
+ eapply "${FILESDIR}/make-advpng.patch"
+ fi
+
+ sed -i -e "s/GAME = crawl$/GAME = crawl-${SLOT}/" "${S}/Makefile" \
+ || die "Couldn't append slot to executable name"
+
+ # Replace bundled catch2 package with system implementation
+ # https://bugs.gentoo.org/829950
+ if use test; then
+ cp /usr/include/catch2/catch.hpp "${S}/catch2-tests" || die "Couldn't substitute system catch2"
+ fi
+}
+
+src_compile() {
+
+ # Insurance that we're not using bundled lib sources
+ rm -rf contrib || die "Couldn't delete contrib directory"
+
+ myemakeargs=(
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ BUILD_LUA=
+ AR="$(tc-getAR)"
+ CFOPTIMIZE=''
+ CFOTHERS="${CXXFLAGS}"
+ CONTRIBS=
+ DATADIR="/usr/share/${PN}-${SLOT}"
+ FORCE_CC="$(tc-getCC)"
+ FORCE_CXX="$(tc-getCXX)"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ RANLIB="$(tc-getRANLIB)"
+ SAVEDIR="~/.crawl-${SLOT}"
+ SOUND=$(usex sound "y" "")
+ STRIP=touch
+ USE_LUAJIT=
+ V=1
+ prefix="/usr"
+ )
+
+ if use ncurses || (use !ncurses && use !tiles) ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv "crawl-${SLOT}" "${WORKDIR}"/crawl-ncurses-${SLOT} || die ;}
+ fi
+
+ if use tiles ; then
+ emake "${myemakeargs[@]}" clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+}
+
+src_test() {
+ emake "${myemakeargs[@]}" \
+ $(usex tiles "TILES=y" "") \
+ catch2-tests
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" \
+ $(usex tiles "TILES=y" "") \
+ DESTDIR="${D}" \
+ prefix_fp="" \
+ bin_prefix="${D}/usr/bin" \
+ install
+
+ [[ -e "${WORKDIR}/crawl-ncurses-${SLOT}" ]] && dobin "${WORKDIR}/crawl-ncurses-${SLOT}"
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}/usr/share/${PN}-${SLOT}"/docs/license
+
+ mv "${WORKDIR}/${MY_P}"/docs/crawl.6 "${WORKDIR}/${MY_P}/docs/crawl-${SLOT}.6" \
+ || die "Couldn't append slot to man page name"
+ doman "${WORKDIR}/${MY_P}/docs/crawl-${SLOT}.6"
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}-${SLOT}.png
+ doicon -s scalable "${DISTDIR}"/${PN}-${SLOT}.svg
+ make_desktop_entry "crawl-${SLOT}" "crawl-${SLOT}" "crawl-${SLOT}"
+ fi
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+
+ elog "crawl is a slotted install that supports having"
+ elog "multiple versions installed. The binary has the"
+ elog "slot appended, e.g. 'crawl-"${SLOT}"'."
+
+ if use tiles && use ncurses ; then
+ elog
+ elog "Since you have enabled both tiles and ncurses frontends"
+ elog "the ncurses binary is called 'crawl-ncurses-"${SLOT}"' and the"
+ elog "tiles binary is called 'crawl-"${SLOT}"'."
+ fi
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+}
diff --git a/games-roguelike/stone-soup/stone-soup-0.26.1-r1.ebuild b/games-roguelike/stone-soup/stone-soup-0.26.1-r1.ebuild
index 5d766d8353bb..21a11669794b 100644
--- a/games-roguelike/stone-soup/stone-soup-0.26.1-r1.ebuild
+++ b/games-roguelike/stone-soup/stone-soup-0.26.1-r1.ebuild
@@ -63,7 +63,7 @@ DEPEND="${RDEPEND}
S=${WORKDIR}/${MY_P}/source
PATCHES=(
- "${FILESDIR}"/make.patch
+ "${FILESDIR}"/make-no-png-dep-fix.patch
"${FILESDIR}"/rltiles-make.patch
)
diff --git a/games-roguelike/stone-soup/stone-soup-0.26.1-r2.ebuild b/games-roguelike/stone-soup/stone-soup-0.26.1-r2.ebuild
new file mode 100644
index 000000000000..0d4c15a1cafe
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.26.1-r2.ebuild
@@ -0,0 +1,207 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..3} )
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+VIRTUALX_REQUIRED="manual"
+inherit desktop python-any-r1 lua-single xdg-utils toolchain-funcs
+
+MY_P="stone_soup-${PV}"
+DESCRIPTION="Role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="https://crawl.develz.org"
+SLOT="0.26"
+SRC_URI="
+ https://github.com/crawl/crawl/releases/download/${PV}/${PN/-/_}-${PV}.zip
+ https://dev.gentoo.org/~stasibear/distfiles/${PN}.png -> ${PN}-${SLOT}.png
+ https://dev.gentoo.org/~stasibear/distfiles/${PN}.svg -> ${PN}-${SLOT}.svg
+"
+
+# 3-clause BSD: mt19937ar.cc, MSVC/stdint.h
+# 2-clause BSD: all contributions by Steve Noonan and Jesse Luehrs
+# Public Domain|CC0: most of tiles
+# MIT: json.cc/json.h, some .js files in webserver/static/scripts/contrib/
+LICENSE="GPL-2 BSD BSD-2 public-domain CC0-1.0 MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE="advpng debug ncurses sound test +tiles"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ ${LUA_DEPS}
+ dev-db/sqlite:3
+ sys-libs/zlib
+ !ncurses? ( !tiles? ( sys-libs/ncurses:0 ) )
+ ncurses? ( sys-libs/ncurses:0 )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ sound? (
+ media-libs/libsdl2[X,opengl,sound,video]
+ media-libs/sdl2-mixer
+ )
+ !sound? ( media-libs/libsdl2[X,opengl,video] )
+ media-libs/sdl2-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ test? ( dev-cpp/catch:0 )
+ tiles? (
+ sys-libs/ncurses:0
+ )
+ "
+BDEPEND="
+ app-arch/unzip
+ dev-lang/perl
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ sys-devel/flex
+ tiles? (
+ advpng? (
+ app-arch/advancecomp
+ )
+ !advpng? (
+ media-gfx/pngcrush
+ )
+ )
+ virtual/pkgconfig
+ virtual/yacc
+ "
+
+S=${WORKDIR}/${MY_P}/source
+PATCHES=(
+ "${FILESDIR}"/make.patch
+ "${FILESDIR}"/rltiles-make.patch
+)
+
+python_check_deps() {
+ has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+
+ python-any-r1_pkg_setup
+
+ if use !ncurses && use !tiles ; then
+ ewarn "Neither ncurses nor tiles frontend"
+ ewarn "selected, choosing ncurses only."
+ ewarn "Note that you can also enable both."
+ fi
+
+ if use sound && use !tiles ; then
+ ewarn "Sound support is only available with tiles."
+ fi
+}
+
+src_prepare() {
+ default
+ python_fix_shebang "${S}/util/species-gen.py"
+
+ if use advpng; then
+ eapply "${FILESDIR}/make-advpng.patch"
+ fi
+
+ sed -i -e "s/GAME = crawl$/GAME = crawl-${SLOT}/" "${S}/Makefile" \
+ || die "Couldn't append slot to executable name"
+
+ # Replace bundled catch2 package with system implementation
+ # https://bugs.gentoo.org/829950
+ if use test; then
+ cp /usr/include/catch2/catch.hpp "${S}/catch2-tests" || die "Couldn't substitute system catch2"
+ fi
+}
+
+src_compile() {
+
+ # Insurance that we're not using bundled lib sources
+ rm -rf contrib || die "Couldn't delete contrib directory"
+
+ myemakeargs=(
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ BUILD_LUA=
+ AR="$(tc-getAR)"
+ CFOPTIMIZE=''
+ CFOTHERS="${CXXFLAGS}"
+ CONTRIBS=
+ DATADIR="/usr/share/${PN}-${SLOT}"
+ FORCE_CC="$(tc-getCC)"
+ FORCE_CXX="$(tc-getCXX)"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ RANLIB="$(tc-getRANLIB)"
+ SAVEDIR="~/.crawl-${SLOT}"
+ SOUND=$(usex sound "y" "")
+ STRIP=touch
+ USE_LUAJIT=
+ V=1
+ prefix="/usr"
+ )
+
+ if use ncurses || (use !ncurses && use !tiles) ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv "crawl-${SLOT}" "${WORKDIR}"/crawl-ncurses-${SLOT} || die ;}
+ fi
+
+ if use tiles ; then
+ emake "${myemakeargs[@]}" clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+}
+
+src_test() {
+ emake "${myemakeargs[@]}" \
+ $(usex tiles "TILES=y" "") \
+ catch2-tests
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" \
+ $(usex tiles "TILES=y" "") \
+ DESTDIR="${D}" \
+ prefix_fp="" \
+ bin_prefix="${D}/usr/bin" \
+ install
+
+ [[ -e "${WORKDIR}/crawl-ncurses-${SLOT}" ]] && dobin "${WORKDIR}/crawl-ncurses-${SLOT}"
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}/usr/share/${PN}-${SLOT}"/docs/license
+
+ mv "${WORKDIR}/${MY_P}"/docs/crawl.6 "${WORKDIR}/${MY_P}/docs/crawl-${SLOT}.6" \
+ || die "Couldn't append slot to man page name"
+ doman "${WORKDIR}/${MY_P}/docs/crawl-${SLOT}.6"
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}-${SLOT}.png
+ doicon -s scalable "${DISTDIR}"/${PN}-${SLOT}.svg
+ make_desktop_entry "crawl-${SLOT}" "crawl-${SLOT}" "crawl-${SLOT}"
+ fi
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+
+ elog "Since version 0.25.1-r101, crawl is a slotted install"
+ elog "that supports having multiple versions installed. The"
+ elog "binary has the slot appended, e.g. 'crawl-"${SLOT}"'."
+ elog
+ elog "The local save directory also has the slot appended."
+ elog "If you have saved games from 0.25 but before 0.25.1-r101"
+ elog "you can 'mv ~/.crawl ~/.crawl-0.25' to fix it"
+
+ if use tiles && use ncurses ; then
+ elog
+ elog "Since you have enabled both tiles and ncurses frontends"
+ elog "the ncurses binary is called 'crawl-ncurses-"${SLOT}"' and the"
+ elog "tiles binary is called 'crawl-"${SLOT}"'."
+ fi
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+}
diff --git a/games-roguelike/stone-soup/stone-soup-0.27.1-r1.ebuild b/games-roguelike/stone-soup/stone-soup-0.27.1-r1.ebuild
new file mode 100644
index 000000000000..b4a89576bda6
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.27.1-r1.ebuild
@@ -0,0 +1,203 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..3} )
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+VIRTUALX_REQUIRED="manual"
+inherit desktop python-any-r1 lua-single xdg-utils toolchain-funcs
+
+MY_P="stone_soup-${PV}"
+DESCRIPTION="Role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="https://crawl.develz.org"
+SLOT="0.27"
+SRC_URI="
+ https://github.com/crawl/crawl/releases/download/${PV}/${PN/-/_}-${PV}.zip
+ https://dev.gentoo.org/~stasibear/distfiles/${PN}.png -> ${PN}-${SLOT}.png
+ https://dev.gentoo.org/~stasibear/distfiles/${PN}.svg -> ${PN}-${SLOT}.svg
+"
+
+# 3-clause BSD: mt19937ar.cc, MSVC/stdint.h
+# 2-clause BSD: all contributions by Steve Noonan and Jesse Luehrs
+# Public Domain|CC0: most of tiles
+# MIT: json.cc/json.h, some .js files in webserver/static/scripts/contrib/
+LICENSE="GPL-2 BSD BSD-2 public-domain CC0-1.0 MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE="advpng debug ncurses sound test +tiles"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ ${LUA_DEPS}
+ dev-db/sqlite:3
+ sys-libs/zlib
+ !ncurses? ( !tiles? ( sys-libs/ncurses:0 ) )
+ ncurses? ( sys-libs/ncurses:0 )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ sound? (
+ media-libs/libsdl2[X,opengl,sound,video]
+ media-libs/sdl2-mixer
+ )
+ !sound? ( media-libs/libsdl2[X,opengl,video] )
+ media-libs/sdl2-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ test? ( dev-cpp/catch:0 )
+ tiles? (
+ sys-libs/ncurses:0
+ )
+ "
+BDEPEND="
+ app-arch/unzip
+ dev-lang/perl
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ sys-devel/flex
+ tiles? (
+ advpng? (
+ app-arch/advancecomp
+ )
+ !advpng? (
+ media-gfx/pngcrush
+ )
+ )
+ virtual/pkgconfig
+ virtual/yacc
+ "
+
+S=${WORKDIR}/${MY_P}/source
+PATCHES=(
+ "${FILESDIR}"/make.patch
+ "${FILESDIR}"/rltiles-make.patch
+)
+
+python_check_deps() {
+ has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+
+ python-any-r1_pkg_setup
+
+ if use !ncurses && use !tiles ; then
+ ewarn "Neither ncurses nor tiles frontend"
+ ewarn "selected, choosing ncurses only."
+ ewarn "Note that you can also enable both."
+ fi
+
+ if use sound && use !tiles ; then
+ ewarn "Sound support is only available with tiles."
+ fi
+}
+
+src_prepare() {
+ default
+ python_fix_shebang "${S}/util/species-gen.py"
+
+ if use advpng; then
+ eapply "${FILESDIR}/make-advpng.patch"
+ fi
+
+ sed -i -e "s/GAME = crawl$/GAME = crawl-${SLOT}/" "${S}/Makefile" \
+ || die "Couldn't append slot to executable name"
+
+ # Replace bundled catch2 package with system implementation
+ # https://bugs.gentoo.org/829950
+ if use test; then
+ cp /usr/include/catch2/catch.hpp "${S}/catch2-tests" || die "Couldn't substitute system catch2"
+ fi
+}
+
+src_compile() {
+
+ # Insurance that we're not using bundled lib sources
+ rm -rf contrib || die "Couldn't delete contrib directory"
+
+ myemakeargs=(
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ BUILD_LUA=
+ AR="$(tc-getAR)"
+ CFOPTIMIZE=''
+ CFOTHERS="${CXXFLAGS}"
+ CONTRIBS=
+ DATADIR="/usr/share/${PN}-${SLOT}"
+ FORCE_CC="$(tc-getCC)"
+ FORCE_CXX="$(tc-getCXX)"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ RANLIB="$(tc-getRANLIB)"
+ SAVEDIR="~/.crawl-${SLOT}"
+ SOUND=$(usex sound "y" "")
+ STRIP=touch
+ USE_LUAJIT=
+ V=1
+ prefix="/usr"
+ )
+
+ if use ncurses || (use !ncurses && use !tiles) ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv "crawl-${SLOT}" "${WORKDIR}"/crawl-ncurses-${SLOT} || die ;}
+ fi
+
+ if use tiles ; then
+ emake "${myemakeargs[@]}" clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+}
+
+src_test() {
+ emake "${myemakeargs[@]}" \
+ $(usex tiles "TILES=y" "") \
+ catch2-tests
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" \
+ $(usex tiles "TILES=y" "") \
+ DESTDIR="${D}" \
+ prefix_fp="" \
+ bin_prefix="${D}/usr/bin" \
+ install
+
+ [[ -e "${WORKDIR}/crawl-ncurses-${SLOT}" ]] && dobin "${WORKDIR}/crawl-ncurses-${SLOT}"
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}/usr/share/${PN}-${SLOT}"/docs/license
+
+ mv "${WORKDIR}/${MY_P}"/docs/crawl.6 "${WORKDIR}/${MY_P}/docs/crawl-${SLOT}.6" \
+ || die "Couldn't append slot to man page name"
+ doman "${WORKDIR}/${MY_P}/docs/crawl-${SLOT}.6"
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}-${SLOT}.png
+ doicon -s scalable "${DISTDIR}"/${PN}-${SLOT}.svg
+ make_desktop_entry "crawl-${SLOT}" "crawl-${SLOT}" "crawl-${SLOT}"
+ fi
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+
+ elog "crawl is a slotted install that supports having"
+ elog "multiple versions installed. The binary has the"
+ elog "slot appended, e.g. 'crawl-"${SLOT}"'."
+
+ if use tiles && use ncurses ; then
+ elog
+ elog "Since you have enabled both tiles and ncurses frontends"
+ elog "the ncurses binary is called 'crawl-ncurses-"${SLOT}"' and the"
+ elog "tiles binary is called 'crawl-"${SLOT}"'."
+ fi
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+}
diff --git a/games-roguelike/stone-soup/stone-soup-0.27.1.ebuild b/games-roguelike/stone-soup/stone-soup-0.27.1.ebuild
index 5edf90bf5aa1..8c7c910c42ba 100644
--- a/games-roguelike/stone-soup/stone-soup-0.27.1.ebuild
+++ b/games-roguelike/stone-soup/stone-soup-0.27.1.ebuild
@@ -63,7 +63,7 @@ DEPEND="${RDEPEND}
S=${WORKDIR}/${MY_P}/source
PATCHES=(
- "${FILESDIR}"/make.patch
+ "${FILESDIR}"/make-no-png-dep-fix.patch
"${FILESDIR}"/rltiles-make.patch
)
diff --git a/games-roguelike/stone-soup/stone-soup-0.28.0-r1.ebuild b/games-roguelike/stone-soup/stone-soup-0.28.0-r1.ebuild
new file mode 100644
index 000000000000..c75e955a01e0
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.28.0-r1.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..3} )
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+VIRTUALX_REQUIRED="manual"
+inherit desktop python-any-r1 lua-single xdg-utils toolchain-funcs
+
+DESCRIPTION="Role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="https://crawl.develz.org"
+SLOT="0.28"
+
+# Leave empty string if not a _pre release
+COMMITSHA=""
+if [ -z "${COMMITSHA}" ]; then
+ # This is a proper release
+ SRC_URI="
+ https://github.com/crawl/crawl/releases/download/${PV}/${PN/-/_}-${PV}.zip
+ https://dev.gentoo.org/~stasibear/distfiles/${PN}.png -> ${PN}-${SLOT}.png
+ https://dev.gentoo.org/~stasibear/distfiles/${PN}.svg -> ${PN}-${SLOT}.svg
+ "
+ MY_P="stone_soup-${PV}"
+else
+ # This is a _pre release
+ SRC_URI="
+ https://github.com/crawl/crawl/archive/${COMMITSHA}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~stasibear/distfiles/${PN}.png -> ${PN}-${SLOT}.png
+ https://dev.gentoo.org/~stasibear/distfiles/${PN}.svg -> ${PN}-${SLOT}.svg
+ "
+ MY_P="crawl-${COMMITSHA}/crawl-ref"
+fi
+
+# 3-clause BSD: mt19937ar.cc, MSVC/stdint.h
+# 2-clause BSD: all contributions by Steve Noonan and Jesse Luehrs
+# Public Domain|CC0: most of tiles
+# MIT: json.cc/json.h, some .js files in webserver/static/scripts/contrib/
+LICENSE="GPL-2 BSD BSD-2 public-domain CC0-1.0 MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE="advpng debug ncurses sound test +tiles"
+RESTRICT="!test? ( test )"
+
+S=${WORKDIR}/${MY_P}/source
+RDEPEND="
+ ${LUA_DEPS}
+ dev-db/sqlite:3
+ sys-libs/zlib
+ !ncurses? ( !tiles? ( sys-libs/ncurses:0 ) )
+ ncurses? ( sys-libs/ncurses:0 )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ sound? (
+ media-libs/libsdl2[X,opengl,sound,video]
+ media-libs/sdl2-mixer
+ )
+ !sound? ( media-libs/libsdl2[X,opengl,video] )
+ media-libs/sdl2-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ test? ( dev-cpp/catch:0 )
+ tiles? (
+ sys-libs/ncurses:0
+ )
+ "
+BDEPEND="
+ app-arch/unzip
+ dev-lang/perl
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ sys-devel/flex
+ tiles? (
+ advpng? (
+ app-arch/advancecomp
+ )
+ !advpng? (
+ media-gfx/pngcrush
+ )
+ )
+ virtual/pkgconfig
+ virtual/yacc
+ "
+
+PATCHES=(
+ "${FILESDIR}"/make.patch
+ "${FILESDIR}"/rltiles-make.patch
+)
+
+python_check_deps() {
+ has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+
+ python-any-r1_pkg_setup
+
+ if use !ncurses && use !tiles ; then
+ ewarn "Neither ncurses nor tiles frontend"
+ ewarn "selected, choosing ncurses only."
+ ewarn "Note that you can also enable both."
+ fi
+
+ if use sound && use !tiles ; then
+ ewarn "Sound support is only available with tiles."
+ fi
+}
+
+src_prepare() {
+ default
+ python_fix_shebang "${S}/util/species-gen.py"
+
+ if use advpng; then
+ eapply "${FILESDIR}/make-advpng.patch"
+ fi
+
+ sed -i -e "s/GAME = crawl$/GAME = crawl-${SLOT}/" "${S}/Makefile" \
+ || die "Couldn't append slot to executable name"
+
+ # File required for a _pre build
+ if ! [ -f "${S}/util/release_ver" ]; then
+ echo "${SLOT}" >"${S}/util/release_ver" || die "Couldn't write release_ver"
+ fi
+
+ # Replace bundled catch2 package with system implementation
+ # https://bugs.gentoo.org/829950
+ if use test; then
+ cp /usr/include/catch2/catch.hpp "${S}/catch2-tests" || die "Couldn't substitute system catch2"
+ fi
+}
+
+src_compile() {
+
+ # Insurance that we're not using bundled lib sources
+ rm -rf contrib || die "Couldn't delete contrib directory"
+
+ myemakeargs=(
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ BUILD_LUA=
+ AR="$(tc-getAR)"
+ CFOPTIMIZE=''
+ CFOTHERS="${CXXFLAGS}"
+ CONTRIBS=
+ DATADIR="/usr/share/${PN}-${SLOT}"
+ FORCE_CC="$(tc-getCC)"
+ FORCE_CXX="$(tc-getCXX)"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ RANLIB="$(tc-getRANLIB)"
+ SAVEDIR="~/.crawl-${SLOT}"
+ SOUND=$(usex sound "y" "")
+ STRIP=touch
+ USE_LUAJIT=
+ V=1
+ prefix="/usr"
+ )
+
+ if use ncurses || (use !ncurses && use !tiles) ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv "crawl-${SLOT}" "${WORKDIR}"/crawl-ncurses-${SLOT} || die ;}
+ fi
+
+ if use tiles ; then
+ emake "${myemakeargs[@]}" clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+}
+
+src_test() {
+ emake "${myemakeargs[@]}" \
+ $(usex tiles "TILES=y" "") \
+ catch2-tests
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" \
+ $(usex tiles "TILES=y" "") \
+ DESTDIR="${D}" \
+ prefix_fp="" \
+ bin_prefix="${D}/usr/bin" \
+ install
+
+ [[ -e "${WORKDIR}/crawl-ncurses-${SLOT}" ]] && dobin "${WORKDIR}/crawl-ncurses-${SLOT}"
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}/usr/share/${PN}-${SLOT}"/docs/license
+
+ mv "${WORKDIR}/${MY_P}"/docs/crawl.6 "${WORKDIR}/${MY_P}/docs/crawl-${SLOT}.6" \
+ || die "Couldn't append slot to man page name"
+ doman "${WORKDIR}/${MY_P}/docs/crawl-${SLOT}.6"
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}-${SLOT}.png
+ doicon -s scalable "${DISTDIR}"/${PN}-${SLOT}.svg
+ make_desktop_entry "crawl-${SLOT}" "crawl-${SLOT}" "crawl-${SLOT}"
+ fi
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+
+ elog "crawl is a slotted install that supports having"
+ elog "multiple versions installed. The binary has the"
+ elog "slot appended, e.g. 'crawl-"${SLOT}"'."
+
+ if use tiles && use ncurses ; then
+ elog
+ elog "Since you have enabled both tiles and ncurses frontends"
+ elog "the ncurses binary is called 'crawl-ncurses-"${SLOT}"' and the"
+ elog "tiles binary is called 'crawl-"${SLOT}"'."
+ fi
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+}
diff --git a/games-roguelike/stone-soup/stone-soup-0.28.0.ebuild b/games-roguelike/stone-soup/stone-soup-0.28.0.ebuild
index f02ffe30abd0..9922b64db97c 100644
--- a/games-roguelike/stone-soup/stone-soup-0.28.0.ebuild
+++ b/games-roguelike/stone-soup/stone-soup-0.28.0.ebuild
@@ -77,7 +77,7 @@ DEPEND="${RDEPEND}
"
PATCHES=(
- "${FILESDIR}"/make.patch
+ "${FILESDIR}"/make-no-png-dep-fix.patch
"${FILESDIR}"/rltiles-make.patch
)