summaryrefslogtreecommitdiff
path: root/games-roguelike/stone-soup
diff options
context:
space:
mode:
Diffstat (limited to 'games-roguelike/stone-soup')
-rw-r--r--games-roguelike/stone-soup/Manifest5
-rw-r--r--games-roguelike/stone-soup/files/make.patch94
-rw-r--r--games-roguelike/stone-soup/files/rltiles-make.patch58
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.25.1-r102.ebuild182
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.26.1-r1.ebuild186
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.27.0-r1.ebuild182
6 files changed, 707 insertions, 0 deletions
diff --git a/games-roguelike/stone-soup/Manifest b/games-roguelike/stone-soup/Manifest
index 44f928e34d04..a5a5844088f2 100644
--- a/games-roguelike/stone-soup/Manifest
+++ b/games-roguelike/stone-soup/Manifest
@@ -1,6 +1,8 @@
AUX fixed-font-path.patch 802 BLAKE2B 1c831b28b65b764bdab9e8522cbf80d8449907611c77cc820c5ffe0f18b37fbf01c083ab1554ade3933182546b992fc7e5bf3e8109191723b428009a05d24449 SHA512 3db5ca3c06a27ad26a4ba2961d429153983fa51412e301da2341da87eb54422d590b8e676b4e8a06c8cbf71230e3149e7fab217fc14558d1ff20a94094ce1e82
AUX gitless-1.patch 639 BLAKE2B 646abd41a65b5744618161bd2a66f3fb43c06e40bd64ae78fdadf01bf5669b07f470be5eb3afc4931889d91f2f7a782036d1f10e1812bd7cfe14fe88c3ef40bf SHA512 b46fc9531c06a1f51b23c35be5f9f751f96d72a66f40a3aef3ffa89e0c9af56bc08f4aa6cad237f208aa789ee8511fec7304135fbe1e271345599f9107c52212
+AUX make.patch 2728 BLAKE2B 94930ab98012754cc2760dbffc905173bafc0303d492e3f1180f7d4fcff1bd12aef3ea3f74c2ded37cb36c66cecd09003dc630ba8090605bffe52f7ae087c165 SHA512 7144caa5e4a4612c32efe5ccbee5763fa271f1d887218a42740a2b507babd67444f834e75cee645c03a0499c0135df118ede4a52e222ea05fac8b31846696bc4
AUX rltiles-ldflags-libs.patch 1373 BLAKE2B 5a5a48bdb6081bb81bd66993bed3a6cfed4951ca059b2bf7069ab512e30c855eb65abc9d552da4e3c15c5156924bf14adc852dbb46248aa9840b8f63d1d33652 SHA512 955b6784f7a2ffbccefff6648de2072391d535f998516f52a7b5681e41aeedb34c47ac6cb6d649519448c23ce7007f08f0b0c36ced976dac0f111f2dae204287
+AUX rltiles-make.patch 1704 BLAKE2B b740e8b305e9071a9b024589e4ef6cb4fd088d4424e35ab164f920ec0cf06b94a46b19ac7d223d5eac3ca92bb2565efea00731a556e429056041cddb5658988a SHA512 378bea1e53477c881b93f824e45231b13c34318e34cf1413325a642d2d4f7f16c654b00584bec552238e1e2ec6e8046b67ea7cbd5aa4cb6ecf9fb6a70d600dd9
DIST stone-soup-0.25.png 1351 BLAKE2B cc31abd59701aa6f0fb0bdcd90630ceebf7b3cb8b60f0e2817f8800c5bc4b3a5b9fef63c90a97b6248f306e7e3da0df3863a2195b8771863344d2443e7956d59 SHA512 4695204c8b936f7aac1ba15b02a6115a955fb2c56aa9a0b968ff007bc9a1a59b608110d60cce5625a9b92cd2c869bbea7e15433a53c1a338622809477a5846bc
DIST stone-soup-0.25.svg 68546 BLAKE2B 7c66286c9e8a3516e8483b3edb628a59fce29d8d248c3fd5b06e308782bbc651814f21ec958b30c36074a2576ced4bb10f291b5236da6f6e865ce1d7cefdf96d SHA512 dca555271faf704eb8ecdf5ee8a763df42cdeba94e9c163608c438cfc73c6fbf53416547050cad57f477ade191842e701785b65b7a9f18e27ceab05df8f2f75f
DIST stone-soup-0.26.png 1351 BLAKE2B cc31abd59701aa6f0fb0bdcd90630ceebf7b3cb8b60f0e2817f8800c5bc4b3a5b9fef63c90a97b6248f306e7e3da0df3863a2195b8771863344d2443e7956d59 SHA512 4695204c8b936f7aac1ba15b02a6115a955fb2c56aa9a0b968ff007bc9a1a59b608110d60cce5625a9b92cd2c869bbea7e15433a53c1a338622809477a5846bc
@@ -11,6 +13,9 @@ DIST stone_soup-0.25.1.zip 95477710 BLAKE2B 0b38a6c7cb7c4c87acccb861b5aae665cd2b
DIST stone_soup-0.26.1.zip 95585384 BLAKE2B 6d1cb99fc44e918cad4144608f259e67a26df444b93c8501590ff209e8856fd08c514d4c8c78cb0848d8e6127cdf4360b47d21ced5d919da982421934b46102d SHA512 637f1a07e9f35e18eda10c17dc28449364c56aee8456497e30552acb55608a9433cff8b64af877049c21cb2a42eb2fcad28f58a7e57a1d835eb8c252e580205d
DIST stone_soup-0.27.0.zip 96917949 BLAKE2B 1da7d54e4f3ec98514630eeb8c69c7dca02f96cdfe16974856406da0a057011f17a388669ec29844f3657cd4c7c4ef977f522578cbe0dec02ce497063c25ac83 SHA512 e3f79ce8837056c0a34847857b058e055ed23cc0987ab1d862b60739b8b7ec1e955746fa49c339f449603ce9d0707e64e564592b0798310c7c6bdc1a9edc3e70
EBUILD stone-soup-0.25.1-r101.ebuild 4906 BLAKE2B 27a656e08f7e4539c71e1c6bced442bd23a54efca2bfd287a369ea8b8cdb0b0b0275a13912ea1316aa62ad92551890cbcfe0e9e5f7acf58d0ca7ded3b69bec78 SHA512 20b3ab2f78bba3b5b344dac9bea7ba8c4e0cfa47a0cc6cf35a7e0afe49ebbbfd5cc18d568e160ac7a9bd3963961c170d6ee79dc342dd33735cc775121eaaa026
+EBUILD stone-soup-0.25.1-r102.ebuild 4571 BLAKE2B 60b2a36b69920ee4a8f010a88e7678704c46868e2ffdebe5298c04cc2ac831bf9f679e9b0804decbdfdd155eb4e2d7ec1e3d352431d5f5e1d2ce2a50dc1297f2 SHA512 9cc5370f27c7553153d90ded879f314a444cf84140fbefbfcc64a68675374f52141268c8b9bfa92ad26d5fcf52c9d9bf043593a4ad0ac53bd0ae89693a91f749
+EBUILD stone-soup-0.26.1-r1.ebuild 4784 BLAKE2B 221e15ac63a17f1155d3367b82192a546d3af70e0394e244b871d98a78337cbbf5196c1faa36ba0ccdc5068672df3d13ad7b467f4c629643d07fffb64335b98e SHA512 aa8a1b499c780fa6ab98871c6ed80bc10c884c505d7d06de42e1eeeba3a5b417e5e5dad9351cc803923582a064b8be50e44696b2c0d7ade7522b15cd3256c35e
EBUILD stone-soup-0.26.1.ebuild 4906 BLAKE2B 691892c10fd8fce1a232ebc9f25a1ab98faf737a634c9585dfbf50d62250ecf01eaaf82f4a479a2614fbbad6fcf2dffd24523c004289587791d4a1c021d3ff76 SHA512 a23c1ae7253c7bf585c9dbb64213a18b917c796c45971e84ca89187c972182cb0d6639cfb81f206d47b45feb52593ba07c99303aa06e5176298b470aac6c73a5
+EBUILD stone-soup-0.27.0-r1.ebuild 4571 BLAKE2B 9d1608138b00dec79b9b9afbaa732388d0e14cbcb3bbd74606beb216bee9c87e7753a6ec016c48f90603641d9679d3560e9e53c897dfee1c4774c06e6f61771b SHA512 e9bd1892bf735f273d0ed864d174c5c76420127555154359f08adb5b9a0ad9754947e8e537596c1ad0d03b1f81f2940a08b7a5a630904b47aaa62f1cdf05d48f
EBUILD stone-soup-0.27.0.ebuild 4908 BLAKE2B 405a3587ccd039bdcc652d630ae28de860ee3f26587c054dac91461bb0625d7198b6803af7bca1c14f4608b4213c26993773bf9b7416212bdb0094970b1f32fe SHA512 fa1dbc5258646c806f08df0ed8b4085127bb36aab54472b5b5f0e2df7de2d9fa28f5dcb25b20146e97a678dcdaac7aaf7933d88b91d6aa5bece661414f4f5f9d
MISC metadata.xml 1619 BLAKE2B 2977dbcb30328109cf2f2c75535175ce089c4ede9d9ce7e550ae715bb8624abffdcf2ba53cb6dc545112dbf1da10b0237a8bffa7719956763955ff81b31554f7 SHA512 711ef0ab70235f7ab3a447bc49508b3e8f53f2dd0e108b4874f6e5a916b3c373decece2d6e4a134971941261315819c31799fd318d0c7be103356ac8e5218137
diff --git a/games-roguelike/stone-soup/files/make.patch b/games-roguelike/stone-soup/files/make.patch
new file mode 100644
index 000000000000..b43c9c41e8c8
--- /dev/null
+++ b/games-roguelike/stone-soup/files/make.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/rltiles-make.patch b/games-roguelike/stone-soup/files/rltiles-make.patch
new file mode 100644
index 000000000000..9a43932c5989
--- /dev/null
+++ b/games-roguelike/stone-soup/files/rltiles-make.patch
@@ -0,0 +1,58 @@
+--- a/rltiles/Makefile 2021-08-02 14:03:40.106930544 -0500
++++ b/rltiles/Makefile 2021-08-02 14:03:51.145931133 -0500
+@@ -1,7 +1,7 @@
+ uname_S := $(shell uname -s)
+
+ ifneq (,$(findstring MINGW,$(uname_S)))
+-LDFLAGS += -lmingw32
++LIBS += -lmingw32
+ endif
+
+ # Note: since generation of tiles is done on the host, we don't care about
+@@ -29,7 +29,7 @@
+ endif
+
+ CFLAGS += $(PNG_INCLUDE)
+- LDFLAGS += $(PNG_LIB)
++ LIBS += $(PNG_LIB)
+
+ CFLAGS += -DUSE_TILE
+ endif
+@@ -39,26 +39,15 @@
+ endif
+
+ ifneq (,$(findstring MINGW,$(uname_S)))
+-LDFLAGS += -lgdi32 -lwinmm -lole32 -loleaut32 -limm32 -lshell32 -lversion -luuid
++LIBS += -lgdi32 -lwinmm -lole32 -loleaut32 -limm32 -lshell32 -lversion -luuid
+ endif
+ ifeq ($(uname_S),Darwin)
+-LDFLAGS += -framework AppKit -framework AudioUnit -framework CoreAudio -framework ForceFeedback -framework Carbon -framework IOKit -framework OpenGL
++LIBS += -framework AppKit -framework AudioUnit -framework CoreAudio -framework ForceFeedback -framework Carbon -framework IOKit -framework OpenGL
+ endif
+ ifeq ($(uname_S),Linux)
+-LDFLAGS += -ldl -lpthread
++LIBS += -ldl -lpthread
+ 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 > /dev/null 2> /dev/null && echo "Yes"),)
+-LMACH :=
+-endif
+-HOSTCXX ?= $(LMACH)g++
+-
+ DELETE = rm -f
+
+ TOOLDIR := tool
+@@ -134,6 +123,6 @@
+ $(QUIET_HOSTCXX)$(HOSTCXX) $(CFLAGS) -MMD -c $< -o $@
+
+ $(TILEGEN): $(OBJECTS)
+- $(QUIET_HOSTLINK)$(HOSTCXX) $(CFLAGS) $(OBJECTS) -o $@ $(LDFLAGS)
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CFLAGS) $(OBJECTS) -o $@ $(LDFLAGS) $(LIBS)
+
+ .PHONY: all clean distclean
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
new file mode 100644
index 000000000000..6b3620cceb23
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.25.1-r102.ebuild
@@ -0,0 +1,182 @@
+# Copyright 1999-2021 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} )
+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="debug ncurses sound +tiles"
+
+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}
+ app-arch/unzip
+ dev-lang/perl
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ sys-devel/flex
+ tiles? (
+ media-gfx/pngcrush
+ sys-libs/ncurses:0
+ )
+ 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"
+
+ sed -i -e "s/GAME = crawl$/GAME = crawl-${SLOT}/" "${S}/Makefile" \
+ || die "Couldn't append slot to executable name"
+}
+
+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 appened, 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
new file mode 100644
index 000000000000..71060b04b353
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.26.1-r1.ebuild
@@ -0,0 +1,186 @@
+# Copyright 1999-2021 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} )
+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="debug ncurses sound +tiles"
+
+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}
+ app-arch/unzip
+ dev-lang/perl
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ sys-devel/flex
+ tiles? (
+ media-gfx/pngcrush
+ sys-libs/ncurses:0
+ )
+ 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"
+
+ sed -i -e "s/GAME = crawl$/GAME = crawl-${SLOT}/" "${S}/Makefile" \
+ || die "Couldn't append slot to executable name"
+}
+
+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 appened, 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.0-r1.ebuild b/games-roguelike/stone-soup/stone-soup-0.27.0-r1.ebuild
new file mode 100644
index 000000000000..8c3f2a14c8cf
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.27.0-r1.ebuild
@@ -0,0 +1,182 @@
+# Copyright 1999-2021 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} )
+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="debug ncurses sound +tiles"
+
+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}
+ app-arch/unzip
+ dev-lang/perl
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ sys-devel/flex
+ tiles? (
+ media-gfx/pngcrush
+ sys-libs/ncurses:0
+ )
+ 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"
+
+ sed -i -e "s/GAME = crawl$/GAME = crawl-${SLOT}/" "${S}/Makefile" \
+ || die "Couldn't append slot to executable name"
+}
+
+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 appened, 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
+}