summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /games-roguelike
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'games-roguelike')
-rw-r--r--games-roguelike/FTL/FTL-1.5.13.ebuild66
-rw-r--r--games-roguelike/FTL/Manifest1
-rw-r--r--games-roguelike/FTL/metadata.xml15
-rw-r--r--games-roguelike/adom/Manifest1
-rw-r--r--games-roguelike/adom/adom-1.1.1-r1.ebuild37
-rw-r--r--games-roguelike/adom/metadata.xml5
-rw-r--r--games-roguelike/angband/Manifest2
-rw-r--r--games-roguelike/angband/angband-3.4.1.ebuild100
-rw-r--r--games-roguelike/angband/angband-3.5.1.ebuild98
-rw-r--r--games-roguelike/angband/metadata.xml8
-rw-r--r--games-roguelike/crossfire-client/Manifest2
-rw-r--r--games-roguelike/crossfire-client/crossfire-client-1.70.0.ebuild80
-rw-r--r--games-roguelike/crossfire-client/crossfire-client-1.71.0.ebuild79
-rw-r--r--games-roguelike/crossfire-client/files/crossfire-client-1.70.0-gold.patch16
-rw-r--r--games-roguelike/crossfire-client/metadata.xml8
-rw-r--r--games-roguelike/dwarf-fortress/Manifest1
-rw-r--r--games-roguelike/dwarf-fortress/dwarf-fortress-0.40.24.ebuild93
-rw-r--r--games-roguelike/dwarf-fortress/files/Makefile32
-rw-r--r--games-roguelike/dwarf-fortress/files/dwarf-fortress24
-rw-r--r--games-roguelike/dwarf-fortress/metadata.xml15
-rw-r--r--games-roguelike/hengband/Manifest2
-rw-r--r--games-roguelike/hengband/files/hengband-1.6.2-added_faq.patch163
-rw-r--r--games-roguelike/hengband/files/hengband-1.6.2-ovflfix.patch11
-rw-r--r--games-roguelike/hengband/hengband-1.6.2-r1.ebuild63
-rw-r--r--games-roguelike/hengband/metadata.xml8
-rw-r--r--games-roguelike/mazesofmonad/Manifest1
-rw-r--r--games-roguelike/mazesofmonad/files/mazesofmonad-1.0.9-time-1.5.patch22
-rw-r--r--games-roguelike/mazesofmonad/mazesofmonad-1.0.9-r2.ebuild62
-rw-r--r--games-roguelike/mazesofmonad/metadata.xml19
-rw-r--r--games-roguelike/metadata.xml37
-rw-r--r--games-roguelike/moria/Manifest2
-rw-r--r--games-roguelike/moria/files/5.5.2-fbsd.patch268
-rw-r--r--games-roguelike/moria/files/5.5.2-gentoo-paths.patch58
-rw-r--r--games-roguelike/moria/files/5.5.2-glibc.patch356
-rw-r--r--games-roguelike/moria/files/5.5.2-hours.patch30
-rw-r--r--games-roguelike/moria/files/5.5.2-warnings.patch12
-rw-r--r--games-roguelike/moria/metadata.xml5
-rw-r--r--games-roguelike/moria/moria-5.5.2.ebuild71
-rw-r--r--games-roguelike/nethack/Manifest1
-rw-r--r--games-roguelike/nethack/files/3.4.3-X-support.patch26
-rw-r--r--games-roguelike/nethack/files/3.4.3-bison.patch18
-rw-r--r--games-roguelike/nethack/files/3.4.3-default-options.patch29
-rw-r--r--games-roguelike/nethack/files/3.4.3-gentoo-paths.patch18
-rw-r--r--games-roguelike/nethack/files/3.4.3-macos.patch11
-rw-r--r--games-roguelike/nethack/files/dot.nethackrc92
-rw-r--r--games-roguelike/nethack/files/nethack-3.4.3-gibc210.patch13
-rw-r--r--games-roguelike/nethack/files/nethack-3.4.3-recover.patch94
-rw-r--r--games-roguelike/nethack/metadata.xml13
-rw-r--r--games-roguelike/nethack/nethack-3.4.3-r3.ebuild218
-rw-r--r--games-roguelike/nethack/nethack-3.4.3-r4.ebuild231
-rw-r--r--games-roguelike/powder/Manifest1
-rw-r--r--games-roguelike/powder/metadata.xml5
-rw-r--r--games-roguelike/powder/powder-117.ebuild40
-rw-r--r--games-roguelike/rogue/Manifest1
-rw-r--r--games-roguelike/rogue/metadata.xml5
-rw-r--r--games-roguelike/rogue/rogue-5.4.4.ebuild32
-rw-r--r--games-roguelike/scourge/Manifest2
-rw-r--r--games-roguelike/scourge/files/scourge-0.21.1-automake-1.13.patch11
-rw-r--r--games-roguelike/scourge/files/scourge-0.21.1-gcc47.patch12
-rw-r--r--games-roguelike/scourge/metadata.xml8
-rw-r--r--games-roguelike/scourge/scourge-0.21.1.ebuild60
-rw-r--r--games-roguelike/slashem/Manifest2
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/GTK.configure22
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/Gentoo.configure5
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/Proxy.configure24
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/X11.configure18
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/dot.slashemrc112
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/gnome.configure21
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/makefile.patch27
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/opengl.configure10
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/prepare-gui.configure67
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/proxy.slashemrc4
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/qt.configure23
-rw-r--r--games-roguelike/slashem/files/0.0.7E7/sdl.configure16
-rw-r--r--games-roguelike/slashem/metadata.xml8
-rw-r--r--games-roguelike/slashem/slashem-0.0.772.ebuild168
-rw-r--r--games-roguelike/stone-soup/Manifest9
-rw-r--r--games-roguelike/stone-soup/files/stone-soup-0.13.2-build.patch99
-rw-r--r--games-roguelike/stone-soup/files/stone-soup-0.14.1-build.patch99
-rw-r--r--games-roguelike/stone-soup/files/stone-soup-0.14.2-build.patch99
-rw-r--r--games-roguelike/stone-soup/files/stone-soup-0.15.1-build.patch99
-rw-r--r--games-roguelike/stone-soup/files/stone-soup-0.15.2-Use-pkg-config-for-linking-to-ncurses.patch49
-rw-r--r--games-roguelike/stone-soup/files/stone-soup-0.15.2-respect-flags-and-compiler.patch110
-rw-r--r--games-roguelike/stone-soup/files/stone-soup-0.16.1-Use-pkg-config-for-linking-to-ncurses.patch49
-rw-r--r--games-roguelike/stone-soup/files/stone-soup-0.16.1-respect-flags-and-compiler.patch110
-rw-r--r--games-roguelike/stone-soup/metadata.xml42
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.13.2.ebuild145
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.14.1.ebuild145
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.14.2.ebuild162
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.15.1-r1.ebuild162
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.15.1.ebuild162
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.15.2.ebuild163
-rw-r--r--games-roguelike/stone-soup/stone-soup-0.16.1.ebuild160
-rw-r--r--games-roguelike/tome/Manifest1
-rw-r--r--games-roguelike/tome/files/2.3.5-gentoo-paths.patch31
-rw-r--r--games-roguelike/tome/files/tome-2.3.5-noX.patch11
-rw-r--r--games-roguelike/tome/metadata.xml5
-rw-r--r--games-roguelike/tome/tome-2.3.5.ebuild124
-rw-r--r--games-roguelike/tomenet/Manifest1
-rw-r--r--games-roguelike/tomenet/files/tomenet-4.5.9-makefile.patch75
-rw-r--r--games-roguelike/tomenet/files/tomenet-server-wrapper6
-rw-r--r--games-roguelike/tomenet/files/tomenet-wrapper18
-rw-r--r--games-roguelike/tomenet/metadata.xml19
-rw-r--r--games-roguelike/tomenet/tomenet-4.5.9.ebuild100
-rw-r--r--games-roguelike/wrogue/Manifest1
-rw-r--r--games-roguelike/wrogue/files/wrogue-0.8.0b-ldflags.patch29
-rw-r--r--games-roguelike/wrogue/metadata.xml12
-rw-r--r--games-roguelike/wrogue/wrogue-0.8.0b.ebuild46
-rw-r--r--games-roguelike/zangband/Manifest1
-rw-r--r--games-roguelike/zangband/files/zangband-2.7.4c-configure.patch51
-rw-r--r--games-roguelike/zangband/files/zangband-2.7.4c-makefile.patch29
-rw-r--r--games-roguelike/zangband/files/zangband-2.7.4c-rng.patch11
-rw-r--r--games-roguelike/zangband/files/zangband-2.7.4c-tk85.patch19
-rw-r--r--games-roguelike/zangband/metadata.xml5
-rw-r--r--games-roguelike/zangband/zangband-2.7.4c.ebuild63
115 files changed, 5863 insertions, 0 deletions
diff --git a/games-roguelike/FTL/FTL-1.5.13.ebuild b/games-roguelike/FTL/FTL-1.5.13.ebuild
new file mode 100644
index 000000000000..3dc5d4062efa
--- /dev/null
+++ b/games-roguelike/FTL/FTL-1.5.13.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils games
+
+DESCRIPTION="Faster Than Light: A spaceship simulation real-time roguelike-like game"
+HOMEPAGE="http://www.ftlgame.com/"
+SRC_URI="FTL.${PV}.tar.gz"
+
+LICENSE="all-rights-reserved Boost-1.0 free-noncomm MIT bundled-libs? ( FTL LGPL-2.1 ZLIB libpng )"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="bundled-libs"
+RESTRICT="fetch bindist splitdebug"
+
+RDEPEND="
+ sys-devel/gcc[cxx]
+ virtual/opengl
+ !bundled-libs? (
+ media-libs/devil[png]
+ media-libs/freetype:2
+ media-libs/libsdl[X,sound,joystick,opengl,video]
+ sys-libs/zlib
+ )"
+
+QA_PREBUILT="${GAMES_PREFIX_OPT#/}/${PN}/bin/${PN}
+ ${GAMES_PREFIX_OPT#/}/${PN}/lib/*"
+
+S=${WORKDIR}/${PN}
+
+pkg_nofetch() {
+ einfo "Please buy & download ${SRC_URI} from:"
+ einfo " ${HOMEPAGE}"
+ einfo "and move it to ${DISTDIR}"
+ einfo
+}
+
+src_prepare() {
+ if ! use bundled-libs ; then
+ # no system lib for libbass available
+ find data/${ARCH}/lib -type f \! -name "libbass*" -delete || die
+ fi
+}
+
+src_install() {
+ local dir=${GAMES_PREFIX_OPT}/${PN}
+
+ insinto "${dir}"
+ doins -r data/resources
+
+ exeinto "${dir}"/bin
+ doexe data/${ARCH}/bin/${PN}
+ exeinto "${dir}"/lib
+ doexe data/${ARCH}/lib/*.so*
+
+ games_make_wrapper ${PN} "${dir}/bin/${PN}" "${dir}" "${dir}/lib"
+ make_desktop_entry ${PN} "Faster Than Light" "/usr/share/pixmaps/FTL.bmp"
+
+ newicon data/resources/exe_icon.bmp FTL.bmp
+ dohtml ${PN}_README.html
+
+ prepgamesdirs
+}
diff --git a/games-roguelike/FTL/Manifest b/games-roguelike/FTL/Manifest
new file mode 100644
index 000000000000..fcd84da875b6
--- /dev/null
+++ b/games-roguelike/FTL/Manifest
@@ -0,0 +1 @@
+DIST FTL.1.5.13.tar.gz 197569383 SHA256 babdfafceec744f36dd663966813098669a983f94d243265dd57104ffbfb7055 SHA512 129aa9ea13b6889520cb637bcbda0452f3dc2e8d93fb0e4d1c7938436d776b39a0a33b4e9d943e058ab5c80dcbb6e7bb874d0a78bd8a2a5a3a7e34159e1faac9 WHIRLPOOL 23f9af234d3f81555fa2ca1533708e785fb82ba992c5fc836b6db1fe330e43c1b22927837a0cd000718e9adda8d3d9feb3abda8ca72463e9dc2aa75378db4c00
diff --git a/games-roguelike/FTL/metadata.xml b/games-roguelike/FTL/metadata.xml
new file mode 100644
index 000000000000..1f7b07a47f31
--- /dev/null
+++ b/games-roguelike/FTL/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>alex_y_xu@yahoo.ca</email>
+ <name>Alex Xu</name>
+ <description>Proxied maintainer</description>
+ </maintainer>
+ <use>
+ <flag name='bundled-libs'>Use bundled libraries.</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/games-roguelike/adom/Manifest b/games-roguelike/adom/Manifest
new file mode 100644
index 000000000000..0c636fb6eb51
--- /dev/null
+++ b/games-roguelike/adom/Manifest
@@ -0,0 +1 @@
+DIST adom-111-elf.tar.gz 1001683 SHA256 3200e814c6c70f1a3ecb6e82651803db2f837c2b398ca597c7ddffea773438bb SHA512 7b1d8916f66273b4ab06edd2d77c30e2edce827d346451d83c677af32492c40e5c578a8450ab3cc9be7888a0052a0960306e97db408e8581700c71c1b480b128 WHIRLPOOL 65d3df96bbab1af8d4110fc130f197eb715eb8d52e67390ff49340c9d88ea6238335bc089cf99972c4f7598605d5acaa6d929257ebf7b6752e89df3268fc13d9
diff --git a/games-roguelike/adom/adom-1.1.1-r1.ebuild b/games-roguelike/adom/adom-1.1.1-r1.ebuild
new file mode 100644
index 000000000000..af8ecd1eb258
--- /dev/null
+++ b/games-roguelike/adom/adom-1.1.1-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils games
+
+DESCRIPTION="Ancient Domains Of Mystery rogue-like game"
+HOMEPAGE="http://www.adom.de/"
+SRC_URI="http://www.adom.de/adom/download/linux/${P//.}-elf.tar.gz"
+
+LICENSE="adom"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+RESTRICT="strip" #bug #137340
+QA_FLAGS_IGNORED="${GAMES_PREFIX_OPT:1}/bin/adom"
+
+RDEPEND=">=sys-libs/ncurses-5.9-r3[abi_x86_32(-)]"
+
+S=${WORKDIR}/${PN}
+
+src_install() {
+ exeinto "${GAMES_PREFIX_OPT}/bin"
+ doexe adom
+
+ keepdir "${GAMES_STATEDIR}/${PN}"
+ echo "${GAMES_STATEDIR}/${PN}" > adom_ds.cfg
+ insinto /etc
+ doins adom_ds.cfg
+
+ edos2unix adomfaq.txt
+ dodoc adomfaq.txt manual.doc readme.1st
+
+ prepgamesdirs
+ fperms g+w "${GAMES_STATEDIR}/${PN}"
+}
diff --git a/games-roguelike/adom/metadata.xml b/games-roguelike/adom/metadata.xml
new file mode 100644
index 000000000000..d3c2cc926f0b
--- /dev/null
+++ b/games-roguelike/adom/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>games</herd>
+</pkgmetadata>
diff --git a/games-roguelike/angband/Manifest b/games-roguelike/angband/Manifest
new file mode 100644
index 000000000000..e146ae8dbbbe
--- /dev/null
+++ b/games-roguelike/angband/Manifest
@@ -0,0 +1,2 @@
+DIST angband-v3.4.1.tar.gz 17880537 SHA256 461e36d22c15df330b4d4eaa850e4f2c2da6731d23e99fa13a056249343fd945 SHA512 76099c8fa999e88ea1324bb70b4dee5df1faccd1fa256cc0c460ce2c5ddae9634fdef876bd0d826e99e6dcc54a9f9cf619d82552dc658d0115b97e0e644c19d3 WHIRLPOOL 4e74092deb1868a7c172c206058ebf198f5bdf08f50ebfa5cd3a4a4200998283d9d1896ff39f41fa88f74b78940bee16a3f8a2ce949a69b3e01417017cc32545
+DIST angband-v3.5.1.tar.gz 20539732 SHA256 c5ca3ab75fd820a49eb2b9ab8b1c2a811ff992276f9800cc61c686e90bd4d447 SHA512 a45a64b4de1161f327594b93177432c22a00301e7e6058a5e9c1407343c4448217564303578d46f3ea15c94b86aeaf813685a04a70a5dae58511cbf0427b86dc WHIRLPOOL b5f32d90b9923c8ea00eae762b3e743f3d1175290feb5bd38064a29954e8685545eb2129eabcb98e2386f7d425c9ce966c8824634844d23dd91dbbd8b32586bd
diff --git a/games-roguelike/angband/angband-3.4.1.ebuild b/games-roguelike/angband/angband-3.4.1.ebuild
new file mode 100644
index 000000000000..7d383dc83f8b
--- /dev/null
+++ b/games-roguelike/angband/angband-3.4.1.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils versionator games
+
+MAJOR_PV=$(get_version_component_range 1-2)
+MY_P=${PN}-v${PV}
+
+DESCRIPTION="A roguelike dungeon exploration game based on the books of J.R.R. Tolkien"
+HOMEPAGE="http://rephial.org/"
+SRC_URI="http://rephial.org/downloads/${MAJOR_PV}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="ncurses sdl +sound X"
+
+RDEPEND="X? ( x11-libs/libX11 )
+ !ncurses? ( !X? ( !sdl? ( sys-libs/ncurses ) ) )
+ ncurses? ( sys-libs/ncurses )
+ sdl? ( media-libs/libsdl[video,X]
+ media-libs/sdl-ttf
+ media-libs/sdl-image
+ sound? ( media-libs/sdl-mixer
+ media-libs/libsdl[sound] ) )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S=${WORKDIR}/${MY_P}
+
+DOCS=( changes.txt faq.txt readme.txt thanks.txt )
+
+src_prepare() {
+ # fix paths
+ sed -i \
+ -e '/libpath/s#datarootdir#datadir#' \
+ -e '/X_PRE_LIBS/s:-lSM -lICE::' \
+ configure || die
+
+ sed -i \
+ -e "/^.SILENT/d" \
+ mk/buildsys.mk.in || die
+}
+
+src_configure() {
+ local myconf
+
+ if use sdl; then
+ myconf="$(use_enable sound sdl-mixer)"
+ else
+ myconf="--disable-sdl-mixer"
+ fi
+
+ egamesconf \
+ --bindir="${GAMES_BINDIR}" \
+ --with-private-dirs \
+ $(use_enable X x11) \
+ $(use_enable sdl) \
+ $(use_enable ncurses curses) \
+ $(use !sdl && use !ncurses && use !X && \
+ echo --enable-curses) \
+ ${myconf}
+}
+
+src_install() {
+ default
+
+ # Edit files are now system config files in Angband, but
+ # users will be hidden from applying updates by default
+ echo "CONFIG_PROTECT_MASK=\"${GAMES_SYSCONFDIR}/${PN}/edit/\"" \
+ > "${T}"/99${PN}
+ doenvd "${T}"/99${PN} || die
+
+ # Create desktop entries if required.
+ ICON_LOC="${GAMES_DATADIR}/${PN}/xtra/icon/att-32.png"
+ if use X; then
+ make_desktop_entry "angband -mx11" "Angband (X11)" "${ICON_LOC}"
+ fi
+
+ if use sdl; then
+ make_desktop_entry "angband -msdl" "Angband (SDL)" "${ICON_LOC}"
+ fi
+
+ use ncurses || rm -rf "${D}${GAMES_DATADIR}/${PN}/xtra/graf"
+ use sound || rm -rf "${D}${GAMES_DATADIR}/${PN}/xtra/sound"
+
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ echo
+ elog "Angband now uses private savefiles instead of system-wide ones"
+ elog "This version of Angband is not compatible with the save files"
+ elog "of previous versions"
+ echo
+
+ games_pkg_postinst
+}
diff --git a/games-roguelike/angband/angband-3.5.1.ebuild b/games-roguelike/angband/angband-3.5.1.ebuild
new file mode 100644
index 000000000000..a3cbb867a40f
--- /dev/null
+++ b/games-roguelike/angband/angband-3.5.1.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils versionator games
+
+MAJOR_PV=$(get_version_component_range 1-2)
+MY_P=${PN}-v${PV}
+
+DESCRIPTION="A roguelike dungeon exploration game based on the books of J.R.R. Tolkien"
+HOMEPAGE="http://rephial.org/"
+SRC_URI="http://rephial.org/downloads/${MAJOR_PV}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="ncurses sdl +sound X"
+
+RDEPEND="X? ( x11-libs/libX11 )
+ !ncurses? ( !X? ( !sdl? ( sys-libs/ncurses ) ) )
+ ncurses? ( sys-libs/ncurses )
+ sdl? ( media-libs/libsdl[video,X]
+ media-libs/sdl-ttf
+ media-libs/sdl-image
+ sound? ( media-libs/sdl-mixer[mp3]
+ media-libs/libsdl[sound] ) )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ # fix paths
+ sed -i \
+ -e '/libpath/s#datarootdir#datadir#' \
+ -e '/X_PRE_LIBS/s:-lSM -lICE::' \
+ configure || die
+
+ sed -i \
+ -e "/^.SILENT/d" \
+ mk/buildsys.mk.in || die
+}
+
+src_configure() {
+ local myconf
+
+ if use sdl; then
+ myconf="$(use_enable sound sdl-mixer)"
+ else
+ myconf="--disable-sdl-mixer"
+ fi
+
+ egamesconf \
+ --bindir="${GAMES_BINDIR}" \
+ --with-private-dirs \
+ $(use_enable X x11) \
+ $(use_enable sdl) \
+ $(use_enable ncurses curses) \
+ $(use !sdl && use !ncurses && use !X && \
+ echo --enable-curses) \
+ ${myconf}
+}
+
+src_install() {
+ DOCS=( changes.txt faq.txt readme.txt thanks.txt )
+
+ default
+
+ # Edit files are now system config files in Angband, but
+ # users will be hidden from applying updates by default
+ echo "CONFIG_PROTECT_MASK=\"${GAMES_SYSCONFDIR}/${PN}/edit/\"" \
+ > "${T}"/99${PN}
+ doenvd "${T}"/99${PN} || die
+
+ # Create desktop entries if required.
+ ICON_LOC="${GAMES_DATADIR}/${PN}/xtra/icon/att-32.png"
+ if use X; then
+ make_desktop_entry "angband -mx11" "Angband (X11)" "${ICON_LOC}"
+ fi
+
+ if use sdl; then
+ make_desktop_entry "angband -msdl" "Angband (SDL)" "${ICON_LOC}"
+ fi
+
+ use ncurses || rm -rf "${D}${GAMES_DATADIR}/${PN}/xtra/graf"
+ use sound || rm -rf "${D}${GAMES_DATADIR}/${PN}/xtra/sound"
+
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ echo
+ elog "Angband now uses private savefiles instead of system-wide ones"
+ elog "This version of Angband is not compatible with the save files"
+ elog "of previous versions"
+ echo
+
+ games_pkg_postinst
+}
diff --git a/games-roguelike/angband/metadata.xml b/games-roguelike/angband/metadata.xml
new file mode 100644
index 000000000000..b8e6986601e2
--- /dev/null
+++ b/games-roguelike/angband/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <use>
+ <flag name='sound'>Enable and install sounds</flag>
+ </use>
+</pkgmetadata>
diff --git a/games-roguelike/crossfire-client/Manifest b/games-roguelike/crossfire-client/Manifest
new file mode 100644
index 000000000000..67878eae8843
--- /dev/null
+++ b/games-roguelike/crossfire-client/Manifest
@@ -0,0 +1,2 @@
+DIST crossfire-client-1.70.0.tar.gz 801043 SHA256 afa3981785689baa22813ebc3893250c2f73374dda64bfc1dc41e64f4adc60b2 SHA512 ce5b07cd6de03bd2dd28bbb85798ff26ad6764ee5490ba3920b160f6aa109bf5ae409d98855081b4498c3e8fee2e04f2f64a03553366d5f283bca516880e3bd7 WHIRLPOOL b407206deefc5aad6dadabfd37895938587209d3af395cd2a630062fa4102056dd66c01d3e2924d4ae633851b85807735b1d6225eba35194c1c4654181df206e
+DIST crossfire-client-1.71.0.tar.bz2 761156 SHA256 5427655e756ffb48e75c1d9dc3200afab81efa7f2f00ffdf5dfee51918d5819d SHA512 86710d684fd7908ea9aaf5ba20bff0f1ba01ff0ba90c3e2847afff9d0db6f60c7b671413c8888b513c992fbf27474e744b79df185d5e2c04afc9d2dce3d8665e WHIRLPOOL 7a51aac98d4df3f057e201f900faa2fc5f46c180cc57e11db063307fce4510823cc8ef4da62c72bff9dc9a66756de71b93b2dd2e7e759b02c376c7d973d10f9e
diff --git a/games-roguelike/crossfire-client/crossfire-client-1.70.0.ebuild b/games-roguelike/crossfire-client/crossfire-client-1.70.0.ebuild
new file mode 100644
index 000000000000..0dd1ed406f44
--- /dev/null
+++ b/games-roguelike/crossfire-client/crossfire-client-1.70.0.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit toolchain-funcs gnome2-utils games
+
+DESCRIPTION="Client for the nethack-style but more in the line of UO"
+HOMEPAGE="http://crossfire.real-time.com/"
+SRC_URI="mirror://sourceforge/crossfire/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="alsa lua oss sdl"
+
+RDEPEND="alsa? ( media-libs/alsa-lib )
+ virtual/opengl
+ x11-libs/gtk+:2
+ gnome-base/libglade
+ sdl? ( media-libs/libsdl[video]
+ media-libs/sdl-image )
+ lua? ( dev-lang/lua )
+ net-misc/curl
+ media-libs/freeglut
+ media-libs/libpng:0
+ sys-libs/zlib"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ sed -ri -e '/^.TH/s:$: 6:' $(find . -name "*man") || die
+}
+
+src_configure() {
+ # bugs in configure script so we cant use $(use_enable ...)
+ local myconf
+
+ use sdl || myconf="${myconf} --disable-sdl"
+ use alsa || myconf="${myconf} --disable-alsa9 --disable-alsa"
+ if ! use alsa && ! use oss ; then
+ myconf="${myconf} --disable-sound"
+ fi
+ egamesconf ${myconf}
+}
+
+src_compile() {
+ # bug 139785
+ if use alsa || use oss ; then
+ emake -j1 -C sound-src AR="$(tc-getAR)"
+ fi
+ emake AR="$(tc-getAR)"
+}
+
+src_install() {
+ local s
+
+ emake DESTDIR="${D}" install
+ dodoc AUTHORS ChangeLog README TODO
+ domenu gtk-v2/crossfire-client.desktop
+ for s in 16 32 48
+ do
+ newicon -s ${s} pixmaps/${s}x${s}.png ${PN}.png
+ done
+ prepgamesdirs
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-roguelike/crossfire-client/crossfire-client-1.71.0.ebuild b/games-roguelike/crossfire-client/crossfire-client-1.71.0.ebuild
new file mode 100644
index 000000000000..fe4e0267199c
--- /dev/null
+++ b/games-roguelike/crossfire-client/crossfire-client-1.71.0.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit toolchain-funcs gnome2-utils games
+
+DESCRIPTION="Client for the nethack-style but more in the line of UO"
+HOMEPAGE="http://crossfire.real-time.com/"
+SRC_URI="mirror://sourceforge/crossfire/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="alsa lua opengl oss sdl"
+
+RDEPEND="alsa? ( media-libs/alsa-lib )
+ opengl? ( virtual/opengl
+ media-libs/freeglut )
+ x11-libs/gtk+:2
+ gnome-base/libglade
+ sdl? ( media-libs/libsdl[video]
+ media-libs/sdl-image[png] )
+ lua? ( dev-lang/lua )
+ net-misc/curl
+ media-libs/libpng:0
+ sys-libs/zlib"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ sed -ri -e '/^.TH/s:$: 6:' $(find . -name "*man") || die
+}
+
+src_configure() {
+ # bugs in configure script so we cant use $(use_enable ...)
+ local myconf
+
+ use sdl || myconf="${myconf} --disable-sdl"
+ use alsa || myconf="${myconf} --disable-alsa9 --disable-alsa"
+ if ! use alsa && ! use oss ; then
+ myconf="${myconf} --disable-sound"
+ fi
+ egamesconf ${myconf}
+}
+
+src_compile() {
+ # bug 139785
+ if use alsa || use oss ; then
+ emake -C sound-src AR="$(tc-getAR)"
+ fi
+ emake AR="$(tc-getAR)"
+}
+
+src_install() {
+ local s
+
+ default
+ domenu gtk-v2/crossfire-client.desktop
+ for s in 16 32 48
+ do
+ newicon -s ${s} pixmaps/${s}x${s}.png ${PN}.png
+ done
+ prepgamesdirs
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-roguelike/crossfire-client/files/crossfire-client-1.70.0-gold.patch b/games-roguelike/crossfire-client/files/crossfire-client-1.70.0-gold.patch
new file mode 100644
index 000000000000..74dbe1334b70
--- /dev/null
+++ b/games-roguelike/crossfire-client/files/crossfire-client-1.70.0-gold.patch
@@ -0,0 +1,16 @@
+From: Julian Ospald <hasufell@gentoo.org>
+Date: Mon Jan 28 08:14:23 UTC 2013
+Subject: fix underlinking
+
+--- crossfire-client-1.70.0/configure.ac
++++ crossfire-client-1.70.0/configure.ac
+@@ -242,6 +242,9 @@
+ AC_PROG_CPP
+ AC_PROG_RANLIB
+
++# Check for X11
++PKG_CHECK_MODULES([X], [x11])
++
+ AC_SUBST(X_LIBS)
+ AC_SUBST(X_CFLAGS)
+
diff --git a/games-roguelike/crossfire-client/metadata.xml b/games-roguelike/crossfire-client/metadata.xml
new file mode 100644
index 000000000000..19f7d9af42ad
--- /dev/null
+++ b/games-roguelike/crossfire-client/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <upstream>
+ <remote-id type="sourceforge">crossfire</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-roguelike/dwarf-fortress/Manifest b/games-roguelike/dwarf-fortress/Manifest
new file mode 100644
index 000000000000..9087367a8f73
--- /dev/null
+++ b/games-roguelike/dwarf-fortress/Manifest
@@ -0,0 +1 @@
+DIST df_40_24_linux.tar.bz2 12921246 SHA256 da37c6263a679123e6ac57fe0dd6def11f1d61efee3c5913de09495c88ce9234 SHA512 2242e471b7dbc996e819e2f74b2bbfda30a9a301755bc025ddcccdffdd3afe2e48bbedca31a332283ef829d023069398e57d6a87e26c582ddbce4a67ff7fd755 WHIRLPOOL 03cb652a2564d2b0c809be8252f7754d893f69ac1b95124ea108ed0fde9ac742c498d9e369339775695861e430a2ded0741b018f85551d48731730f98303dc69
diff --git a/games-roguelike/dwarf-fortress/dwarf-fortress-0.40.24.ebuild b/games-roguelike/dwarf-fortress/dwarf-fortress-0.40.24.ebuild
new file mode 100644
index 000000000000..2a8113980846
--- /dev/null
+++ b/games-roguelike/dwarf-fortress/dwarf-fortress-0.40.24.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils games multilib versionator
+
+MY_PV=$(replace_all_version_separators _ "$(get_version_component_range 2-)")
+MY_PN=df
+MY_P=${MY_PN}_${MY_PV}
+
+DESCRIPTION="A single-player fantasy game"
+HOMEPAGE="http://www.bay12games.com/dwarves"
+SRC_URI="http://www.bay12games.com/dwarves/${MY_P}_linux.tar.bz2"
+
+LICENSE="free-noncomm BSD BitstreamVera"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 -*"
+IUSE="debug"
+
+RDEPEND="media-libs/glew[abi_x86_32(-)]
+ media-libs/libsdl[abi_x86_32(-),opengl,video,X]
+ media-libs/libsndfile[abi_x86_32(-),alsa]
+ media-libs/sdl-image[abi_x86_32(-),jpeg,png,tiff]
+ media-libs/sdl-ttf[abi_x86_32(-)]
+ sys-libs/zlib[abi_x86_32(-)]
+ virtual/glu[abi_x86_32(-)]
+ x11-libs/gtk+:2[abi_x86_32(-)]"
+# Yup, openal and ncurses are only needed at compile-time; the code dlopens it at runtime
+# if requested.
+DEPEND="${RDEPEND}
+ media-libs/openal[abi_x86_32(-)]
+ sys-libs/ncurses[abi_x86_32(-),unicode]
+ virtual/pkgconfig
+ x11-proto/kbproto[abi_x86_32(-)]
+ x11-proto/xproto[abi_x86_32(-)]"
+
+S=${WORKDIR}/${MY_PN}_linux
+
+gamesdir="${GAMES_PREFIX_OPT}/${PN}"
+QA_PRESTRIPPED="${gamesdir}/libs/Dwarf_Fortress"
+
+pkg_setup() {
+ games_pkg_setup
+
+ multilib_toolchain_setup x86
+}
+
+src_prepare() {
+ rm libs/*.so*
+ cp "${FILESDIR}"/{dwarf-fortress,Makefile} .
+ epatch_user
+}
+
+src_configure() {
+ tc-export CXX PKG_CONFIG
+ CXXFLAGS+=" -D$(use debug || echo N)DEBUG"
+}
+
+src_compile() {
+ default
+ sed -i -e "s:^gamesdir=.*:gamesdir=${gamesdir}:" ${PN} || die
+}
+
+src_install() {
+ # install data-files and libs
+ insinto "${gamesdir}"
+ doins -r raw data libs
+
+ # install our wrapper
+ dogamesbin ${PN}
+
+ # install docs
+ dodoc README.linux *.txt
+
+ prepgamesdirs
+
+ fperms 750 "${gamesdir}"/libs/Dwarf_Fortress
+}
+
+pkg_postinst() {
+ elog "System-wide Dwarf Fortress has been installed to ${gamesdir}. This is"
+ elog "symlinked to ~/.dwarf-fortress when dwarf-fortress is run."
+ elog "For more information on what exactly is replaced, see ${GAMES_BINDIR}/${PN}."
+ elog "Note: This means that the primary entry point is ${GAMES_BINDIR}/${PN}."
+ elog "Do not run ${gamesdir}/libs/Dwarf_Fortress."
+ elog
+ elog "Optional runtime dependencies: install sys-libs/ncurses[$(use amd64 && echo "abi_x86_32,")unicode]"
+ elog "for [PRINT_MODE:TEXT]. Install media-libs/openal$(use amd64 && echo "[abi_x86_32]") for audio output."
+ elog
+ games_pkg_postinst
+}
diff --git a/games-roguelike/dwarf-fortress/files/Makefile b/games-roguelike/dwarf-fortress/files/Makefile
new file mode 100644
index 000000000000..a0453a50f7c4
--- /dev/null
+++ b/games-roguelike/dwarf-fortress/files/Makefile
@@ -0,0 +1,32 @@
+# Copyright 2014-2015 Alex Xu (Hello71)
+# Distributed under the terms of the GNU General Public License v2
+
+PKG_CONFIG ?= pkg-config
+PKG_CONFIG_PATH ?= /usr/lib32/pkgconfig:/usr/lib/pkgconfig
+PKG_CONFIG := PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG)
+
+SRCS := g_src/basics.cpp g_src/command_line.cpp g_src/enabler.cpp \
+ g_src/files.cpp g_src/find_files_posix.cpp g_src/graphics.cpp \
+ g_src/init.cpp g_src/interface.cpp g_src/keybindings.cpp \
+ g_src/music_and_sound_openal.cpp g_src/random.cpp g_src/textlines.cpp \
+ g_src/enabler_input.cpp g_src/KeybindingScreen.cpp \
+ g_src/win32_compat.cpp g_src/textures.cpp g_src/resize++.cpp \
+ g_src/renderer_offscreen.cpp g_src/ttf_manager.cpp
+OBJS := $(SRCS:.cpp=.o)
+
+BLIBS := ncursesw openal sndfile
+LIBS := glew glu gtk+-2.0 sdl SDL_image SDL_ttf zlib
+CXXFLAGS ?= -O2 -pipe -Wall -Wextra
+CXXFLAGS += -m32 $(shell $(PKG_CONFIG) --cflags $(BLIBS) $(LIBS)) -Dunix -Dlinux -fPIC -std=c++11
+LDLIBS := $(shell $(PKG_CONFIG) --libs $(LIBS))
+
+LG := libs/libgraphics.so
+
+all: $(LG)
+$(LG): $(OBJS)
+ $(LINK.cpp) -shared $^ $(LDLIBS) -o $@
+
+clean:
+ $(RM) $(LG) $(OBJS)
+
+.PHONY: clean
diff --git a/games-roguelike/dwarf-fortress/files/dwarf-fortress b/games-roguelike/dwarf-fortress/files/dwarf-fortress
new file mode 100644
index 000000000000..8594e0bcefaf
--- /dev/null
+++ b/games-roguelike/dwarf-fortress/files/dwarf-fortress
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+gamesdir=/opt/dwarf-fortress
+install="$HOME/.dwarf-fortress"
+
+do_install() {
+ cp -rn "$gamesdir"/data "$install"/
+ # DF gets unhappy when this is out of sync
+ cp -f "$gamesdir"/data/index "$install"/data/
+ cp -rsn "$gamesdir"/* "$install"/
+}
+
+if [[ -d "$install" ]]; then
+ # delete dangling symlinks
+ find -L "$install/" -type l -delete
+ # ignore "are the same file" errors
+ do_install 2>/dev/null
+else
+ mkdir "$install" || exit
+ do_install || exit
+fi
+
+cd "$install" || exit
+exec ./libs/Dwarf_Fortress "$@"
diff --git a/games-roguelike/dwarf-fortress/metadata.xml b/games-roguelike/dwarf-fortress/metadata.xml
new file mode 100644
index 000000000000..c9a8db431846
--- /dev/null
+++ b/games-roguelike/dwarf-fortress/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<maintainer>
+ <email>alex_y_xu@yahoo.ca</email>
+ <name>Alex Xu</name>
+ <description>proxied maintainer, please assign bugs to</description>
+</maintainer>
+<maintainer>
+ <email>creffett@gentoo.org</email>
+ <name>Chris Reffett</name>
+ <description>maintainer, please CC on bugs</description>
+</maintainer>
+</pkgmetadata>
diff --git a/games-roguelike/hengband/Manifest b/games-roguelike/hengband/Manifest
new file mode 100644
index 000000000000..b01c4d65ed63
--- /dev/null
+++ b/games-roguelike/hengband/Manifest
@@ -0,0 +1,2 @@
+DIST hengband-1.6.2-mispellings.patch.gz 11964 SHA256 68139e72091e12614124bee63f5700f36a560573e98a541974836fa61a12f08d SHA512 73838981616e09deca7afc3911386e665ac38fafcdcea42d87bc41e4bc187551278efeaa608a772a444e0c178c3f990e16dd302b6a8dc6dfdd8625d463b9b3b5 WHIRLPOOL 3a9d1136bfd6af7aa310562902a150d47402aa3242dfb1dfe78b16d8925351709e4eabb0aa9c8d48d68cad68ecfd6d858b15fa13a1bce286e1ffd326268ecee6
+DIST hengband-1.6.2.tar.bz2 2029169 SHA256 72f1c8dd9365127ccd155b786d2828a19bbd0311a9d62d07bd16a22600c385b4 SHA512 24c67f00556d7899b4f18f3071c4bd50bc754566c4c4736c18248ced243b1332e6c84381250c1a59358e7a914e5d62db05c47ab0921bcf40fbd6cfe4b6717520 WHIRLPOOL 380f4494acf0038f7d0a22ac0806652ea794a3d9aecad18d23e73a9657675bf94ad55edda7d5fcbcdad022fabdb05425294cdd7fa9a5c8c2269535fcd5d41a1e
diff --git a/games-roguelike/hengband/files/hengband-1.6.2-added_faq.patch b/games-roguelike/hengband/files/hengband-1.6.2-added_faq.patch
new file mode 100644
index 000000000000..0e75022145cb
--- /dev/null
+++ b/games-roguelike/hengband/files/hengband-1.6.2-added_faq.patch
@@ -0,0 +1,163 @@
+diff -Naur hengband-1.6.2-orig/lib/help/faq.txt hengband-1.6.2-fixed/lib/help/faq.txt
+--- hengband-1.6.2-orig/lib/help/faq.txt 1970-01-01 03:00:00.000000000 +0300
++++ hengband-1.6.2-fixed/lib/help/faq.txt 2004-12-07 08:12:53.000000000 +0300
+@@ -0,0 +1,147 @@
++
++========= Hengband FAQ ==========
++
++
++Q. I want to play as an Android, Balrog, Golem, Skeleton, Zombie,
++ Spectre, or Ent. But I can't find any scroll of satisfy hunger.
++ And Berserkers no longer have racial ability of satisfy hunger.
++ How do I avoid starvation?
++
++A. Scroll of Satisfy Hunger and Berserker's ability of Satisfy Hunger
++ are obsoleted. And races which previously relyed on Satisfy Hunger
++ have new sources of nutrition now; Android can quaff oil. Balrogs
++ can sacrifice human corpse using the 'E'at command. Golems,
++ Skeletons, Zombies, and Spectres can absorb mana from staves and
++ wands using the 'E'at command. Ents can gain enough nutrition from
++ potions.
++
++
++Q. I got through the Yeek cave and I headed into the wilderness....and
++ I'm still there searching endlessly down one road after another
++ looking for a town. Where are other towns and dungeons?
++
++A. You need to use the global wilderness map (press the < key on the
++ ground level). This gives you a larger map of the world, where you
++ can travel to other towns and dungeons. By the way, you should
++ read the readme_eng.txt and the on-line help.
++
++
++Q. I'm playing as a berserker, and cannot read scrolls. How do I
++ remove curse?
++
++A. You can simply 't'ake off cursed equipments. Since cursed
++ equipments are strongly sticking, you need to try 't'ake off
++ command many times.
++
++
++Q. I know Berserkers cannot use scrolls, and rods. How do I recall
++ from dungeon? Maybe I need to travel completely on foot?!!
++
++A. Berserkers gain a class power 'Recall' at level 10. Press the
++ 'U'(original keyset) or 'O'(Roguelike keyset) to use class power.
++
++
++Q. Why Ninja have Iron Spikes at the start?
++
++A. Ninja can use Iron Spikes as shuriken; they can throw it as good
++ missile weapon. Simply use 'v' command.
++
++
++Q. I'm at normal speed (+0). But normal speed monsters sometimes do
++ double or even triple move!
++
++A. On Hengband, amount of energy needed for a move is somewhat
++ randomized. This method of speed system is an important feature of
++ Hengband, and is simulating real fighting. So always expect that
++ your enemy can get two or three move. Don't fight when your HP is
++ low, if you don't want to get instakill!
++
++
++Q. I tried to dual wield two weapons. But I couldn't hit anything!
++
++A. You need to practice your dual wielding skill(proficiency level)
++ and your weapon skills. Hitting high level monsters many times
++ will improve your skills. Note that the information command '~'
++ reveals your proficiency levels.
++
++
++Q. How do skills(proficiency levels) work?
++
++A. Weapon proficiency levels and dual wielding proficiency levels
++ increase your to-hit bonus. Spell proficiency levels decrease fail
++ rate and mana consumption rate of spells. Riding proficiency level
++ gives you more speed when you are riding on a high speed monster,
++ and decreases risk of falling from your mount.
++
++
++Q. How do I increase proficiency level?
++
++A. Proficiency level of a weapon will increase when you hit a monster
++ whose level is high enough compared with your character level.
++ Proficiency level of a spell will increase when you cast the spell
++ at the dungeon level deep enough compared with the spell level.
++ Needed condition to increase riding proficiency level is rather
++ complex; Generally, you need to hit a monster whose level is high
++ enough compared with current riding proficiency level or to shoot a
++ monster when ride on high level mount.
++
++
++Q. How do I ride on a monster?
++
++A. At first, summon, charm or capture some suitable monster. Then use
++ pet menu command 'p'.
++
++
++Q. How to use Capture Ball?
++
++A. Just equip it and activate 'A' to a dying monster.
++
++
++Q. I cannot hold a weapon and a shield without losing control of my
++ horse. My horse runs aimlessly!
++
++A. You cannot directly control your mount unless you use one hand to
++ control your mount. But you can command your mount. Just use 'p'
++ command, and give your mount a target. The horse which was given a
++ target will no longer run around aimlessly.
++
++
++Q. Where is the score server? And how do I register my character
++ dumps?
++
++A. Here;'http://hengband.sourceforge.jp/en/score.html'.
++ When you die, Hengband will ask you as 'Do you send score to the
++ world score sever?'. And if you answer 'y', Hengband will
++ automatically register your character dump and screen shot.
++
++
++Q. Are there spoiler for more details?
++
++A. Yes. Henkma is writing spoiler page for Hengband;
++ 'http://www.kmc.gr.jp/~henkma/heng-e/index.html'
++
++
++Q. Who wrote Hengband?
++
++A. Hengband is mainly based on ZAngband 2.2.8 Japanese version.
++ ZAngband 2.2.8 Japanese version was developed by Mitsuhiro Itakura,
++ based on both ZAngband 2.2.8 and Angband 2.8.3 Japanese version,
++ and has some original features, for example, Auto-picker, in
++ addition to simple translation.
++
++ Hengband also includes codes from many other variants including
++ ToME, OAngband, etc... Mr.Hoge wrote the first original part of
++ Hengband. And currently, it is maintained by Hengband Development
++ Team including Mr.Hoge, Habu, Henkma, iks, Kuwa, Mogami and nsk.
++
++
++Q. Where is Hengband?
++
++A. Here: http://hengband.sourceforge.jp/en/
++
++
++
++ Hengband FAQ written by Mogami
++
++--
++Updated : Hengband 1.5.4
+diff -Naur hengband-1.6.2-orig/lib/help/Makefile.am hengband-1.6.2-fixed/lib/help/Makefile.am
+--- hengband-1.6.2-orig/lib/help/Makefile.am 2002-10-31 17:12:08.000000000 +0300
++++ hengband-1.6.2-fixed/lib/help/Makefile.am 2005-11-22 11:59:58.000000000 +0300
+@@ -4,7 +4,7 @@
+ attack.hlp attack.txt birth.hlp birth.txt \
+ bldg.txt raceclas.hlp raceclas.txt command.hlp \
+ command.txt commdesc.hlp commdesc.txt defend.hlp \
+- defend.txt dungeon.hlp dungeon.txt gambling.txt \
++ defend.txt dungeon.hlp dungeon.txt faq.txt gambling.txt \
+ general.hlp general.txt help.hlp helpinfo.txt \
+ j_general.txt j_item1.txt j_item2.txt j_trans.txt \
+ jattack.hlp jattack.txt jbirth.hlp jbirth.txt \
diff --git a/games-roguelike/hengband/files/hengband-1.6.2-ovflfix.patch b/games-roguelike/hengband/files/hengband-1.6.2-ovflfix.patch
new file mode 100644
index 000000000000..47bb53cf771a
--- /dev/null
+++ b/games-roguelike/hengband/files/hengband-1.6.2-ovflfix.patch
@@ -0,0 +1,11 @@
+--- src/effects.c.old 2010-10-28 11:51:31.000000000 +0200
++++ src/effects.c 2010-10-28 11:51:59.000000000 +0200
+@@ -5191,7 +5191,7 @@
+ }
+ else
+ {
+- char buf[10];
++ char buf[15];
+
+ if (p_ptr->inside_arena)
+ #ifdef JP
diff --git a/games-roguelike/hengband/hengband-1.6.2-r1.ebuild b/games-roguelike/hengband/hengband-1.6.2-r1.ebuild
new file mode 100644
index 000000000000..d93f12cc4ed5
--- /dev/null
+++ b/games-roguelike/hengband/hengband-1.6.2-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils autotools games
+
+DESCRIPTION="An Angband variant, with a Japanese/fantasy theme"
+HOMEPAGE="http://hengband.sourceforge.jp/en/"
+SRC_URI="mirror://sourceforge.jp/hengband/10331/${P}.tar.bz2
+ mirror://gentoo/${P}-mispellings.patch.gz"
+
+KEYWORDS="ppc x86 ~x86-fbsd"
+LICENSE="Moria"
+SLOT="0"
+IUSE="X linguas_ja"
+
+RDEPEND=">=sys-libs/ncurses-5
+ X? ( x11-libs/libX11 )"
+DEPEND="${RDEPEND}
+ X? ( x11-libs/libXt )"
+
+src_prepare() {
+ # Removing Xaw dependency as is not used
+ sed -i \
+ -e '/Xaw/d' src/main-xaw.c \
+ || die
+ sed -i \
+ -e 's|root\.|root:|' lib/*/Makefile.in \
+ || die
+ sed -i \
+ -e 's:/games/:/:g' configure.in \
+ || die
+ epatch \
+ "../${P}"-mispellings.patch \
+ "${FILESDIR}/${P}"-added_faq.patch \
+ "${FILESDIR}"/${P}-ovflfix.patch
+ mv configure.in configure.ac || die
+ eautoreconf
+}
+
+src_configure() {
+ local myconf
+ use linguas_ja || myconf="--disable-japanese"
+
+ egamesconf \
+ --with-setgid=${GAMES_GROUP} \
+ $(use_with X x) \
+ ${myconf}
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "make install failed"
+ if use linguas_ja ; then
+ dodoc readme.txt autopick.txt readme_eng.txt autopick_eng.txt
+ else
+ newdoc readme_eng.txt readme.txt
+ newdoc autopick_eng.txt autopick.txt
+ fi
+ prepgamesdirs
+ # FIXME: we need to patch around this BS
+ fperms g+w "${GAMES_DATADIR}"/${PN}/lib/{apex,data,save,user}
+}
diff --git a/games-roguelike/hengband/metadata.xml b/games-roguelike/hengband/metadata.xml
new file mode 100644
index 000000000000..53afe19dbddc
--- /dev/null
+++ b/games-roguelike/hengband/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <upstream>
+ <remote-id type="sourceforge-jp">hengband</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-roguelike/mazesofmonad/Manifest b/games-roguelike/mazesofmonad/Manifest
new file mode 100644
index 000000000000..cd2bcd33f2b4
--- /dev/null
+++ b/games-roguelike/mazesofmonad/Manifest
@@ -0,0 +1 @@
+DIST MazesOfMonad-1.0.9.tar.gz 56342 SHA256 02075be1011adc99f69f6438a30b8da4b397aef9dcbaec23134a7524cbc73310 SHA512 a537672907f0bf356574b5c16b9b354cc73133958873e3dfc064f9de2ad7c18bed011f811887edc37c9b40de5529f7954889953946a79da29a255637e81d9612 WHIRLPOOL 1c1c9615bdf2f1597aae495731ed498c416a0f02761c76bbc88697a75a21cf14748fb678a9b0470eea2d0c0e73807319c847d6f63f7648d2b88d8405e24206a1
diff --git a/games-roguelike/mazesofmonad/files/mazesofmonad-1.0.9-time-1.5.patch b/games-roguelike/mazesofmonad/files/mazesofmonad-1.0.9-time-1.5.patch
new file mode 100644
index 000000000000..11ef34ef45f9
--- /dev/null
+++ b/games-roguelike/mazesofmonad/files/mazesofmonad-1.0.9-time-1.5.patch
@@ -0,0 +1,22 @@
+diff --git a/MazesOfMonad.cabal b/MazesOfMonad.cabal
+index db5e5bf..c3b427b 100644
+--- a/MazesOfMonad.cabal
++++ b/MazesOfMonad.cabal
+@@ -34,3 +34,3 @@ Executable mazesofmonad
+ regex-posix, containers, filepath, directory, pretty,
+- array, mtl, old-locale, time
++ array, mtl, old-locale, time, time-locale-compat
+
+diff --git a/src/MoresmauJP/Rpg/Save.hs b/src/MoresmauJP/Rpg/Save.hs
+index 12965b7..238b9b9 100644
+--- a/src/MoresmauJP/Rpg/Save.hs
++++ b/src/MoresmauJP/Rpg/Save.hs
+@@ -10,2 +10,3 @@ import Data.Maybe
+ import Data.Time
++import qualified Data.Time.Locale.Compat as DTLC
+
+@@ -112,3 +113,3 @@ listGames rs name= do
+ if isJust $ bckGame bs
+- then return $ Just (dropExtension x,formatTime defaultTimeLocale (iso8601DateFormat $ Just "%R") $ bckDate bs)
++ then return $ Just (dropExtension x,formatTime DTLC.defaultTimeLocale (DTLC.iso8601DateFormat $ Just "%R") $ bckDate bs)
+ else return Nothing
diff --git a/games-roguelike/mazesofmonad/mazesofmonad-1.0.9-r2.ebuild b/games-roguelike/mazesofmonad/mazesofmonad-1.0.9-r2.ebuild
new file mode 100644
index 000000000000..2b99b2f0deb8
--- /dev/null
+++ b/games-roguelike/mazesofmonad/mazesofmonad-1.0.9-r2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+CABAL_FEATURES="bin"
+inherit eutils haskell-cabal games
+
+MY_PN=MazesOfMonad
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Console-based roguelike Role Playing Game similar to nethack"
+HOMEPAGE="https://github.com/JPMoresmau/MazesOfMonad
+ http://hackage.haskell.org/package/MazesOfMonad"
+SRC_URI="mirror://hackage/packages/archive/${MY_PN}/${PV}/${MY_P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-libs/gmp-5:0=
+ virtual/libffi:="
+DEPEND="${RDEPEND}
+ >=dev-lang/ghc-7.4.1
+ >=dev-haskell/cabal-1.6
+ dev-haskell/hunit
+ dev-haskell/mtl
+ dev-haskell/random
+ dev-haskell/regex-posix
+ dev-haskell/time-locale-compat
+"
+
+S=${WORKDIR}/${MY_P}
+
+pkg_setup() {
+ games_pkg_setup
+ haskell-cabal_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.0.9-time-1.5.patch
+}
+
+src_configure() {
+ haskell-cabal_src_configure \
+ --prefix="${GAMES_PREFIX}"
+}
+
+src_compile() {
+ haskell-cabal_src_compile
+}
+
+src_install() {
+ haskell-cabal_src_install
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ ghc-package_pkg_postinst
+ games_pkg_postinst
+}
diff --git a/games-roguelike/mazesofmonad/metadata.xml b/games-roguelike/mazesofmonad/metadata.xml
new file mode 100644
index 000000000000..7ca9c091535d
--- /dev/null
+++ b/games-roguelike/mazesofmonad/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <herd>haskell</herd>
+ <longdescription>
+ MazesOfMonad is a console-based Role Playing Game. You create
+ characters with their strong and weak points, and try to complete
+ mazes that are randomly generated. You can pick up gold and items
+ on the way, meet monsters, and deal with them as you want. You can
+ fight, use magic, bribe, trade, steal... This is only a simple game
+ that I did to see what building a full blown Haskell application
+ is like to develop. Versions 1.0.5 and above are complete
+ and working.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">JPMoresmau/MazesOfMonad</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-roguelike/metadata.xml b/games-roguelike/metadata.xml
new file mode 100644
index 000000000000..3d54b3c25841
--- /dev/null
+++ b/games-roguelike/metadata.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ The games-roguelike category contains games which resemble Rogue's
+ style.
+ </longdescription>
+ <longdescription lang="de">
+ Die Kategorie games-roguelike enthält Spiele die sich am Stil von
+ Rogue orientieren (z.B. NetHack).
+ </longdescription>
+ <longdescription lang="es">
+ La categoría games-roguelike contiene juegos que recrean el estilo del
+ Rogue.
+ </longdescription>
+ <longdescription lang="ja">
+ games-roguelike カテゴリーにはRogueスタイルに似たゲームが含まれています。
+ </longdescription>
+ <longdescription lang="nl">
+ De games-roguelike categorie bevat spellen die gebaseerd zijn op de
+ stijl van Rogue, zoals bijvoorbeeld NetHack.
+ </longdescription>
+ <longdescription lang="vi">
+ Nhóm games-roguelike chứa các trò chơi dạng Rogue.
+ </longdescription>
+ <longdescription lang="it">
+ La categoria games-roguelike contiene giochi che ricreano lo stile di Rogue.
+ </longdescription>
+ <longdescription lang="pt">
+ A categoria games-roguelike contém jogos que recriam o estilo
+ de Rogue.
+ </longdescription>
+ <longdescription lang="pl">
+ Kategoria games-roguelike zawiera tekstowe gry cRPG podobne do Rogue.
+ </longdescription>
+</catmetadata>
+
diff --git a/games-roguelike/moria/Manifest b/games-roguelike/moria/Manifest
new file mode 100644
index 000000000000..351746b3cee5
--- /dev/null
+++ b/games-roguelike/moria/Manifest
@@ -0,0 +1,2 @@
+DIST moria-extras.tar.bz2 57324 SHA256 60f2a7d7bf8615a090cacafd17cf6fae8f9f0af78700439022e25014384b5076 SHA512 39d04ffdbe779fc070ee72084df5c731f8db25116e9156898d4c78c86e02288cf3560849461f2081209a06a74274789a671b104dc806b63a0d955adad17fd85f WHIRLPOOL cb862713c26d18515bb4017a14a8b25943c2a692eaf17d672faa2c8fb34a612a68342c7d21c2bcca247959a4a1906aa5649fda175e7c281cc1d81ba2c6ac9f89
+DIST um5.5.2.tar.Z 910536 SHA256 fffab65703c77058a1aadd8647cc1f44bd4349065af0b334702986f36007b2ed SHA512 987bbccb9cb4870ec91704cd20cf19875320d1cfe62c4c5a0063bfc3827732a0e3334a4ea3712137f3262d7418db0ea7e803d724e2dec4d5eb41ebe741f326cc WHIRLPOOL 568ea63c647cc999267834a24ecf3792f55e83c2942f5bcfaa70ca089abebb4de4d827646d493d551447ed3cdc34e39f31d0cca18f40eb767daf586d38951ebe
diff --git a/games-roguelike/moria/files/5.5.2-fbsd.patch b/games-roguelike/moria/files/5.5.2-fbsd.patch
new file mode 100644
index 000000000000..4f65b08f567d
--- /dev/null
+++ b/games-roguelike/moria/files/5.5.2-fbsd.patch
@@ -0,0 +1,268 @@
+Index: umoria/source/main.c
+===================================================================
+--- umoria.orig/source/main.c
++++ umoria/source/main.c
+@@ -88,6 +88,7 @@
+ #include <time.h>
+ #endif
+
++#ifndef __FreeBSD__
+ #ifndef VMS
+ #ifndef MAC
+ #ifndef GEMDOS
+@@ -98,6 +99,9 @@ long time();
+ char *getenv();
+ #endif
+ #endif
++#else
++#include <stdlib.h>
++#endif
+
+ #ifndef MAC
+ #ifndef AMIGA
+@@ -360,7 +364,7 @@ char *argv[];
+ else
+ { /* Create character */
+ create_character();
+-#ifdef MAC
++#if defined(MAC) || defined(__FreeBSD__)
+ birth_date = time ((time_t *)0);
+ #else
+ birth_date = time ((long *)0);
+Index: umoria/source/death.c
+===================================================================
+--- umoria.orig/source/death.c
++++ umoria/source/death.c
+@@ -123,6 +123,7 @@ static void kingly(void);
+ #include <stdlib.h>
+ #endif
+
++#ifndef __FreeBSD__
+ #ifndef VMS
+ #ifndef MAC
+ #if !defined(ATARIST_MWC) && !defined(AMIGA)
+@@ -130,18 +131,19 @@ long time();
+ #endif
+ #endif
+ #endif
++#endif
+
+ static void date(day)
+ char *day;
+ {
+ register char *tmp;
+-#ifdef MAC
++#if defined(MAC) || defined(__FreeBSD__)
+ time_t clockvar;
+ #else
+ long clockvar;
+ #endif
+
+-#ifdef MAC
++#if defined(MAC) || defined(__FreeBSD__)
+ clockvar = time((time_t *) 0);
+ #else
+ clockvar = time((long *) 0);
+Index: umoria/source/io.c
+===================================================================
+--- umoria.orig/source/io.c
++++ umoria/source/io.c
+@@ -13,6 +13,11 @@
+
+ #include "config.h"
+
++#ifdef __FreeBSD__
++#include <sys/ioctl_compat.h>
++#include <time.h>
++#endif
++
+ #ifdef HPUX
+ #include <sys/bsdtty.h>
+ #endif
+@@ -245,7 +250,9 @@ int suspend()
+ struct ltchars lcbuf;
+ struct tchars cbuf;
+ int lbuf;
++#ifndef __FreeBSD__
+ long time();
++#endif
+
+ py.misc.male |= 2;
+ (void) ioctl(0, TIOCGETP, (char *)&tbuf);
+@@ -313,7 +320,7 @@ void init_curses()
+ #endif
+
+ /* PC curses returns ERR */
+-#if defined(USG) && !defined(PC_CURSES) && !defined(AMIGA)
++#if (defined(USG) && !defined(PC_CURSES) && !defined(AMIGA)) || defined(__FreeBSD__)
+ if (initscr() == NULL)
+ #else
+ if (initscr() == ERR)
+@@ -331,7 +338,7 @@ void init_curses()
+ #if defined(atarist) && defined(__GNUC__)
+ (void) signal (SIGTSTP, (__Sigfunc)suspend);
+ #else
+-#ifdef __386BSD__
++#if defined(__386BSD__) || defined(__FreeBSD__)
+ (void) signal (SIGTSTP, (sig_t)suspend);
+ #else
+ (void) signal (SIGTSTP, suspend);
+@@ -757,7 +764,7 @@ void shell_out()
+ msg_print("Fork failed. Try again.");
+ return;
+ }
+-#if defined(USG) || defined(__386BSD__)
++#if defined(USG) || defined(__386BSD__) || defined(__FreeBSD__)
+ (void) wait((int *) 0);
+ #else
+ (void) wait((union wait *) 0);
+Index: umoria/source/misc1.c
+===================================================================
+--- umoria.orig/source/misc1.c
++++ umoria/source/misc1.c
+@@ -28,7 +28,7 @@
+ #endif
+ #endif
+
+-#if !defined(ATARIST_MWC) && !defined(MAC) && !defined(VMS) && !defined(AMIGA)
++#if !defined(ATARIST_MWC) && !defined(MAC) && !defined(VMS) && !defined(AMIGA) && !defined(__FreeBSD__)
+ long time();
+ #endif
+ struct tm *localtime();
+@@ -45,7 +45,7 @@ int32u seed;
+ register int32u clock_var;
+
+ if (seed == 0)
+-#ifdef MAC
++#if defined(MAC) || defined(__FreeBSD__)
+ clock_var = time((time_t *)0);
+ #else
+ clock_var = time((long *)0);
+@@ -89,10 +89,14 @@ void reset_seed()
+ int check_time()
+ {
+ #ifdef MORIA_HOU
++#if defined(MAC) || defined(__FreeBSD__)
++ time_t clock_var;
++#else
+ long clock_var;
++#endif
+ register struct tm *tp;
+
+-#ifdef MAC
++#if defined(MAC) || defined(__FreeBSD__)
+ clock_var = time((time_t *)0);
+ #else
+ clock_var = time((long *)0);
+Index: umoria/source/save.c
+===================================================================
+--- umoria.orig/source/save.c
++++ umoria/source/save.c
+@@ -102,7 +102,7 @@ static void rd_monster();
+ #endif
+
+ #if !defined(ATARIST_MWC)
+-#ifdef MAC
++#if defined(MAC) || defined(__FreeBSD__)
+ #include <time.h>
+ #else
+ long time();
+@@ -331,7 +331,7 @@ static int sv_write()
+ }
+
+ /* save the current time in the savefile */
+-#ifdef MAC
++#if defined(MAC) || defined(__FreeBSD__)
+ l = time((time_t *)0);
+ #else
+ l = time((long *)0);
+@@ -1029,7 +1029,7 @@ int *generate;
+ || (version_min == 2 && patch_level >= 2))
+ rd_long ((int32u *)&birth_date);
+ else
+-#ifdef MAC
++#if defined(MAC) || defined(__FreeBSD__)
+ birth_date = time((time_t *)0);
+ #else
+ birth_date = time((long *)0);
+@@ -1253,7 +1253,7 @@ scoreboard; it will not be scored again.
+ /* rotate store inventory, depending on how old the save file */
+ /* is foreach day old (rounded up), call store_maint */
+ /* calculate age in seconds */
+-#ifdef MAC
++#if defined(MAC) || defined(__FreeBSD__)
+ start_time = time((time_t *)0);
+ #else
+ start_time = time((long *)0);
+Index: umoria/source/signals.c
+===================================================================
+--- umoria.orig/source/signals.c
++++ umoria/source/signals.c
+@@ -89,7 +89,7 @@ static int signal_count = 0;
+
+ /*ARGSUSED*/
+ #ifndef USG
+-#ifdef __386BSD__
++#if defined(__386BSD__) || defined(__FreeBSD__)
+ static void signal_handler(sig, code, scp)
+ #else
+ static int signal_handler(sig, code, scp)
+@@ -217,7 +217,7 @@ void signals()
+ #if defined(atarist) && defined(__GNUC__)
+ (void) signal(SIGTSTP, (__Sigfunc)suspend);
+ #else
+-#ifdef __386BSD__
++#if defined(__386BSD__) || defined(__FreeBSD__)
+ (void) signal(SIGTSTP, (sig_t)suspend);
+ #else
+ (void) signal(SIGTSTP, suspend);
+Index: umoria/source/types.h
+===================================================================
+--- umoria.orig/source/types.h
++++ umoria/source/types.h
+@@ -6,11 +6,20 @@
+ not for profit purposes provided that this copyright and statement are
+ included in all such copies. */
+
++#ifdef __FreeBSD__
++#include <sys/types.h>
++typedef u_int32_t int32u;
++typedef int32_t int32;
++typedef u_int16_t int16u;
++typedef int16_t int16;
++typedef u_int8_t int8u;
++#else
+ typedef unsigned long int32u;
+ typedef long int32;
+ typedef unsigned short int16u;
+ typedef short int16;
+ typedef unsigned char int8u;
++#endif
+ /* some machines will not accept 'signed char' as a type, and some accept it
+ but still treat it like an unsigned character, let's just avoid it,
+ any variable which can ever hold a negative value must be 16 or 32 bits */
+Index: umoria/unix/unix.c
+===================================================================
+--- umoria.orig/unix/unix.c
++++ umoria/unix/unix.c
+@@ -14,6 +14,10 @@
+ /* defines TRUE and FALSE */
+ #include <curses.h>
+
++#ifdef __FreeBSD__
++#include <unistd.h>
++#endif
++
+ #include "config.h"
+ #include "constant.h"
+ #include "types.h"
+@@ -276,7 +280,9 @@ int getuid();
+ void user_name(buf)
+ char *buf;
+ {
++#ifndef __FreeBSD__
+ extern char *getlogin();
++#endif
+ struct passwd *pwline;
+ register char *p;
+
diff --git a/games-roguelike/moria/files/5.5.2-gentoo-paths.patch b/games-roguelike/moria/files/5.5.2-gentoo-paths.patch
new file mode 100644
index 000000000000..5ce4ce4d2b4d
--- /dev/null
+++ b/games-roguelike/moria/files/5.5.2-gentoo-paths.patch
@@ -0,0 +1,58 @@
+--- umoria/unix/Makefile.orig 2003-12-31 14:52:58.583335976 -0500
++++ umoria/unix/Makefile 2003-12-31 14:51:54.621059720 -0500
+@@ -3,6 +3,7 @@
+ # LIBDIR must be the same directory defined in config.h
+ # OWNER is who you want the game to be chown to.
+ # GROUP is who you wnat the game to be chgrp to.
++STATEDIR = /var/lib
+ BINDIR = /home/zariski/grabiner/moria
+ LIBDIR = /home/zariski/grabiner/moria/files
+ OWNER = grabiner
+@@ -65,12 +66,11 @@
+ chmod 4711 $(BINDIR)/moria
+ chmod 711 $(LIBDIR)
+ (cd files; cp $(LIBFILES) $(LIBDIR))
+- (cd $(LIBDIR); chmod 444 $(LIBFILES))
+- (cd $(LIBDIR); touch scores; chmod 644 scores)
++ (cd $(STATEDIR); touch moriascores; chmod 664 moriascores; chown $(OWNER) moriascores; chgrp $(GROUP) moriascores)
+ chown $(OWNER) $(BINDIR)/moria
+ chgrp $(GROUP) $(BINDIR)/moria
+- (cd $(LIBDIR); chown $(OWNER) $(LIBFILES) scores)
+- (cd $(LIBDIR); chgrp $(GROUP) $(LIBFILES) scores)
++ (cd $(LIBDIR); chown $(OWNER) $(LIBFILES))
++ (cd $(LIBDIR); chgrp $(GROUP) $(LIBFILES))
+ # If you are short on disk space, or aren't interested in debugging moria.
+ # strip $(BINDIR)/moria
+
+--- umoria/source/config.h.orig 2003-12-31 15:19:48.893531616 -0500
++++ umoria/source/config.h 2003-12-31 15:21:09.584264760 -0500
+@@ -199,17 +199,18 @@
+ #else
+
+ /* This must be unix; change MORIA_LIB as appropriate. */
+-#define MORIA_SAV "moria.save"
+-#define MORIA_LIB(xxx) "/home/math/grabiner/moria/files/xxx"
+-#define MORIA_HOU MORIA_LIB(hours)
+-#define MORIA_MOR MORIA_LIB(news)
+-#define MORIA_TOP MORIA_LIB(scores)
+-#define MORIA_HELP MORIA_LIB(roglcmds.hlp)
+-#define MORIA_ORIG_HELP MORIA_LIB(origcmds.hlp)
+-#define MORIA_WIZ_HELP MORIA_LIB(rwizcmds.hlp)
+-#define MORIA_OWIZ_HELP MORIA_LIB(owizcmds.hlp)
+-#define MORIA_WELCOME MORIA_LIB(welcome.hlp)
+-#define MORIA_VER MORIA_LIB(version.hlp)
++#define MORIA_SAV ".moria.save"
++#define MORIA_LIB(xxx) "GENTOO_DATADIR/" xxx
++#define MORIA_STATE(xxx) "GENTOO_STATEDIR/" xxx
++#define MORIA_HOU MORIA_LIB("hours")
++#define MORIA_MOR MORIA_LIB("news")
++#define MORIA_TOP MORIA_STATE("moriascores")
++#define MORIA_HELP MORIA_LIB("roglcmds.hlp")
++#define MORIA_ORIG_HELP MORIA_LIB("origcmds.hlp")
++#define MORIA_WIZ_HELP MORIA_LIB("rwizcmds.hlp")
++#define MORIA_OWIZ_HELP MORIA_LIB("owizcmds.hlp")
++#define MORIA_WELCOME MORIA_LIB("welcome.hlp")
++#define MORIA_VER MORIA_LIB("version.hlp")
+
+ #endif
+ #endif
diff --git a/games-roguelike/moria/files/5.5.2-glibc.patch b/games-roguelike/moria/files/5.5.2-glibc.patch
new file mode 100644
index 000000000000..55e4e5de2b14
--- /dev/null
+++ b/games-roguelike/moria/files/5.5.2-glibc.patch
@@ -0,0 +1,356 @@
+diff -Naur common-orig/Makefile umoria/unix/Makefile
+--- common-orig/Makefile 2003-12-09 10:06:19.000000000 -0500
++++ umoria/unix/Makefile 2003-12-09 10:07:12.000000000 -0500
+@@ -14,9 +14,9 @@
+ CFLAGS = -O
+
+ # For BSD Systems
+-CURSES = -lcurses -ltermcap
++# CURSES = -lcurses -ltermcap
+ # For SYS V Systems
+-# CURSES = -lcurses
++CURSES = `pkg-config ncurses --libs`
+ # For XENIX, some XENIX systems may need -ltinfo
+ # CURSES = -ltcap -ltermcap -lx
+
+diff -Naur common-orig/death.c umoria/source/death.c
+--- common-orig/death.c 2003-12-09 10:06:19.000000000 -0500
++++ umoria/source/death.c 2003-12-09 10:06:56.000000000 -0500
+@@ -175,10 +175,12 @@
+ /* The following code is provided especially for systems which -CJS-
+ have no flock system call. It has never been tested. */
+
++#ifndef LOCK_EX
+ #define LOCK_EX 1
+ #define LOCK_SH 2
+ #define LOCK_NB 4
+ #define LOCK_UN 8
++#endif
+
+ /* An flock HACK. LOCK_SH and LOCK_EX are not distinguished. DO NOT release
+ a lock which you failed to set! ALWAYS release a lock you set! */
+diff -Naur common-orig/io.c umoria/source/io.c
+--- common-orig/io.c 2003-12-09 10:06:19.000000000 -0500
++++ umoria/source/io.c 2003-12-09 10:06:56.000000000 -0500
+@@ -62,6 +62,7 @@
+
+
+ #include <ctype.h>
++#include <termios.h>
+
+ #if defined(SYS_V) && defined(lint)
+ /* for AIX, prevent hundreds of unnecessary lint errors, must define before
+@@ -334,7 +335,9 @@
+ #ifdef __386BSD__
+ (void) signal (SIGTSTP, (sig_t)suspend);
+ #else
+- (void) signal (SIGTSTP, suspend);
++ /* (void) signal (SIGTSTP, suspend); */
++ /* libc6 defaults to BSD, this expects SYSV */
++ (void) sysv_signal (SIGTSTP, suspend);
+ #endif
+ #endif
+ #endif
+diff -Naur common-orig/misc3.c umoria/source/misc3.c
+--- common-orig/misc3.c 2003-12-09 10:06:19.000000000 -0500
++++ umoria/source/misc3.c 2003-12-09 10:06:56.000000000 -0500
+@@ -1249,8 +1249,7 @@
+ {
+ int i;
+ register inven_type *i_ptr;
+- vtype prt2;
+- bigvtype prt1;
++ bigvtype prt1, prt2;
+ #ifdef ATARIST_MWC
+ int32u holder;
+ #endif
+diff -Naur common-orig/misc4.c umoria/source/misc4.c
+--- common-orig/misc4.c 2003-12-09 10:06:19.000000000 -0500
++++ umoria/source/misc4.c 2003-12-09 10:06:56.000000000 -0500
+@@ -33,7 +33,7 @@
+ void scribe_object()
+ {
+ int item_val, j;
+- vtype out_val, tmp_str;
++ bigvtype out_val, tmp_str;
+
+ if (inven_ctr > 0 || equip_ctr > 0)
+ {
+diff -Naur common-orig/moria1.c umoria/source/moria1.c
+--- common-orig/moria1.c 2003-12-09 10:06:19.000000000 -0500
++++ umoria/source/moria1.c 2003-12-09 10:06:56.000000000 -0500
+@@ -332,8 +332,8 @@
+ {
+ objdes(tmp_val, &inventory[i], TRUE);
+ tmp_val[lim] = 0; /* Truncate if too long. */
+- (void) sprintf(out_val[i], " %c) %s", 'a'+i, tmp_val);
+- l = strlen(out_val[i]);
++ (void) sprintf(out_val[i], "%c) %s", 'a'+i, tmp_val);
++ l = strlen(out_val[i]) + 2;
+ if (weight)
+ l += 9;
+ if (l > len)
+@@ -352,9 +352,12 @@
+ {
+ /* don't need first two spaces if in first column */
+ if (col == 0)
+- prt(&out_val[i][2], current_line, col);
+- else
+ prt(out_val[i], current_line, col);
++ else
++ {
++ put_buffer(" ", current_line, col);
++ prt(out_val[i], current_line, col+2);
++ }
+ if (weight)
+ {
+ total_weight = inventory[i].weight*inventory[i].number;
+@@ -466,9 +469,9 @@
+ }
+ objdes(prt2, &inventory[i], TRUE);
+ prt2[lim] = 0; /* Truncate if necessary */
+- (void) sprintf(out_val[line], " %c) %-14s: %s", line+'a',
+- prt1, prt2);
+- l = strlen(out_val[line]);
++ (void) sprintf(out_val[line], "%c) %-14s: %s", line+'a',
++ prt1, prt2);
++ l = strlen(out_val[line]) + 2;
+ if (weight)
+ l += 9;
+ if (l > len)
+@@ -488,9 +491,12 @@
+ {
+ /* don't need first two spaces when using whole screen */
+ if (col == 0)
+- prt(&out_val[line][2], line+1, col);
+- else
+ prt(out_val[line], line+1, col);
++ else
++ {
++ put_buffer(" ", line+1, col);
++ prt(out_val[line], line+1, col+2);
++ }
+ if (weight)
+ {
+ total_weight = i_ptr->weight*i_ptr->number;
+diff -Naur common-orig/signals.c umoria/source/signals.c
+--- common-orig/signals.c 2003-12-09 10:06:19.000000000 -0500
++++ umoria/source/signals.c 2003-12-09 10:06:56.000000000 -0500
+@@ -113,7 +113,11 @@
+ if(error_sig >= 0) /* Ignore all second signals. */
+ {
+ if(++signal_count > 10) /* Be safe. We will die if persistent enough. */
++#ifdef __FreeBSD__
+ (void) signal(sig, SIG_DFL);
++#else
++ (void) sysv_signal(sig, SIG_DFL);
++#endif
+ return;
+ }
+ error_sig = sig;
+@@ -126,7 +126,11 @@
+ )
+ {
+ if (death)
++#ifdef __FreeBSD__
+ (void) signal(sig, SIG_IGN); /* Can't quit after death. */
++#else
++ (void) sysv_signal(sig, SIG_IGN); /* Can't quit after death. */
++#endif
+ else if (!character_saved && character_generated)
+ {
+ if (!get_check("Really commit *Suicide*?"))
+@@ -137,7 +137,11 @@
+ put_qio();
+ error_sig = -1;
+ #ifdef USG
++#ifdef __FreeBSD__
+ (void) signal(sig, signal_handler);/* Have to restore handler. */
++#else
++ (void) sysv_signal(sig, signal_handler);/* Have to restore handler. */
++#endif
+ #else
+ (void) sigsetmask(smask);
+ #endif
+@@ -179,7 +179,11 @@
+ restore_term();
+ #if !defined(MSDOS) && !defined(AMIGA) && !defined(ATARIST_TC)
+ /* always generate a core dump */
++#ifdef __FreeBSD__
+ (void) signal(sig, SIG_DFL);
++#else
++ (void) sysv_signal(sig, SIG_DFL);
++#endif
+ (void) kill(getpid(), sig);
+ (void) sleep(5);
+ #endif
+@@ -199,7 +199,11 @@
+ #if defined(atarist) && defined(__GNUC__)
+ (void) signal(SIGTSTP, (__Sigfunc)SIG_IGN);
+ #else
++#ifdef __FreeBSD__
+ (void) signal(SIGTSTP, SIG_IGN);
++#else
++ (void) sysv_signal(SIGTSTP, SIG_IGN);
++#endif
+ #endif
+ #ifndef USG
+ mask = sigsetmask(0);
+@@ -220,7 +220,11 @@
+ #ifdef __386BSD__
+ (void) signal(SIGTSTP, (sig_t)suspend);
+ #else
++#ifdef __FreeBSD__
+ (void) signal(SIGTSTP, suspend);
++#else
++ (void) sysv_signal(SIGTSTP, suspend);
++#endif
+ #endif
+ #endif
+ #ifndef USG
+@@ -237,7 +237,11 @@
+ {
+ #if !defined(ATARIST_MWC) && !defined(ATARIST_TC)
+ /* No signals for Atari ST compiled with MWC or TC. */
++#ifdef __FreeBSD__
+ (void) signal(SIGINT, signal_handler);
++#else
++ (void) sysv_signal(SIGINT, signal_handler);
++#endif
+
+ #if defined(atarist) && defined(__GNUC__)
+ /* Atari ST compiled with GNUC has most signals, but we need a cast
+@@ -259,8 +259,13 @@
+
+ #else
+ /* Everybody except the atari st. */
++#ifdef __FreeBSD__
+ (void) signal(SIGINT, signal_handler);
+ (void) signal(SIGFPE, signal_handler);
++#else
++ (void) sysv_signal(SIGINT, signal_handler);
++ (void) sysv_signal(SIGFPE, signal_handler);
++#endif
+
+ #if defined(MSDOS)
+ /* many fewer signals under MSDOS */
+@@ -278,30 +278,61 @@
+
+ /* Everybody except Atari, MSDOS, and Amiga. */
+ /* Ignore HANGUP, and let the EOF code take care of this case. */
++#ifdef __FreeBSD__
+ (void) signal(SIGHUP, SIG_IGN);
+ (void) signal(SIGQUIT, signal_handler);
+ (void) signal(SIGILL, signal_handler);
+ (void) signal(SIGTRAP, signal_handler);
+ (void) signal(SIGIOT, signal_handler);
++#else
++ (void) sysv_signal(SIGHUP, SIG_IGN);
++ (void) sysv_signal(SIGQUIT, signal_handler);
++ (void) sysv_signal(SIGILL, signal_handler);
++ (void) sysv_signal(SIGTRAP, signal_handler);
++ (void) sysv_signal(SIGIOT, signal_handler);
++#endif
+ #ifdef SIGEMT /* in BSD systems */
+ (void) signal(SIGEMT, signal_handler);
+ #endif
+ #ifdef SIGDANGER /* in SYSV systems */
+ (void) signal(SIGDANGER, signal_handler);
+ #endif
++#ifdef __FreeBSD__
+ (void) signal(SIGKILL, signal_handler);
+ (void) signal(SIGBUS, signal_handler);
+ (void) signal(SIGSEGV, signal_handler);
++#else
++ (void) sysv_signal(SIGKILL, signal_handler);
++ (void) sysv_signal(SIGBUS, signal_handler);
++ (void) sysv_signal(SIGSEGV, signal_handler);
++#endif
+ #ifdef SIGSYS
++#ifdef __FreeBSD__
+ (void) signal(SIGSYS, signal_handler);
++#else
++ (void) sysv_signal(SIGSYS, signal_handler);
++#endif
+ #endif
++#ifdef __FreeBSD__
+ (void) signal(SIGTERM, signal_handler);
+ (void) signal(SIGPIPE, signal_handler);
++#else
++ (void) sysv_signal(SIGTERM, signal_handler);
++ (void) sysv_signal(SIGPIPE, signal_handler);
++#endif
+ #ifdef SIGXCPU /* BSD */
++#ifdef __FreeBSD__
+ (void) signal(SIGXCPU, signal_handler);
++#else
++ (void) sysv_signal(SIGXCPU, signal_handler);
++#endif
+ #endif
+ #ifdef SIGPWR /* SYSV */
++#ifdef __FreeBSD__
+ (void) signal(SIGPWR, signal_handler);
++#else
++ (void) sysv_signal(SIGPWR, signal_handler);
++#endif
+ #endif
+ #endif
+ #endif
+@@ -314,7 +314,11 @@
+ #if !defined(ATARIST_MWC)
+ (void) signal(SIGINT, SIG_IGN);
+ #ifdef SIGQUIT
++#ifdef __FreeBSD__
+ (void) signal(SIGQUIT, SIG_IGN);
++#else
++ (void) sysv_signal(SIGQUIT, SIG_IGN);
++#endif
+ #endif
+ #endif
+ }
+@@ -324,7 +324,11 @@
+ #if !defined(ATARIST_MWC)
+ (void) signal(SIGINT, SIG_DFL);
+ #ifdef SIGQUIT
++#ifdef __FreeBSD__
+ (void) signal(SIGQUIT, SIG_DFL);
++#else
++ (void) sysv_signal(SIGQUIT, SIG_DFL);
++#endif
+ #endif
+ #endif
+ }
+@@ -335,13 +335,21 @@
+ #if defined(atarist) && defined(__GNUC__)
+ (void) signal(SIGINT, (__Sigfunc)signal_handler);
+ #else
++#ifdef __FreeBSD__
+ (void) signal(SIGINT, signal_handler);
++#else
++ (void) sysv_signal(SIGINT, signal_handler);
++#endif
+ #endif
+ #ifdef SIGQUIT
+ #if defined(atarist) && defined(__GNUC__)
+ (void) signal(SIGQUIT, (__Sigfunc)signal_handler);
+ #else
++#ifdef __FreeBSD__
+ (void) signal(SIGQUIT, signal_handler);
++#else
++ (void) sysv_signal(SIGQUIT, signal_handler);
++#endif
+ #endif
+ #endif
+ #endif
+diff -Naur common-orig/unix.c umoria/unix/unix.c
+--- common-orig/unix.c 2003-12-09 10:06:19.000000000 -0500
++++ umoria/unix/unix.c 2003-12-09 10:06:56.000000000 -0500
+@@ -261,7 +261,7 @@
+ #endif
+
+ #ifdef USG
+-unsigned short getuid();
++/* unsigned short getuid(); */
+ #else
+ #ifndef SECURE
+ #ifdef BSD4_3
diff --git a/games-roguelike/moria/files/5.5.2-hours.patch b/games-roguelike/moria/files/5.5.2-hours.patch
new file mode 100644
index 000000000000..3d1c329d9b9b
--- /dev/null
+++ b/games-roguelike/moria/files/5.5.2-hours.patch
@@ -0,0 +1,30 @@
+diff -ru umoria.orig/source/files.c umoria/source/files.c
+--- umoria.orig/source/files.c 1994-07-21 21:47:22.000000000 -0400
++++ umoria/source/files.c 2010-05-05 14:51:44.334588483 -0400
+@@ -130,19 +130,19 @@
+ if (strlen(in_line) > 3)
+ {
+ if (!strncmp(in_line, "SUN:", 4))
+- (void) strcpy(days[0], in_line);
++ (void) snprintf(days[0], sizeof(days[0]), "%s", in_line);
+ else if (!strncmp(in_line, "MON:", 4))
+- (void) strcpy(days[1], in_line);
++ (void) snprintf(days[1], sizeof(days[0]), "%s", in_line);
+ else if (!strncmp(in_line, "TUE:", 4))
+- (void) strcpy(days[2], in_line);
++ (void) snprintf(days[2], sizeof(days[0]), "%s", in_line);
+ else if (!strncmp(in_line, "WED:", 4))
+- (void) strcpy(days[3], in_line);
++ (void) snprintf(days[3], sizeof(days[0]), "%s", in_line);
+ else if (!strncmp(in_line, "THU:", 4))
+- (void) strcpy(days[4], in_line);
++ (void) snprintf(days[4], sizeof(days[0]), "%s", in_line);
+ else if (!strncmp(in_line, "FRI:", 4))
+- (void) strcpy(days[5], in_line);
++ (void) snprintf(days[5], sizeof(days[0]), "%s", in_line);
+ else if (!strncmp(in_line, "SAT:", 4))
+- (void) strcpy(days[6], in_line);
++ (void) snprintf(days[6], sizeof(days[0]), "%s", in_line);
+ }
+ (void) fclose(file1);
+ }
diff --git a/games-roguelike/moria/files/5.5.2-warnings.patch b/games-roguelike/moria/files/5.5.2-warnings.patch
new file mode 100644
index 000000000000..33a2762b99d0
--- /dev/null
+++ b/games-roguelike/moria/files/5.5.2-warnings.patch
@@ -0,0 +1,12 @@
+diff -ru umoria.orig/unix/unix.c umoria/unix/unix.c
+--- umoria.orig/unix/unix.c 2014-11-01 02:45:07.375535783 -0400
++++ umoria/unix/unix.c 2014-11-01 02:45:58.575820065 -0400
+@@ -315,7 +315,7 @@
+
+ user[0] = '\0';
+ file++;
+- while (*file != '/' && i < sizeof(user))
++ while (*file != '/' && i < sizeof(user) - 1)
+ user[i++] = *file++;
+ user[i] = '\0';
+ if (i == 0)
diff --git a/games-roguelike/moria/metadata.xml b/games-roguelike/moria/metadata.xml
new file mode 100644
index 000000000000..d3c2cc926f0b
--- /dev/null
+++ b/games-roguelike/moria/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>games</herd>
+</pkgmetadata>
diff --git a/games-roguelike/moria/moria-5.5.2.ebuild b/games-roguelike/moria/moria-5.5.2.ebuild
new file mode 100644
index 000000000000..e1994f5f6905
--- /dev/null
+++ b/games-roguelike/moria/moria-5.5.2.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils toolchain-funcs games
+
+DESCRIPTION="Rogue-like D&D curses game similar to nethack (BUT BETTER)"
+HOMEPAGE="http://remarque.org/~grabiner/moria.html"
+SRC_URI="ftp://ftp.greyhelm.com/pub/Games/Moria/source/um${PV}.tar.Z
+ http://www.funet.fi/pub/unix/games/moria/source/um${PV}.tar.Z
+ http://www.piratehaven.org/~beej/moria/mirror/Games/Moria/source/um${PV}.tar.Z
+ http://alge.anart.no/ftp/pub/games/RPG/moria/um${PV}.tar.Z
+ ftp://kane.evendata.net/pub/${PN}-extras.tar.bz2"
+
+LICENSE="Moria"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND=">=sys-libs/ncurses-5"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S=${WORKDIR}/umoria
+
+src_prepare() {
+ local f
+
+ epatch \
+ "${FILESDIR}"/${PV}-gentoo-paths.patch \
+ "${FILESDIR}"/${PV}-glibc.patch \
+ "${FILESDIR}"/${PV}-fbsd.patch \
+ "${FILESDIR}"/${PV}-hours.patch \
+ "${FILESDIR}"/${PV}-warnings.patch
+
+ for f in source/* unix/* ; do
+ ln -s ${f} $(basename ${f})
+ done
+
+ sed -i \
+ -e "s:David Grabiner:root:" \
+ -e "s:GENTOO_DATADIR:${GAMES_DATADIR}/${PN}:" \
+ -e "s:GENTOO_STATEDIR:${GAMES_STATEDIR}:" \
+ config.h || die
+ {
+ echo "#include <stdlib.h>"
+ echo "#include <stdio.h>"
+ } >> config.h || die
+ sed -i \
+ -e "/^STATEDIR =/s:=.*:=\$(DESTDIR)${GAMES_STATEDIR}:" \
+ -e "/^BINDIR = /s:=.*:=\$(DESTDIR)${GAMES_BINDIR}:" \
+ -e "/^LIBDIR = /s:=.*:=\$(DESTDIR)${GAMES_DATADIR}/${PN}:" \
+ -e "/^CFLAGS = /s:=.*:=${CFLAGS}:" \
+ -e "/^OWNER = /s:=.*:=${GAMES_USER}:" \
+ -e "/^GROUP = /s:=.*:=${GAMES_GROUP}:" \
+ -e "/^CC = /s:=.*:=$(tc-getCC):" \
+ -e '/^LFLAGS = /s:=.*:= $(LDFLAGS):' \
+ Makefile || die
+ mv doc/moria.6 "${S}" || die
+}
+
+src_install() {
+ dodir "${GAMES_BINDIR}" "${GAMES_DATADIR}/${PN}" "${GAMES_STATEDIR}"
+ emake DESTDIR="${D}" install
+
+ doman moria.6
+ dodoc README doc/* "${WORKDIR}"/${PN}-extras/*
+
+ prepgamesdirs
+}
diff --git a/games-roguelike/nethack/Manifest b/games-roguelike/nethack/Manifest
new file mode 100644
index 000000000000..8776166e7815
--- /dev/null
+++ b/games-roguelike/nethack/Manifest
@@ -0,0 +1 @@
+DIST nethack-343-src.tgz 3497458 SHA256 bb39c3d2a9ee2df4a0c8fdde708fbc63740853a7608d2f4c560b488124866fe4 SHA512 052342c19619219f291571d48cf7799f962eb6ec6f8a276427225c0abbd833eada18abeff9fbd647919f2a9e3bb097d7f154675e283fe48abc4752f24c192d8f WHIRLPOOL 397c787f83149d96ddbfa6a2235c20c3724ed67946889d432774901cb7ddc71b177e2cbd6c3029f4eb0b4df21c81c6a427494dad550fdbace01876a3d9c79d75
diff --git a/games-roguelike/nethack/files/3.4.3-X-support.patch b/games-roguelike/nethack/files/3.4.3-X-support.patch
new file mode 100644
index 000000000000..6687f8865509
--- /dev/null
+++ b/games-roguelike/nethack/files/3.4.3-X-support.patch
@@ -0,0 +1,26 @@
+--- include/config.h.orig 2003-06-21 20:58:57.000000000 -0400
++++ include/config.h 2003-06-21 20:59:44.000000000 -0400
+@@ -46 +46 @@
+-/* #define X11_GRAPHICS */ /* X11 interface */
++#define X11_GRAPHICS 1
+@@ -127 +127 @@
+-/* # define USE_XPM */ /* Disable if you do not have the XPM library */
++# define USE_XPM 1
+--- Makefile.orig 2003-06-21 21:01:03.000000000 -0400
++++ Makefile 2003-06-21 21:01:16.000000000 -0400
+@@ -43 +43 @@
+-VARDATND =
++VARDATND = x11tiles pet_mark.xbm rip.xpm
+--- src/Makefile.orig 2003-06-21 21:02:01.000000000 -0400
++++ src/Makefile 2003-06-21 21:02:11.000000000 -0400
+@@ -207,2 +207,2 @@
+-WINSRC = $(WINTTYSRC)
+-WINOBJ = $(WINTTYOBJ)
++WINSRC = $(WINTTYSRC) $(WINX11SRC)
++WINOBJ = $(WINTTYOBJ) $(WINX11OBJ)
+@@ -228 +228 @@
+-WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
++WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11 -lXpm
+@@ -248 +248 @@
+-WINLIB = $(WINTTYLIB)
++WINLIB = $(WINTTYLIB) $(WINX11LIB)
diff --git a/games-roguelike/nethack/files/3.4.3-bison.patch b/games-roguelike/nethack/files/3.4.3-bison.patch
new file mode 100644
index 000000000000..0bec63a7b6ae
--- /dev/null
+++ b/games-roguelike/nethack/files/3.4.3-bison.patch
@@ -0,0 +1,18 @@
+--- nethack-3.4.3/util/Makefile 2004-08-21 01:09:06.724326360 +0200
++++ nethack-3.4.3.new//util/Makefile 2004-08-21 01:08:03.852884272 +0200
+@@ -101,11 +101,11 @@
+
+ # yacc/lex programs to use to generate *_comp.h, *_lex.c, and *_yacc.c.
+ # if, instead of yacc/lex you have bison/flex, comment/uncomment the following.
+-YACC = yacc
+-LEX = lex
+-# YACC = bison -y
++#YACC = yacc
++#LEX = lex
++ YACC = bison -y
+ # YACC = byacc
+-# LEX = flex
++ LEX = flex
+
+ # these are the names of the output files from YACC/LEX. Under MS-DOS
+ # and similar systems, they may differ
diff --git a/games-roguelike/nethack/files/3.4.3-default-options.patch b/games-roguelike/nethack/files/3.4.3-default-options.patch
new file mode 100644
index 000000000000..83ab94a95375
--- /dev/null
+++ b/games-roguelike/nethack/files/3.4.3-default-options.patch
@@ -0,0 +1,29 @@
+--- include/config.h.orig 2003-06-21 20:44:00.000000000 -0400
++++ include/config.h 2003-06-21 20:46:42.000000000 -0400
+@@ -172,2 +172,2 @@
+-#define COMPRESS "/usr/bin/compress" /* Lempel-Ziv compression */
+-#define COMPRESS_EXTENSION ".Z" /* compress's extension */
++#define COMPRESS "/bin/bzip2" /* Lempel-Ziv compression */
++#define COMPRESS_EXTENSION ".bz2" /* compress's extension */
+@@ -188 +188 @@
+-/* #define DLB */ /* not supported on all platforms */
++#define DLB 1 /* not supported on all platforms */
+@@ -207 +207 @@
+-# define HACKDIR "/usr/games/lib/nethackdir"
++# define HACKDIR "GENTOO_HACKDIR"
+@@ -303 +303 @@
+-/* #define VISION_TABLES */ /* use vision tables generated at compile time */
++#define VISION_TABLES 1 /* use vision tables generated at compile time */
+--- include/unixconf.h.orig 2003-06-21 20:47:54.000000000 -0400
++++ include/unixconf.h 2003-06-21 20:48:39.000000000 -0400
+@@ -40 +40 @@
+-/* #define LINUX */ /* Another Unix clone */
++#define LINUX 1 /* Another Unix clone */
+@@ -135 +135 @@
+-/* #define TIMED_DELAY */ /* usleep() */
++#define TIMED_DELAY 1
+--- src/Makefile.orig 2003-06-21 20:55:36.000000000 -0400
++++ src/Makefile 2003-06-21 20:55:49.000000000 -0400
+@@ -234 +234 @@
+-WINTTYLIB = -ltermlib
++WINTTYLIB = -lncurses
diff --git a/games-roguelike/nethack/files/3.4.3-gentoo-paths.patch b/games-roguelike/nethack/files/3.4.3-gentoo-paths.patch
new file mode 100644
index 000000000000..af86cd1fe637
--- /dev/null
+++ b/games-roguelike/nethack/files/3.4.3-gentoo-paths.patch
@@ -0,0 +1,18 @@
+--- include/unixconf.h.orig 2003-08-07 23:18:03.070299152 -0400
++++ include/unixconf.h 2003-08-07 23:18:39.699730632 -0400
+@@ -96,13 +96,13 @@
+ */
+
+ /* #define NO_FILE_LINKS */ /* if no hard links */
+-/* #define LOCKDIR "/usr/games/lib/nethackdir" */ /* where to put locks */
++#define LOCKDIR "GENTOO_STATEDIR"
+
+ /*
+ * If you want the static parts of your playground on a read-only file
+ * system, define VAR_PLAYGROUND to be where the variable parts are kept.
+ */
+-/* #define VAR_PLAYGROUND "/var/lib/games/nethack" */
++#define VAR_PLAYGROUND "GENTOO_STATEDIR"
+
+
+ /*
diff --git a/games-roguelike/nethack/files/3.4.3-macos.patch b/games-roguelike/nethack/files/3.4.3-macos.patch
new file mode 100644
index 000000000000..d5aad3810878
--- /dev/null
+++ b/games-roguelike/nethack/files/3.4.3-macos.patch
@@ -0,0 +1,11 @@
+--- nethack-3.4.3/win/Qt/qt_win.cpp.orig 2005-11-22 21:24:03.000000000 +0100
++++ nethack-3.4.3/win/Qt/qt_win.cpp 2005-11-22 21:25:26.000000000 +0100
+@@ -102,7 +102,7 @@
+ #include "qt_xpms.h"
+
+ #include <dirent.h>
+-#ifdef Q_WS_MACX
++#ifdef __APPLE__
+ # include <sys/malloc.h>
+ #else
+ # include <malloc.h>
diff --git a/games-roguelike/nethack/files/dot.nethackrc b/games-roguelike/nethack/files/dot.nethackrc
new file mode 100644
index 000000000000..55899338cee7
--- /dev/null
+++ b/games-roguelike/nethack/files/dot.nethackrc
@@ -0,0 +1,92 @@
+#
+# Nethack configuration file.
+#
+# Please read the Guidebook in /usr/share/doc/nethack or at www.nethack.org.
+#
+# Naming this file $(HOME)/.nethackrc or setting the environment
+# variable NETHACKOPTIONS to point to its full path name elsewhere tells
+# NetHack to use X11 windowing (provided the executable was compiled with
+# that ability).
+#
+# SET YOUR WINDOW TYPE
+# Your windowtype choices are: GENTOO_WINDOWTYPES
+#
+OPTIONS=windowtype:GENTOO_DEFWINDOWTYPE
+#OPTIONS=color
+#OPTIONS=name:player
+#OPTIONS=gender:male
+#OPTIONS=fruit:mango
+#OPTIONS=dogname:Izchak
+#OPTIONS=catname:Chun-Li
+#OPTIONS=horsename:Marlon
+
+# Suggested for qt:
+#OPTIONS=number_pad,menustyle:partial,!time,showexp
+#OPTIONS=hilite_pet,toptenwin,msghistory:200,windowtype:Qt
+
+# The font settings below are for X11 untiled
+#
+# There are 17 object symbols and various graphics symbols.
+# The descriptions of these symbols can be found in dat/opthelp.
+#
+#
+# Font: nh10 (10x20)
+#
+#OBJECTS= 180 183 188 192 181 184 182 189 190 196 \
+# 191 194 193 187 185 186 195
+#
+#DUNGEON= 032 025 018 013 012 014 011 015 023 024 \
+# 022 021 128 129 130 131 132 035 035 133 \
+# 134 135 136 137 145 146 144 124 143 142 \
+# 141 140 149 150 031 031 147 148 031 161 \
+# 140
+#
+#TRAPS= 138 138 138 138 138 138 138 138 138 138 \
+# 138 138 138 138 138 139 138 138 138 138 \
+# 138 138
+#
+#EFFECTS= 151 152 153 154 155 156 157 158 \
+# 159 160 161 162 \
+# 163 164 165 166 167 168 169 170 \
+# 171 172 173 174 175 176 177 178 179
+#
+#
+# Font: ibm (8x14)
+#
+#OBJECTS= 207 210 215 219 208 211 209 216 217 223 \
+# 218 221 220 214 212 213 222
+#
+#DUNGEON= 032 128 129 130 131 132 133 134 135 136 \
+# 137 138 139 045 124 142 143 035 035 144 \
+# 145 146 147 148 155 156 227 124 154 153 \
+# 152 151 159 160 200 200 157 158 250 170 \
+# 151
+#
+#TRAPS= 149 149 149 149 149 149 149 149 149 149 \
+# 149 149 149 149 149 150 149 149 149 149 \
+# 149 149
+#
+#EFFECTS= 161 162 163 164 165 166 167 168 \
+# 169 170 171 172 \
+# 173 174 175 176 177 178 179 180 \
+# 181 182 183 184 185 186 187 188 189
+#
+#
+# Font: a "standard" font like 6x13
+# Note that this version is unlikely to work on a tty on a Unix system because
+# many of these characters are also control characters.
+#
+#DUNGEON = 032 025 018 013 012 014 011 015 023 024 \
+# 022 021 031 045 124 043 043 035 035 031 \
+# 035 001 060 062 060 062 019 124 092 035 \
+# 123 125 031 125 046 046 035 035 046 127 \
+# 125
+#
+#TRAPS= 094 094 094 094 094 094 094 094 094 094 \
+# 094 094 094 094 094 002 094 094 094 094 \
+# 094 094
+#
+#EFFECTS= 124 045 092 047 042 033 041 040 \
+# 048 035 064 042 \
+# 047 045 092 124 124 092 045 047 \
+# 047 064 092 064 064 064 092 064 047
diff --git a/games-roguelike/nethack/files/nethack-3.4.3-gibc210.patch b/games-roguelike/nethack/files/nethack-3.4.3-gibc210.patch
new file mode 100644
index 000000000000..20675cabf4b4
--- /dev/null
+++ b/games-roguelike/nethack/files/nethack-3.4.3-gibc210.patch
@@ -0,0 +1,13 @@
+--- include/unixconf.h.old 2009-10-07 09:37:46.000000000 +0200
++++ include/unixconf.h 2009-10-07 09:38:05.000000000 +0200
+@@ -293,10 +293,8 @@
+ # endif
+ #else /* therefore SYSV */
+ # ifndef index /* some systems seem to do this for you */
+-#define index strchr
+ # endif
+ # ifndef rindex
+-#define rindex strrchr
+ # endif
+ #endif
+
diff --git a/games-roguelike/nethack/files/nethack-3.4.3-recover.patch b/games-roguelike/nethack/files/nethack-3.4.3-recover.patch
new file mode 100644
index 000000000000..3ad80b072bfc
--- /dev/null
+++ b/games-roguelike/nethack/files/nethack-3.4.3-recover.patch
@@ -0,0 +1,94 @@
+--- doc/recover.6 2003-12-07 18:39:13.000000000 -0500
++++ doc/nethack-recover.6 2010-03-02 16:03:26.978172561 -0500
+@@ -1,9 +1,9 @@
+-.TH RECOVER 6 "9 January 1993"
++.TH NETHACK-RECOVER 6 "9 January 1993"
+ .UC 4
+ .SH NAME
+-recover \- recover a NetHack game interrupted by disaster
++nethack-recover \- nethack-recover a NetHack game interrupted by disaster
+ .SH SYNOPSIS
+-.B recover
++.B nethack-recover
+ [
+ .B \-d
+ .I directory
+@@ -21,7 +21,7 @@
+ The
+ .I base
+ options tell
+-.I recover
++.I nethack-recover
+ which files to process.
+ Each base option specifies recovery of a separate game.
+ .PP
+@@ -56,24 +56,24 @@
+ or "xlock" if the number of concurrent players is being limited.
+ It may be necessary to look in the playground to find the correct
+ base name of the interrupted game.
+-.I recover
++.I nethack-recover
+ will transform these level files into a save file of the same name as
+ .I nethack
+ would have used.
+ .PP
+ Since
+-.I recover
++.I nethack-recover
+ must be able to read and delete files from the playground
+ and create files in the save directory,
+ it has interesting interactions with game security.
+ Giving ordinary players access to
+-.I recover
++.I nethack-recover
+ through setuid or setgid is tantamount to leaving the playground
+ world-writable,
+ with respect to both cheating and messing up other players.
+ For a single-user system, this of course does not change anything,
+ so some of the microcomputer ports install
+-.I recover
++.I nethack-recover
+ by default.
+ .PP
+ For a multi-user system,
+@@ -81,22 +81,22 @@
+ playground to be fed to recover when the host machine boots,
+ and handle game crashes individually.
+ If the user population is sufficiently trustworthy,
+-.I recover
++.I nethack-recover
+ can be installed with the same permissions the
+ .I nethack
+ executable has.
+ In either case,
+-.I recover
++.I nethack-recover
+ is easily compiled from the distribution utility directory.
+ .SH NOTES
+ .PP
+ Like
+ .I nethack
+ itself,
+-.I recover
++.I nethack-recover
+ will overwrite existing savefiles of the same name.
+ Savefiles created by
+-.I recover
++.I nethack-recover
+ are uncompressed;
+ they may be compressed afterwards if desired,
+ but even a compression-using
+@@ -106,11 +106,11 @@
+ nethack(6)
+ .SH BUGS
+ .PP
+-.I recover
++.I nethack-recover
+ makes no attempt to find out if a base name specifies a game in progress.
+ If multiple machines share a playground, this would be impossible to
+ determine.
+ .PP
+-.I recover
++.I nethack-recover
+ should be taught to use the nethack playground locking mechanism to
+ avoid conflicts.
diff --git a/games-roguelike/nethack/metadata.xml b/games-roguelike/nethack/metadata.xml
new file mode 100644
index 000000000000..28f26f28ac64
--- /dev/null
+++ b/games-roguelike/nethack/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>aranea@aixah.de</email>
+ <name>Luis Ressel</name>
+ <description>Maintainer</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">nethack</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-roguelike/nethack/nethack-3.4.3-r3.ebuild b/games-roguelike/nethack/nethack-3.4.3-r3.ebuild
new file mode 100644
index 000000000000..c4a490fbe5a1
--- /dev/null
+++ b/games-roguelike/nethack/nethack-3.4.3-r3.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils toolchain-funcs flag-o-matic user
+
+MY_PV=${PV//.}
+DESCRIPTION="The ultimate old-school single player dungeon exploration game"
+HOMEPAGE="http://www.nethack.org/"
+SRC_URI="mirror://sourceforge/nethack/${PN}-${MY_PV}-src.tgz"
+
+LICENSE="nethack"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~sparc ~x86 ~x86-fbsd"
+IUSE="X"
+
+RDEPEND=">=sys-libs/ncurses-5.2-r5
+ X? (
+ x11-libs/libXaw
+ x11-libs/libXpm
+ x11-libs/libXt
+ )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ X? (
+ x11-proto/xproto
+ x11-apps/bdftopcf
+ x11-apps/mkfontdir
+ )"
+
+BINDIR="/usr/games/bin"
+HACKDIR="/usr/share/games/${PN}"
+STATEDIR="/var/games/${PN}"
+
+NETHACK_GROUP="gamestat"
+
+pkg_setup() {
+ enewgroup gamestat 36
+}
+
+src_prepare() {
+ # This copies the /sys/unix Makefile.*s to their correct places for
+ # seding and compiling.
+ cd "sys/unix" || die "Could not go into sys/unix directory"
+ source setup.sh || die
+
+ cd ../.. || die "Failed to get back to main directory"
+ epatch \
+ "${FILESDIR}"/${PV}-gentoo-paths.patch \
+ "${FILESDIR}"/${PV}-default-options.patch \
+ "${FILESDIR}"/${PV}-bison.patch \
+ "${FILESDIR}"/${PV}-macos.patch \
+ "${FILESDIR}"/${P}-gibc210.patch \
+ "${FILESDIR}"/${P}-recover.patch
+
+ epatch_user
+
+ mv doc/recover.6 doc/nethack-recover.6 || die "Could not rename recover.6 to nethack-recover.6"
+
+ sed -i \
+ -e "s:GENTOO_STATEDIR:${STATEDIR}:" include/unixconf.h \
+ || die "setting statedir"
+ sed -i \
+ -e "s:GENTOO_HACKDIR:${HACKDIR}:" include/config.h \
+ || die "setting hackdir"
+ # set the default pager from the environment bug #52122
+ if [[ -n "${PAGER}" ]] ; then
+ sed -i \
+ -e "115c\#define DEF_PAGER \"${PAGER}\"" \
+ include/unixconf.h \
+ || die "setting statedir"
+ # bug #57410
+ sed -i \
+ -e "s/^DATNODLB =/DATNODLB = \$(DATHELP)/" Makefile \
+ || die "sed Makefile failed"
+ fi
+
+ # sys-libs/ncurses[tinfo]
+ sed -i \
+ -e '/^WINTTYLIB/s| = .*| = '"$(
+ $(tc-getPKG_CONFIG) --libs ncurses
+ )"'|g' \
+ src/Makefile || die
+
+ if use X ; then
+ epatch "${FILESDIR}/${PV}-X-support.patch"
+ fi
+}
+
+src_compile() {
+ local lflags="${LDFLAGS}"
+
+ cd "${S}"/src || die "Failed to enter src directory"
+ append-flags -I../include
+
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LFLAGS="${lflags}" \
+ ../util/makedefs
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LFLAGS="${lflags}"
+ cd "${S}"/util || die "Failed to enter util directory"
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LFLAGS="${lflags}" \
+ recover
+}
+
+src_install() {
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LFLAGS="-L/usr/X11R6/lib" \
+ GAMEPERM=02755 \
+ GAMEUID="root" GAMEGRP="${NETHACK_GROUP}" \
+ PREFIX="${D}/usr" \
+ GAMEDIR="${D}/${HACKDIR}" \
+ SHELLDIR="${D}/${BINDIR}" \
+ install
+
+ # We keep this stuff in STATEDIR instead so tidy up.
+ rm -rf "${D}/${HACKDIR}/"{recover,save}
+
+ exeinto "${BINDIR}"
+ newexe util/recover recover-nethack
+
+ # The final nethack is a sh script. This fixes the hard-coded
+ # HACKDIR directory so it doesn't point to ${D}/usr/share/nethackdir
+ sed -i \
+ -e "s:^\(HACKDIR=\).*:\1${HACKDIR}:" \
+ "${D}/${BINDIR}/nethack" \
+ || die "sed /${BINDIR}/nethack failed"
+
+ doman doc/*.6
+ dodoc doc/*.txt
+
+ # Can be copied to ~/.nethackrc to set options
+ # Add this to /etc/.skel as well, thats the place for default configs
+ insinto "${HACKDIR}"
+ doins "${FILESDIR}/dot.nethackrc"
+
+ local windowtypes="tty"
+ use X && windowtypes="${windowtypes} x11"
+ set -- ${windowtypes}
+ sed -i \
+ -e "s:GENTOO_WINDOWTYPES:${windowtypes}:" \
+ -e "s:GENTOO_DEFWINDOWTYPE:$1:" \
+ "${D}${HACKDIR}/dot.nethackrc" \
+ || die "sed ${HACKDIR}/dot.nethackrc failed"
+ insinto /etc/skel
+ newins "${D}/${HACKDIR}/dot.nethackrc" .nethackrc
+
+ if use X ; then
+ # install nethack fonts
+ cd "${S}/win/X11" || die "Failed to enter win/X11 directory"
+ bdftopcf -o nh10.pcf nh10.bdf || die "Converting fonts failed"
+ bdftopcf -o ibm.pcf ibm.bdf || die "Converting fonts failed"
+ insinto "${HACKDIR}/fonts"
+ doins *.pcf
+ cd "${D}/${HACKDIR}/fonts" || die "Failed to enter fonts directory"
+ mkfontdir || die "The action mkfontdir ${HACKDIR}/fonts failed"
+
+ # copy nethack x application defaults
+ cd "${S}/win/X11" || die "Failed to enter win/X11 directory again"
+ insinto /etc/X11/app-defaults
+ newins NetHack.ad NetHack
+ sed -i \
+ -e 's:^!\(NetHack.tile_file.*\):\1:' \
+ "${D}/etc/X11/app-defaults/NetHack" \
+ || die "sed /etc/X11/app-defaults/NetHack failed"
+ fi
+
+ keepdir "${STATEDIR}/save"
+ rm "${D}/${HACKDIR}/"{logfile,perm,record}
+ make_desktop_entry nethack "Nethack"
+
+ fowners -R "root:${NETHACK_GROUP}" "${STATEDIR}"
+ fperms -R 660 "${STATEDIR}"
+ fperms 770 "${STATEDIR}" "${STATEDIR}/save"
+
+ # FIXME: main executable in /usr/games/share
+}
+
+pkg_preinst() {
+ if has_version "<${CATEGORY}/${PN}-3.4.3-r3" ; then
+ migration=true
+
+ # preserve STATEDIR/{logfile,record} (previous ebuild rev mistakenly removes it)
+ cp "${ROOT}/${STATEDIR}/"{logfile,record} "$T" # nonfatal
+ fi
+}
+
+pkg_postinst() {
+ # we don't want to overwrite existing files, as they contain user data
+ cd "${ROOT}/${STATEDIR}" || die "Failed to enter ${STATEDIR} directory"
+ local files="logfile perm record"
+
+ touch $files && \
+ chmod 660 $files && \
+ chown root:"${NETHACK_GROUP}" $files || \
+ die "Adjustment of file permissions in "${ROOT}/${STATEDIR}" failed"
+
+ if [[ -v migration ]] ; then
+ cp "$T/"{logfile,record} "${ROOT}/${STATEDIR}" # nonfatal
+
+ chown -R root:"${NETHACK_GROUP}" "${ROOT}/${STATEDIR}" && \
+ chmod -R 660 "${ROOT}/${STATEDIR}" && \
+ chmod 770 "${ROOT}/${STATEDIR}" "${ROOT}/${STATEDIR}/save" || \
+ die "Adjustment of file permissions in "${ROOT}/${STATEDIR}" failed"
+ fi
+
+ elog "You may want to look at /etc/skel/.nethackrc for interesting options"
+}
diff --git a/games-roguelike/nethack/nethack-3.4.3-r4.ebuild b/games-roguelike/nethack/nethack-3.4.3-r4.ebuild
new file mode 100644
index 000000000000..7e82eb8964a4
--- /dev/null
+++ b/games-roguelike/nethack/nethack-3.4.3-r4.ebuild
@@ -0,0 +1,231 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils toolchain-funcs flag-o-matic user
+
+MY_PV=${PV//.}
+DESCRIPTION="The ultimate old-school single player dungeon exploration game"
+HOMEPAGE="http://www.nethack.org/"
+SRC_URI="mirror://sourceforge/nethack/${PN}-${MY_PV}-src.tgz"
+
+LICENSE="nethack"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~sparc ~x86 ~x86-fbsd"
+IUSE="X"
+
+RDEPEND=">=sys-libs/ncurses-5.2-r5
+ X? (
+ x11-libs/libXaw
+ x11-libs/libXpm
+ x11-libs/libXt
+ )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ X? (
+ x11-proto/xproto
+ x11-apps/bdftopcf
+ x11-apps/mkfontdir
+ )"
+
+BINDIR="/usr/games/bin"
+HACKDIR="/usr/share/games/${PN}"
+STATEDIR="/var/games/${PN}"
+
+NETHACK_GROUP="gamestat"
+
+pkg_setup() {
+ enewgroup gamestat 36
+}
+
+src_prepare() {
+ # This copies the /sys/unix Makefile.*s to their correct places for
+ # seding and compiling.
+ cd "sys/unix" || die "Could not go into sys/unix directory"
+ source setup.sh || die
+
+ cd ../.. || die "Failed to get back to main directory"
+ epatch \
+ "${FILESDIR}"/${PV}-gentoo-paths.patch \
+ "${FILESDIR}"/${PV}-default-options.patch \
+ "${FILESDIR}"/${PV}-bison.patch \
+ "${FILESDIR}"/${PV}-macos.patch \
+ "${FILESDIR}"/${P}-gibc210.patch \
+ "${FILESDIR}"/${P}-recover.patch
+
+ epatch_user
+
+ mv doc/recover.6 doc/nethack-recover.6 || die "Could not rename recover.6 to nethack-recover.6"
+
+ sed -i \
+ -e "s:GENTOO_STATEDIR:${STATEDIR}:" include/unixconf.h \
+ || die "setting statedir"
+ sed -i \
+ -e "s:GENTOO_HACKDIR:${HACKDIR}:" include/config.h \
+ || die "setting hackdir"
+ # set the default pager from the environment bug #52122
+ if [[ -n "${PAGER}" ]] ; then
+ sed -i \
+ -e "115c\#define DEF_PAGER \"${PAGER}\"" \
+ include/unixconf.h \
+ || die "setting statedir"
+ # bug #57410
+ sed -i \
+ -e "s/^DATNODLB =/DATNODLB = \$(DATHELP)/" Makefile \
+ || die "sed Makefile failed"
+ fi
+
+ # sys-libs/ncurses[tinfo]
+ sed -i \
+ -e '/^WINTTYLIB/s| = .*| = '"$(
+ $(tc-getPKG_CONFIG) --libs ncurses
+ )"'|g' \
+ src/Makefile || die
+
+ if use X ; then
+ epatch "${FILESDIR}/${PV}-X-support.patch"
+ fi
+}
+
+src_compile() {
+ local lflags="${LDFLAGS}"
+
+ cd "${S}"/src || die "Failed to enter src directory"
+ append-flags -I../include
+
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LFLAGS="${lflags}" \
+ ../util/makedefs
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LFLAGS="${lflags}"
+ cd "${S}"/util || die "Failed to enter util directory"
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LFLAGS="${lflags}" \
+ recover
+}
+
+src_install() {
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LFLAGS="-L/usr/X11R6/lib" \
+ GAMEPERM=02755 \
+ GAMEUID="root" GAMEGRP="${NETHACK_GROUP}" \
+ PREFIX="${D}/usr" \
+ GAMEDIR="${D}/${HACKDIR}" \
+ SHELLDIR="${D}/${BINDIR}" \
+ install
+
+ # We keep this stuff in STATEDIR instead so tidy up.
+ rm -rf "${D}/${HACKDIR}/"{nethack,recover,save}
+
+ exeinto "${BINDIR}"
+ newexe src/nethack nethack-bin
+ newexe util/recover recover-nethack
+
+ # The final nethack is a sh script. This fixes the hard-coded
+ # HACKDIR directory so it doesn't point to ${D}/usr/share/nethackdir
+ # and points HACK to BINDIR/nethack-bin (see above)
+ sed -i \
+ -e "s:^\(HACKDIR=\).*$:\1${HACKDIR}:;
+ s:^\(HACK=\).*$:\1${BINDIR}/nethack-bin:" \
+ "${D}/${BINDIR}/nethack" \
+ || die "sed /${BINDIR}/nethack failed"
+
+ doman doc/*.6
+ dodoc doc/*.txt
+
+ # Can be copied to ~/.nethackrc to set options
+ # Add this to /etc/.skel as well, thats the place for default configs
+ insinto "${HACKDIR}"
+ doins "${FILESDIR}/dot.nethackrc"
+
+ local windowtypes="tty"
+ use X && windowtypes="${windowtypes} x11"
+ set -- ${windowtypes}
+ sed -i \
+ -e "s:GENTOO_WINDOWTYPES:${windowtypes}:" \
+ -e "s:GENTOO_DEFWINDOWTYPE:$1:" \
+ "${D}${HACKDIR}/dot.nethackrc" \
+ || die "sed ${HACKDIR}/dot.nethackrc failed"
+ insinto /etc/skel
+ newins "${D}/${HACKDIR}/dot.nethackrc" .nethackrc
+
+ if use X ; then
+ # install nethack fonts
+ cd "${S}/win/X11" || die "Failed to enter win/X11 directory"
+ bdftopcf -o nh10.pcf nh10.bdf || die "Converting fonts failed"
+ bdftopcf -o ibm.pcf ibm.bdf || die "Converting fonts failed"
+ insinto "${HACKDIR}/fonts"
+ doins *.pcf
+ cd "${D}/${HACKDIR}/fonts" || die "Failed to enter fonts directory"
+ mkfontdir || die "The action mkfontdir ${HACKDIR}/fonts failed"
+
+ # copy nethack x application defaults
+ cd "${S}/win/X11" || die "Failed to enter win/X11 directory again"
+ insinto /etc/X11/app-defaults
+ newins NetHack.ad NetHack
+ sed -i \
+ -e 's:^!\(NetHack.tile_file.*\):\1:' \
+ "${D}/etc/X11/app-defaults/NetHack" \
+ || die "sed /etc/X11/app-defaults/NetHack failed"
+ fi
+
+ keepdir "${STATEDIR}/save"
+ rm "${D}/${HACKDIR}/"{logfile,perm,record}
+ make_desktop_entry nethack "Nethack"
+
+ fowners -R "root:${NETHACK_GROUP}" "${STATEDIR}"
+ fperms -R 660 "${STATEDIR}"
+ fperms 770 "${STATEDIR}" "${STATEDIR}/save"
+
+ fowners "root:${NETHACK_GROUP}" ${BINDIR}/nethack-bin
+ fperms g+s ${BINDIR}/nethack-bin
+}
+
+pkg_preinst() {
+ if has_version "<${CATEGORY}/${PN}-3.4.3-r3" ; then
+ migration=true
+
+ # preserve STATEDIR/{logfile,record}
+ # (previous ebuild rev mistakenly removes it)
+ for f in "${ROOT}/${STATEDIR}/"{logfile,record} ; do
+ if [[ -e "$f" ]] ; then
+ cp "$f" "$T" || die "Failed to preserve ${ROOT}/${STATEDIR} files"
+ else
+ touch "$T/$f" || die "Failed to preserve ${ROOT}/${STATEDIR} files"
+ fi
+ done
+ fi
+}
+
+pkg_postinst() {
+ cd "${ROOT}/${STATEDIR}" || die "Failed to enter ${STATEDIR} directory"
+
+ if [[ -v migration ]] ; then
+ cp "$T/"{logfile,record} . || \
+ die "Failed to preserve ${ROOT}/${STATEDIR} files"
+
+ chown -R root:"${NETHACK_GROUP}" . && \
+ chmod -R 660 . && \
+ chmod 770 . save || \
+ die "Adjustment of file permissions in ${ROOT}/${STATEDIR} failed"
+ fi
+
+ # we don't want to overwrite existing files, as they contain user data
+ local files="logfile perm record"
+
+ touch $files && \
+ chmod 660 $files && \
+ chown root:"${NETHACK_GROUP}" $files || \
+ die "Adjustment of file permissions in "${ROOT}/${STATEDIR}" failed"
+
+ elog "You may want to look at /etc/skel/.nethackrc for interesting options"
+}
diff --git a/games-roguelike/powder/Manifest b/games-roguelike/powder/Manifest
new file mode 100644
index 000000000000..c531a554c473
--- /dev/null
+++ b/games-roguelike/powder/Manifest
@@ -0,0 +1 @@
+DIST powder117_src.tar.gz 1891043 SHA256 070346921ee83bc40943b1e1cb576ab3222cecc319fe10f5c138a4deec85e861 SHA512 cdbf67d6d582af39c40cc0872411725d0c296326b21cf8efbe7c7ccd11cd3c831ad129e5e91fb661f938a399ac799509e5123653494f54398c55750026bc6736 WHIRLPOOL 86d5ecfc92b6b1786fa798451f39c6825f8b40483397b240a150ed96d8ad9950d9b3d5cda65f12f8027d997d48d888d15185c48b31dec166b1b1f6ecd462e48e
diff --git a/games-roguelike/powder/metadata.xml b/games-roguelike/powder/metadata.xml
new file mode 100644
index 000000000000..d3c2cc926f0b
--- /dev/null
+++ b/games-roguelike/powder/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>games</herd>
+</pkgmetadata>
diff --git a/games-roguelike/powder/powder-117.ebuild b/games-roguelike/powder/powder-117.ebuild
new file mode 100644
index 000000000000..bcf03f2ad4b9
--- /dev/null
+++ b/games-roguelike/powder/powder-117.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit flag-o-matic games
+
+MY_P=${P/-/}_src
+
+DESCRIPTION="A game in the genre of Rogue, Nethack, and Diablo. Emphasis is on tactical play"
+HOMEPAGE="http://www.zincland.com/powder/"
+SRC_URI="http://www.zincland.com/powder/release/${MY_P}.tar.gz"
+
+LICENSE="CC-Sampling-Plus-1.0"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="media-libs/libsdl[video]"
+RDEPEND=${DEPEND}
+
+S=${WORKDIR}/${MY_P}
+
+src_compile() {
+ append-cxxflags -DCHANGE_WORK_DIRECTORY
+ emake -C port/linux premake
+ emake -C port/linux powder
+}
+
+src_install() {
+ dogamesbin port/linux/${PN}
+ dodoc README.TXT CREDITS.TXT
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ elog "While the highscore is kept, save games are never preserved between"
+ elog "versions. Please wait until your current character dies before upgrading."
+ games_pkg_postinst
+}
diff --git a/games-roguelike/rogue/Manifest b/games-roguelike/rogue/Manifest
new file mode 100644
index 000000000000..d32fbf454203
--- /dev/null
+++ b/games-roguelike/rogue/Manifest
@@ -0,0 +1 @@
+DIST rogue5.4.4-src.tar.gz 209839 SHA256 7d37a61fc098bda0e6fac30799da347294067e8e079e4b40d6c781468e08e8a1 SHA512 d83f6f953ca8e18630cd8e459b7219393969ab1d6b56c2c0d1fd18d5e2a48e3964300916bcf968d52700973bab60811b73183df1ec89b4e37145a0848586402f WHIRLPOOL 09f63827df6378fb2568824bf0cc8381594831f1a26995449567d9a947d34803a4e33e8526c06f7b2c3a04640181cbe1cd4cd663f089e43fd1c45830994b9952
diff --git a/games-roguelike/rogue/metadata.xml b/games-roguelike/rogue/metadata.xml
new file mode 100644
index 000000000000..d3c2cc926f0b
--- /dev/null
+++ b/games-roguelike/rogue/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>games</herd>
+</pkgmetadata>
diff --git a/games-roguelike/rogue/rogue-5.4.4.ebuild b/games-roguelike/rogue/rogue-5.4.4.ebuild
new file mode 100644
index 000000000000..b002abe626e4
--- /dev/null
+++ b/games-roguelike/rogue/rogue-5.4.4.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit games
+
+MY_P=${PN}${PV}
+DESCRIPTION="The original graphical adventure game that spawned an entire genre"
+HOMEPAGE="http://rogue.rogueforge.net/"
+SRC_URI="http://rogue.rogueforge.net/files/rogue5.4/${MY_P}-src.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="sys-libs/ncurses[-tinfo]"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+src_configure() {
+ egamesconf \
+ --enable-scorefile="${GAMES_STATEDIR}/${PN}/${PN}.scr" \
+ --docdir=/usr/share/doc/${PF}
+}
+
+src_install() {
+ default
+ prepgamesdirs
+}
diff --git a/games-roguelike/scourge/Manifest b/games-roguelike/scourge/Manifest
new file mode 100644
index 000000000000..bb26d6d76849
--- /dev/null
+++ b/games-roguelike/scourge/Manifest
@@ -0,0 +1,2 @@
+DIST scourge-0.21.1.data.tar.gz 142093436 SHA256 13f33735ff814eb465d95355dcaaf2cdd16a3329f85aeab1a97ad40919cd1f12 SHA512 3701aba0f70d71aeb0e185e808e34cea62a637809a9b4c14fd19bdfbf91d36cf8dafa2a4cfddc3ee493827b40eea657fcdddc8277c57a635bc8ca8e3286376be WHIRLPOOL 7764cc3f01fd8083db243e96de8b2c9aad778d64442aa81a7e4bfb2e7f4dd17faa7cb6ec97b2329e37145342b56af931c64514f4e661be5a2243d6980586cf42
+DIST scourge-0.21.1.src.tar.gz 8146157 SHA256 e5d3dc784bc117a3fe2f4449c74cb896310760ae5a82a50f8c1045705416cef3 SHA512 e530a8f7bddc1969a02a8b9a8b272f6f60d2c4830d23d96fc671cb79a2c4097fb9c5c0c262004a8157448b601bf58f9bbff95dd6d98275a28d3d404c339ce2ad WHIRLPOOL 58f275515dd1e345059ab79a920ee974733009c26d862ddaa20e29353fb059ba54bf282dda582f05fb66c77bcbcdeb3d3d70975a274550ba2817e1ea996a0ab0
diff --git a/games-roguelike/scourge/files/scourge-0.21.1-automake-1.13.patch b/games-roguelike/scourge/files/scourge-0.21.1-automake-1.13.patch
new file mode 100644
index 000000000000..44b817e55cb3
--- /dev/null
+++ b/games-roguelike/scourge/files/scourge-0.21.1-automake-1.13.patch
@@ -0,0 +1,11 @@
+--- scourge-0.21.1.src/scourge/configure.in
++++ scourge-0.21.1.src/scourge/configure.in
+@@ -4,7 +4,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+ AC_INIT(src/scourge.h)
+ AM_INIT_AUTOMAKE(scourge, "0.21")
+-AM_CONFIG_HEADER(config.h)
++AC_CONFIG_HEADERS(config.h)
+
+ dnl internationalization macros
+ AC_GNU_SOURCE
diff --git a/games-roguelike/scourge/files/scourge-0.21.1-gcc47.patch b/games-roguelike/scourge/files/scourge-0.21.1-gcc47.patch
new file mode 100644
index 000000000000..50c5cac32934
--- /dev/null
+++ b/games-roguelike/scourge/files/scourge-0.21.1-gcc47.patch
@@ -0,0 +1,12 @@
+--- src/squirrel/squtils.h.old 2012-08-30 18:06:43.474037926 +0200
++++ src/squirrel/squtils.h 2012-08-30 18:14:13.300261523 +0200
+@@ -8,6 +8,9 @@
+ #define SQ_FREE(__ptr,__size) sq_vm_free(__ptr,__size);
+ #define SQ_REALLOC(__ptr,__oldsize,__size) sq_vm_realloc(__ptr,__oldsize,__size);
+
++void *sq_vm_realloc(void *p,SQUnsignedInteger oldsize,SQUnsignedInteger size);
++void sq_vm_free(void *p,SQUnsignedInteger size);
++
+ //sqvector mini vector class, supports objects by value
+ template<typename T> class sqvector
+ {
diff --git a/games-roguelike/scourge/metadata.xml b/games-roguelike/scourge/metadata.xml
new file mode 100644
index 000000000000..f243e01d74db
--- /dev/null
+++ b/games-roguelike/scourge/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <upstream>
+ <remote-id type="sourceforge">scourge</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-roguelike/scourge/scourge-0.21.1.ebuild b/games-roguelike/scourge/scourge-0.21.1.ebuild
new file mode 100644
index 000000000000..88523d8f7583
--- /dev/null
+++ b/games-roguelike/scourge/scourge-0.21.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit autotools eutils wxwidgets games
+
+DESCRIPTION="A graphical rogue-like adventure game"
+HOMEPAGE="http://scourgeweb.org/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.src.tar.gz
+ mirror://sourceforge/${PN}/${P}.data.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+RDEPEND="virtual/glu
+ virtual/opengl
+ media-libs/freetype:2
+ media-libs/libsdl[joystick,video]
+ media-libs/sdl-image[png]
+ media-libs/sdl-net
+ media-libs/sdl-mixer[vorbis]
+ media-libs/sdl-ttf
+ virtual/libintl"
+DEPEND="${RDEPEND}
+ sys-devel/gettext"
+
+S=${WORKDIR}/${PN}
+
+src_prepare() {
+ # bug #257601
+ sed -i \
+ -e '/AC_CHECK_HEADERS.*glext/ s:):, [#include <GL/gl.h>] ):' \
+ configure.in \
+ || die "sed failed"
+ sed -i \
+ -e '/snprintf/s/tmp, 256/tmp, sizeof(tmp)/' \
+ src/scourgehandler.cpp || die
+ epatch "${FILESDIR}"/${P}-gcc47.patch \
+ "${FILESDIR}"/${P}-automake-1.13.patch
+ mv configure.{in,ac} || die
+ eautoreconf
+}
+
+src_configure() {
+ egamesconf \
+ --with-data-dir="${GAMES_DATADIR}"/${PN} \
+ --localedir=/usr/share/locale
+}
+
+src_install() {
+ default
+ insinto "${GAMES_DATADIR}"/${PN}
+ doins -r ../scourge_data/*
+ doicon assets/scourge.png
+ make_desktop_entry scourge S.C.O.U.R.G.E.
+ prepgamesdirs
+}
diff --git a/games-roguelike/slashem/Manifest b/games-roguelike/slashem/Manifest
new file mode 100644
index 000000000000..40e43ac64f3a
--- /dev/null
+++ b/games-roguelike/slashem/Manifest
@@ -0,0 +1,2 @@
+DIST conf12s.tar.gz 4788 SHA256 76b5d0527434276db4876610651a0dc73698012b1cf93449c63a516355cd06f5
+DIST se007e7f2.tar.gz 5218698 SHA256 a520817f1fe19302f27db22a9c1762c27a669f7491e84bd22790ea4f67136b49
diff --git a/games-roguelike/slashem/files/0.0.7E7/GTK.configure b/games-roguelike/slashem/files/0.0.7E7/GTK.configure
new file mode 100644
index 000000000000..49c14fe6e5a0
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/GTK.configure
@@ -0,0 +1,22 @@
+configure config_h $toplevel/include/config.h
+BEGIN
+ undefine GNOME_GRAPHICS
+ define GTK_GRAPHICS
+ define GTK_PROXY
+END
+configure src_Makefile $toplevel/src/Makefile
+BEGIN
+ undefine WINGNOMESRC
+ undefine WINGNOMEOBJ
+ undefine WINGNOMELIB
+ define WINGTKSRC
+ define WINGTKOBJ
+ define WINGTKLIB
+END
+
+configure Makefile $toplevel/Makefile
+BEGIN
+ undefine CNF_SHARE_GNOMEND
+ define CNF_SHARE_GTKND
+ define CNF_SHARE_GTKPROXYND
+END
diff --git a/games-roguelike/slashem/files/0.0.7E7/Gentoo.configure b/games-roguelike/slashem/files/0.0.7E7/Gentoo.configure
new file mode 100644
index 000000000000..f10d73df2893
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/Gentoo.configure
@@ -0,0 +1,5 @@
+configure config_h $toplevel/include/config.h
+BEGIN
+ redefine COMPRESS \"/bin/gzip\"
+END
+
diff --git a/games-roguelike/slashem/files/0.0.7E7/Proxy.configure b/games-roguelike/slashem/files/0.0.7E7/Proxy.configure
new file mode 100644
index 000000000000..56e79cbf3fcb
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/Proxy.configure
@@ -0,0 +1,24 @@
+configure config_h $toplevel/include/config.h
+BEGIN
+ define PROXY_GRAPHICS
+END
+
+configure src_Makefile $toplevel/src/Makefile
+BEGIN
+ define WINPROXYSRC
+ define PROXYUTLSRC
+ define PROXYCOMSRC
+ define PROXYCLNTSRC
+
+ define WINPROXYOBJ
+ define PROXYUTLOBJ
+ define PROXYCOMOBJ
+ define PROXYCLNTOBJ
+
+ define WINPROXYLIB
+END
+
+configure Makefile $toplevel/Makefile
+BEGIN
+ define CNF_SHARE_PROXYND
+END
diff --git a/games-roguelike/slashem/files/0.0.7E7/X11.configure b/games-roguelike/slashem/files/0.0.7E7/X11.configure
new file mode 100644
index 000000000000..8c9e362eb9ff
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/X11.configure
@@ -0,0 +1,18 @@
+configure config_h $toplevel/include/config.h
+BEGIN
+ define X11_GRAPHICS
+END
+
+configure src_Makefile $toplevel/src/Makefile
+BEGIN
+ define WINX11SRC
+ define WINX11OBJ
+ define WINX11LIB
+ redefine WINX11LIB "-lXaw -lXmu -lXext -lXt -lXpm -lX11"
+END
+
+configure Makefile $toplevel/Makefile
+BEGIN
+ define CNF_SHARE_X11ND
+ redefine CNF_SHARE_X11ND "x11bigtiles x11tiles SlashEM.ad pet_mark.xbm rip.xpm"
+END
diff --git a/games-roguelike/slashem/files/0.0.7E7/dot.slashemrc b/games-roguelike/slashem/files/0.0.7E7/dot.slashemrc
new file mode 100644
index 000000000000..518e8d67addc
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/dot.slashemrc
@@ -0,0 +1,112 @@
+#
+# Slash'EM configuration file.
+#
+# Naming this file $(HOME)/.slashemrc (for UNIX) or setting the environment
+# variable SLASHEMOPTIONS to point to its full path name elsewhere tells
+# Slash'EM to use X11 windowing and fonts (provided the executable was
+# compiled with that ability).
+#
+# SET YOUR WINDOW TYPE
+# Your windowtype choices are: GENTOO_WINDOWTYPES
+#
+OPTIONS=windowtype:tty
+
+TILESET=name:Small, file:x11tiles
+TILESET=name:Big, file:x11bigtiles, transparent
+TILESET=name:Big 3D, file:x11big3dtiles, transparent, pseudo3D
+
+# These tile definitions are used by the SDL/GL interface
+TILESET=name:gl 3D, file:gltile64.png, transparent, pseudo3D
+TILESET=name:gl Big, file:gltile32.png, transparent
+TILESET=name:gl Small, file:gltile16.png, transparent
+
+OPTIONS=tiles:Big
+#
+#
+#OPTIONS=toptenwin,hilite_pet,color,number_pad:2,verbose,news
+#OPTIONS=confirm,fixinv,noautopickup,safe_pet,sortpack,tombstone
+#OPTIONS=fruit:pineapple,dogname:Dhairrhuwyth
+#OPTIONS=male,catname:Ghisteslwchlohm
+#
+# There are 17 object symbols and various graphics symbols.
+# The descriptions of these symbols can be found in dat/opthelp.
+#
+#
+# Font: nh10 (10x20)
+#
+#OBJECTS= 180 183 188 192 181 184 182 189 190 196 \
+# 191 194 193 187 185 186 195
+#
+#DUNGEON= 032 025 018 013 012 014 011 015 023 024 \
+# 022 021 128 129 130 131 132 035 035 133 \
+# 134 135 136 137 145 146 144 124 143 142 \
+# 143 141 140 149 150 031 031 147 148 031 \
+# 161 140
+#
+#TRAPS= 138 138 138 138 138 138 138 138 138 138 \
+# 138 138 138 138 138 139 138 138 138 138 \
+# 138 138
+#
+#EFFECTS= 151 152 153 154 155 156 157 158 \
+# 159 160 161 162 \
+# 163 164 165 166 167 168 169 170 \
+# 171 172 173 174 175 176 177 178 179 \
+# 171 172 173 174 175 176 177 178 179 \
+# 171 172 173 174 175 176 177 178 179 \
+# 171 172 173 174 175 176 177 178 179 \
+# 171 172 173 174 175 176 177 178 179 \
+# 171 172 173 174 175 176 177 178 179 \
+# 171 172 173 174 175 176 177 178 179
+#
+#
+# Font: ibm (8x14)
+#
+#OBJECTS= 207 210 215 219 208 211 209 216 217 223 \
+# 218 221 220 214 212 213 222
+#
+#DUNGEON= 032 128 129 130 131 132 133 134 135 136 \
+# 137 138 139 045 124 142 143 035 035 144 \
+# 145 146 147 148 155 156 227 124 154 153 \
+# 154 152 151 159 160 200 200 157 158 250 \
+# 170 151
+#
+#TRAPS= 149 149 149 149 149 149 149 149 149 149 \
+# 149 149 149 149 149 150 149 149 149 149 \
+# 149 149
+#
+#EFFECTS= 161 162 163 164 165 166 167 168 \
+# 169 170 171 172 \
+# 173 174 175 176 177 178 179 180 \
+# 181 182 183 184 185 186 187 188 189 \
+# 181 182 183 184 185 186 187 188 189 \
+# 181 182 183 184 185 186 187 188 189 \
+# 181 182 183 184 185 186 187 188 189 \
+# 181 182 183 184 185 186 187 188 189 \
+# 181 182 183 184 185 186 187 188 189 \
+# 181 182 183 184 185 186 187 188 189
+#
+#
+# Font: a "standard" font like 6x13
+# Note that this version is unlikely to work on a tty on a Unix system because
+# many of these characters are also control characters.
+#
+#DUNGEON = 032 025 018 013 012 014 011 015 023 024 \
+# 022 021 031 045 124 043 043 035 035 031 \
+# 035 001 060 062 060 062 019 124 092 035 \
+# 092 123 125 031 125 046 046 035 035 046 \
+# 127 125
+#
+#TRAPS= 094 094 094 094 094 094 094 094 094 094 \
+# 094 094 094 094 094 002 094 094 094 094 \
+# 094 094
+#
+#EFFECTS= 124 045 092 047 042 033 041 040 \
+# 048 035 064 042 \
+# 047 045 092 124 124 092 045 047 \
+# 047 064 092 064 064 064 092 064 047 \
+# 047 064 092 064 064 064 092 064 047 \
+# 047 064 092 064 064 064 092 064 047 \
+# 047 064 092 064 064 064 092 064 047 \
+# 047 064 092 064 064 064 092 064 047 \
+# 047 064 092 064 064 064 092 064 047 \
+# 047 064 092 064 064 064 092 064 047
diff --git a/games-roguelike/slashem/files/0.0.7E7/gnome.configure b/games-roguelike/slashem/files/0.0.7E7/gnome.configure
new file mode 100644
index 000000000000..a3178b28d04f
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/gnome.configure
@@ -0,0 +1,21 @@
+configure config_h $toplevel/include/config.h
+BEGIN
+ define GNOME_GRAPHICS
+ undefine GTK_GRAPHICS
+END
+
+configure src_Makefile $toplevel/src/Makefile
+BEGIN
+ undefine WINGTKSRC
+ undefine WINGTKOBJ
+ undefine WINGTKLIB
+ define WINGNOMESRC
+ define WINGNOMEOBJ
+ define WINGNOMELIB
+END
+
+configure Makefile $toplevel/Makefile
+BEGIN
+ undefine CNF_SHARE_GTKND
+ define CNF_SHARE_GNOMEND
+END
diff --git a/games-roguelike/slashem/files/0.0.7E7/makefile.patch b/games-roguelike/slashem/files/0.0.7E7/makefile.patch
new file mode 100644
index 000000000000..4f5af5534987
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/makefile.patch
@@ -0,0 +1,27 @@
+diff -Naurd slashem/sys/unix/Makefile.top slashem-0.0.7E6/sys/unix/Makefile.top
+--- slashem/sys/unix/Makefile.top 2003-12-02 13:46:08.000000000 +0200
++++ slashem-0.0.7E6/sys/unix/Makefile.top 2004-03-02 21:08:55.718790760 +0200
+@@ -290,7 +290,7 @@
+ $(MAKE) dofiles-$${target-nodlb}
+ cp src/$(GAME) $(FILE_AREA_UNSHARE)
+ cp util/recover $(FILE_AREA_UNSHARE)
+- cp dat/license doc/Guidebook.txt $(FILE_AREA_DOC)
++# cp dat/license doc/Guidebook.txt $(FILE_AREA_DOC)
+ # cp win/Qt/KDE/kslashem.kdelnk $(KDEDIR)/share/applnk/Games
+ -rm -f $(SHELLDIR)/$(GAME)
+ sed -e 's;/usr/games/lib/nethackdir;$(FILE_AREA_UNSHARE);' \
+@@ -302,10 +302,10 @@
+ $(CHGRP) $(GAMEGRP) $(GAME) recover )
+ chmod $(GAMEPERM) $(FILE_AREA_UNSHARE)/$(GAME)
+ chmod $(EXEPERM) $(FILE_AREA_UNSHARE)/recover
+- -( cd $(FILE_AREA_DOC) ; \
+- $(CHOWN) $(GAMEUID) license Guidebook.txt ; \
+- $(CHGRP) $(GAMEGRP) license Guidebook.txt ; \
+- chmod $(FILEPERM) license Guidebook.txt )
++# -( cd $(FILE_AREA_DOC) ; \
++# $(CHOWN) $(GAMEUID) license Guidebook.txt ; \
++# $(CHGRP) $(GAMEGRP) license Guidebook.txt ; \
++# chmod $(FILEPERM) license Guidebook.txt )
+ -$(CHOWN) $(GAMEUID) $(SHELLDIR)/$(GAME)
+ $(CHGRP) $(GAMEGRP) $(SHELLDIR)/$(GAME)
+ chmod $(EXEPERM) $(SHELLDIR)/$(GAME)
diff --git a/games-roguelike/slashem/files/0.0.7E7/opengl.configure b/games-roguelike/slashem/files/0.0.7E7/opengl.configure
new file mode 100644
index 000000000000..37466c28655c
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/opengl.configure
@@ -0,0 +1,10 @@
+configure config_h $toplevel/include/config.h
+BEGIN
+ define GL_GRAPHICS
+END
+
+configure src_Makefile $toplevel/src/Makefile
+BEGIN
+ define WINGLLIB
+END
+
diff --git a/games-roguelike/slashem/files/0.0.7E7/prepare-gui.configure b/games-roguelike/slashem/files/0.0.7E7/prepare-gui.configure
new file mode 100644
index 000000000000..803bd67a7354
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/prepare-gui.configure
@@ -0,0 +1,67 @@
+configure config_h $toplevel/include/config.h
+BEGIN
+ undefine X11_GRAPHICS
+ undefine QT_GRAPHICS
+ undefine GTK_GRAPHICS
+ undefine GNOME_GRAPHICS
+ undefine SDL_GRAPHICS
+ undefine GL_GRAPHICS
+ undefine PROXY_GRAPHICS
+END
+
+configure src_Makefile $toplevel/src/Makefile
+BEGIN
+ undefine WINX11SRC
+ undefine WINX11OBJ
+ undefine WINX11LIB
+
+ undefine WINQTSRC
+ undefine WINQTOBJ
+ undefine WINQTLIB
+
+ undefine WINGTKSRC
+ undefine WINGTKOBJ
+ undefine WINGTKLIB
+
+ undefine WINGNOMESRC
+ undefine WINGNOMEOBJ
+ undefine WINGNOMELIB
+
+ undefine WINPROXYSRC
+ undefine PROXYUTLSRC
+ undefine PROXYCOMSRC
+ undefine PROXYCLNTSRC
+
+ undefine WINPROXYOBJ
+ undefine PROXYUTLOBJ
+ undefine PROXYCOMOBJ
+ undefine PROXYCLNTOBJ
+
+ undefine WINPROXYLIB
+
+ undefine WINGLSRC
+ undefine WINGLOBJ
+ undefine WINGLLIB
+ undefine WINSDLLIB
+
+ undefine WINSRC
+ undefine WINOBJ
+ undefine WINLIB
+ define -C "to support all standard windowing systems" WINSRC
+ define -C "to support all standard windowing systems" WINOBJ
+ define -C "to support all standard windowing systems" WINLIB
+END
+
+configure Makefile $toplevel/Makefile
+BEGIN
+ undefine CNF_SHARE_QTND
+ undefine CNF_SHARE_X11ND
+ undefine CNF_SHARE_GTKND
+ undefine CNF_SHARE_GTKPROXYND
+ undefine CNF_SHARE_GLND
+ undefine CNF_SHARE_GNOMEND
+ undefine CNF_SHARE_PROXYND
+ redefine CNF_SHARE_DATND " \$(CNF_SHARE_QTND) \$(CNF_SHARE_X11ND) \\\
+ \$(CNF_SHARE_GTKND) \$(CNF_SHARE_GTKPROXYND) \$(CNF_SHARE_GLND) \\\
+ \$(CNF_SHARE_GNOMEND) \$(CNF_SHARE_PROXYND) "
+END
diff --git a/games-roguelike/slashem/files/0.0.7E7/proxy.slashemrc b/games-roguelike/slashem/files/0.0.7E7/proxy.slashemrc
new file mode 100644
index 000000000000..f28cdafb7b07
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/proxy.slashemrc
@@ -0,0 +1,4 @@
+TILESET=name:Small tiles, file:gltile16.png, transparent
+TILESET=name:Big tiles, file:gltile32.png, transparent
+TILESET=name:Big 3D tiles, file:gltile64.png, transparent, pseudo3D
+OPTIONS=tiles:Big 3D tiles
diff --git a/games-roguelike/slashem/files/0.0.7E7/qt.configure b/games-roguelike/slashem/files/0.0.7E7/qt.configure
new file mode 100644
index 000000000000..8e96c5004431
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/qt.configure
@@ -0,0 +1,23 @@
+configure config_h $toplevel/include/config.h
+BEGIN
+ define QT_GRAPHICS
+END
+
+configure src_Makefile $toplevel/src/Makefile
+BEGIN
+ define WINQTSRC
+ define WINQTOBJ
+ define WINQTLIB
+ define QTDIR
+ qtdir2=`echo /usr/lib/qt-2.*`
+ define QTDIR "${QTDIR:-$qtdir2}"
+ undefine CXXFLAGS
+ define CXXFLAGS
+ undefine LINK
+ define -C "Qt is C++" LINK
+END
+
+configure Makefile $toplevel/Makefile
+BEGIN
+ define CNF_SHARE_QTND
+END
diff --git a/games-roguelike/slashem/files/0.0.7E7/sdl.configure b/games-roguelike/slashem/files/0.0.7E7/sdl.configure
new file mode 100644
index 000000000000..f0c9e187ce14
--- /dev/null
+++ b/games-roguelike/slashem/files/0.0.7E7/sdl.configure
@@ -0,0 +1,16 @@
+configure config_h $toplevel/include/config.h
+BEGIN
+ define SDL_GRAPHICS
+END
+
+configure src_Makefile $toplevel/src/Makefile
+BEGIN
+ define WINGLSRC
+ define WINGLOBJ
+ define WINSDLLIB
+END
+
+configure Makefile $toplevel/Makefile
+BEGIN
+ define CNF_SHARE_GLND
+END
diff --git a/games-roguelike/slashem/metadata.xml b/games-roguelike/slashem/metadata.xml
new file mode 100644
index 000000000000..17ecb6b48aa0
--- /dev/null
+++ b/games-roguelike/slashem/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <upstream>
+ <remote-id type="sourceforge">slashem</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-roguelike/slashem/slashem-0.0.772.ebuild b/games-roguelike/slashem/slashem-0.0.772.ebuild
new file mode 100644
index 000000000000..a8d0a2662a01
--- /dev/null
+++ b/games-roguelike/slashem/slashem-0.0.772.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils flag-o-matic games
+
+SE_VER="0.0.7E7"
+SE_FIXVER="${SE_VER}F2"
+SE_PN="se007e7f2.tar.gz"
+SE_CONF="conf12s.tar.gz"
+
+DESCRIPTION="Super Lotsa Added Stuff Hack - Extended Magic. A Nethack Variant"
+HOMEPAGE="http://www.slashem.org/"
+#SRC_URI="http://www.juiblex.co.uk/nethack/slashem/${SE_PN}"
+SRC_URI="mirror://sourceforge/slashem/${SE_PN}
+ http://www.juiblex.co.uk/nethack/config/${SE_CONF}"
+
+LICENSE="nethack"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="X sdl opengl"
+
+XDEPEND="x11-libs/libXaw
+ x11-libs/libXmu
+ x11-libs/libXext
+ x11-libs/libXt
+ x11-libs/libXpm
+ x11-libs/libX11
+ x11-libs/libSM
+ x11-libs/libICE
+ x11-libs/libXau
+ x11-libs/libXdmcp"
+
+# qt? ( =dev-qt/qt2* ) this version has overflow bugs #79720
+RDEPEND=">=sys-libs/ncurses-5.2-r5
+ X? ( ${XDEPEND} )
+ opengl? ( virtual/opengl
+ media-libs/libsdl )
+ sdl? ( media-libs/libsdl )"
+DEPEND="${RDEPEND}
+ dev-util/yacc"
+
+HACKDIR=${GAMES_STATEDIR}/${PN}
+S=${WORKDIR}/slashem-${SE_FIXVER}
+
+src_unpack() {
+ unpack ${SE_PN}
+ cd "${S}"
+ EPATCH_SUFFIX="patch"
+ epatch "${FILESDIR}"/${SE_VER}
+
+ # This copies the /sys/unix Makefile.*s to their correct places for
+ # seding and compiling.
+ append-flags -I../include -I/usr/X11R6/include
+
+ cd "${S}"/sys/unix
+ source setup.sh || die
+
+ unpack ${SE_CONF}
+ cp -f "${FILESDIR}"/${SE_VER}/*.configure . || die
+ for c in RedHat9 FHS20 Gentoo prepare-gui Proxy ; do
+ ./config ${c} ../..
+ done
+
+ if use X ; then
+ ./config X11 ../.. || die "X config"
+ fi
+ # SDL require X11
+ for v in sdl ; do #qt
+ use ${v} && { ./config ${v} ../.. || die "${v} config"; }
+ ./config X11 ../.. || die "X config"
+ done
+ # OpenGL requires SDL
+ if use opengl ; then
+ ./config opengl ../.. || die "opengl config"
+ ./config sdl ../.. || die "sdl config"
+ ./config X11 ../.. || die "X config"
+ fi
+
+ cd "${S}"
+ sed -i \
+ -e "s:^\(\# define HACKDIR \).*:\1 \"${HACKDIR}\":" \
+ include/config.h || die "config.h sed"
+ sed -i \
+ -e "s:^\(CFLAGS =\).*:\1 ${CFLAGS}:" \
+ src/Makefile || die "src/makefile sed"
+ sed -i \
+ -e "s:^\(FILE_AREA_UNSHARE =\).*:\1 $(games_get_libdir)/${PN}:" \
+ Makefile || die "makefile sed"
+ sed -i \
+ -e "s:^\(\#define FILE_AREA_UNSHARE \).*:\1\"$(games_get_libdir)/${PN}/\":" \
+ include/unixconf.h || die "unixconf.h sed"
+}
+
+src_compile() {
+ emake all || die "emake all"
+ cd "${S}"/util
+ emake recover || die "emake recover"
+}
+
+src_install() {
+ emake \
+ GAMEPERM=0750 \
+ SHELLDIR="${D}/${GAMES_BINDIR}" \
+ FILE_AREA_VAR="${D}/${HACKDIR}" \
+ FILE_AREA_SAVE="${D}/${HACKDIR}"/save \
+ FILE_AREA_SHARE="${D}/${GAMES_DATADIR}"/${PN} \
+ FILE_AREA_UNSHARE="${D}/$(games_get_libdir)"/${PN} \
+ FILE_AREA_DOC="${D}"/usr/share/doc/${PF} \
+ install || die "emake install failed"
+ dodoc doc/*.txt
+ dodoc dat/license
+ doman doc/slashem.6
+
+ # The final /usr/bin/slashem is a sh script. This fixes the hard-coded
+ # HACKDIR directory so it doesn't point to ${D}/usr/share/slashemdir
+ dosed "s:^\(HACKDIR=\).*:\1${HACKDIR}:" "${GAMES_BINDIR}"/${PN}
+ dosed "s:^\(HACK=\).*:\1$(games_get_libdir)/${PN}/${PN}:" "${GAMES_BINDIR}"/${PN}
+
+ newgamesbin util/recover recover-slashem || die "recover install"
+
+ if use X ; then
+ # install slashem fonts
+ dodir "${GAMES_DATADIR}"/${PN}/fonts
+ cd "${S}"/win/X11
+ bdftopcf -o nh10.pcf nh10.bdf || die "Converting fonts failed"
+ bdftopcf -o ibm.pcf ibm.bdf || die "Converting fonts failed"
+ insinto "${GAMES_DATADIR}"/${PN}/fonts
+ doins *.pcf
+ cd "${D}${GAMES_DATADIR}"/${PN}/fonts
+ mkfontdir || die "The action mkfontdir ${GAMES_DATADIR}/${PN}/fonts failed"
+
+ # copy slashem X application defaults
+ cd "${S}"/win/X11
+ sed -i \
+ -e 's/^\(SlashEM\*font:\).*/\1 fixed/' \
+ -e 's/^\(SlashEM\*map\*font:\).*/\1 fixed/' \
+ -e 's:^!\(SlashEM.tile_file.*\):\1:' \
+ SlashEM.ad || die "Patching SlashEM.ad for X failed"
+
+ insinto /etc/X11/app-defaults
+ newins SlashEM.ad SlashEM || die "app-defaults failed"
+ fi
+
+ insinto "${GAMES_DATADIR}"/${PN}
+ doins "${FILESDIR}"/${SE_VER}/dot.slashemrc
+
+ local windowtypes="tty"
+ #use qt && windowtypes="${windowtypes} qt"
+ use X && windowtypes="${windowtypes} x11"
+ use sdl && windowtypes="${windowtypes} sdl"
+ use opengl && windowtypes="${windowtypes} gl"
+ set -- ${windowtypes}
+ dosed "s:GENTOO_WINDOWTYPES:${windowtypes}:" "${GAMES_DATADIR}"/${PN}/dot.slashemrc
+ insinto /etc/skel
+ newins "${D}/${GAMES_DATADIR}"/${PN}/dot.slashemrc .slashemrc
+ insinto /etc/slashem
+ doins "${FILESDIR}"/${SE_VER}/proxy.slashemrc
+
+ keepdir "${HACKDIR}"/save
+ prepgamesdirs
+ fperms -R g+w "${HACKDIR}"
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ elog "You may want to look at /etc/skel/.slashemrc for interesting options"
+}
diff --git a/games-roguelike/stone-soup/Manifest b/games-roguelike/stone-soup/Manifest
new file mode 100644
index 000000000000..be3d71bb10df
--- /dev/null
+++ b/games-roguelike/stone-soup/Manifest
@@ -0,0 +1,9 @@
+DIST stone-soup.png 1351 SHA256 486da51db277817f6fa59c32b131fa4d50cace7d8c9a84995d22f13a92e384e1 SHA512 4695204c8b936f7aac1ba15b02a6115a955fb2c56aa9a0b968ff007bc9a1a59b608110d60cce5625a9b92cd2c869bbea7e15433a53c1a338622809477a5846bc WHIRLPOOL 621b93f192d9335f57b18a72489450511be993f79ac5ea26529d3424adcddf1c64cb2c996fa1265cbd341a31dabe550253d0302c941fcd751197aff7840acee3
+DIST stone-soup.svg 68546 SHA256 f2b476f57f6e8a9b56bc20ec2da0accac9376fea1ff3e4dbe59e7f2f231eb071 SHA512 dca555271faf704eb8ecdf5ee8a763df42cdeba94e9c163608c438cfc73c6fbf53416547050cad57f477ade191842e701785b65b7a9f18e27ceab05df8f2f75f WHIRLPOOL 49b7e0ca45319b2f016203e02b1e08207e9f0c18501b17f5922f1983fbb6bfabc12a9ca3199697f78561739e253f200bfbe984082bb99e1c8e289e5c41004bed
+DIST stone_soup-0.13.2-nodeps.tar.xz 9512924 SHA256 279ff5f27fdff6f970f97cb2aaebe8915c0b407f781d48275de87571cb356eea SHA512 9f35aec7e4fca61c1a464e7b97974b49cb8b90d84897bd246505ce4db2e0ebf2f758038963364702db4ea87de323d897b6114ae94a89a8ef1753115077bff61a WHIRLPOOL 62b8ac3432126d48dd3693c11535eba55406aec48c7710ecd88f3475fadf1fb075b0aa229193fc8e3d4da6e6bf3d2bedf050911e2031093b3accf7d09e92fe3e
+DIST stone_soup-0.14.1-nodeps.tar.xz 8903416 SHA256 91726d0224b93ba26b5d4bd3762bc5aabe1f02974ea6c937be89dc6c6ab7a4dd SHA512 9b304c9e993b000316aa2e3975c3802caa76a0d8687f20f03560f6cf39d2bc7cbf78fce30d12ccfa671e4679adc0e2a29f98c647fd2d9997b7a045af3956db88 WHIRLPOOL 498ee49cf693de3cabf1a9441b23582acfa63be84215434943b455fd16c84243d5a5871224f11b0cc358325281732335e2f8b9f102db31cf2338b93d80075d27
+DIST stone_soup-0.14.2-nodeps.tar.xz 8843692 SHA256 3f70687690b6dbb427d86eb21b1c65894846526fe20553cabec172ca6bae79bf SHA512 d852a85ce07dff41ad4c5a611e9b21fa30be6db80b72b0e434baad8d449ecfa554e981209389a79e68aa9418c00972a6cf8098bfecdc847750e0ab3fc99e3f70 WHIRLPOOL 8ff166e43d6e99426135575be470645aab34838db871f0b3ce2fd0c8434466e7d9f8bb02d8d0a7e5a5f313c2673856944f4c6dac49c9377f65fe43b1cf90ce9b
+DIST stone_soup-0.15.1-nodeps.tar.xz 8971016 SHA256 44782a3a7b1ca7dac5fc11582b0c862e5696c9ae54120b2cb4ed28d9b9461dc1 SHA512 e84cb045ecdaac5e4b49fc2965f535ae97c11a823debb90b6e649b31638d332241911b6d5490c7293d589817765b3763367a6a6248065ae416269372ed75706e WHIRLPOOL 0b7d6a9be81b0425db1ffc57aaf7d254c747be66b600618b72d6d0936c18478e72caf41819b36deca531d93fa14c890219f47018a92beaf1b5c1ac65c19705a8
+DIST stone_soup-0.15.1.tar.xz 18220524 SHA256 57b336262e0c3dc52503a8a77206f6f1f5bd23bafc898bf966c6032556e14ead SHA512 3f2a32a50cf8f1937d79df4bdd839ae0a9b37ae822ffd3369d2f2c77e0af353ab1db612fbbbc3aa1eab78cce2bbc9b5fd55d6e561cf42e532481a2bfa8602317 WHIRLPOOL 538fca85e717a7d0ea5a9929d0387d266288dcf4e0a7ee0a448f4ac742943fe1c8cf2976fb9aafb4f8dfcfc5b54612acf5b571e6daa9fd63cd0c07ccecf0c02d
+DIST stone_soup-0.15.2.tar.xz 18228128 SHA256 2802e67a7ca366df40ecbd11cf5193909a562bc4842aa17f3ee43606b3f6d1b1 SHA512 b50e415b653d007a75e1b0f5fd88fadbc0661c724f30774f8c4ec0ef182750e0a56b286165179eb7bb91a6544d3466590fc05ce1be0f25963770d3bb875443c9 WHIRLPOOL 0d5c5a1f69845d88327a9d39f0c9266590d71f95d66480903222d66132279b8dd2b1fa6d6dbe68a089f4ed1fc63b4347e90ed6caad8fc9cc620d70ae5887244b
+DIST stone_soup-0.16.1.tar.xz 27835264 SHA256 c3cca203dd7473759648cf225648787e1db687ac8c614293c4faae561fd20242 SHA512 d77dfc2483d309b4bfddd6736c0974825944e36d2c582fc9e133a6a4cc8287200a3207355536b54cb079fd0a0134706f2b4a42b7d5ceecc4a7e23da7d2c3ba07 WHIRLPOOL 882546716037576b77e285a7fdc2f59af032dd034532fe7f82ddc09c4e9000150b8dbf00c6e684b6c21482d810056a2cbf1667be6e84aa08678e1427785fed14
diff --git a/games-roguelike/stone-soup/files/stone-soup-0.13.2-build.patch b/games-roguelike/stone-soup/files/stone-soup-0.13.2-build.patch
new file mode 100644
index 000000000000..5409c493780d
--- /dev/null
+++ b/games-roguelike/stone-soup/files/stone-soup-0.13.2-build.patch
@@ -0,0 +1,99 @@
+From: Julian Ospald <hasufell@gentoo.org>
+Date: Fri Oct 5 13:55:07 UTC 2012
+Subject: build system
+
+ respect flags and compiler
+
+--- a/source/Makefile
++++ b/source/Makefile
+@@ -101,7 +101,7 @@ include Makefile.obj
+ #
+
+
+-CFOTHERS := -pipe $(EXTERNAL_FLAGS)
++CFOTHERS := $(EXTERNAL_FLAGS)
+ CFWARN := -Wall -Wformat-security
+ CFWARN_L := -Wundef
+
+@@ -747,7 +747,6 @@ ifdef FULLDEBUG
+ DEFINES += -DFULLDEBUG
+ endif
+ ifdef DEBUG
+-CFOTHERS := -ggdb $(CFOTHERS)
+ DEFINES += -DDEBUG
+ endif
+ ifndef NOWIZARD
+@@ -1513,7 +1512,7 @@ ifdef ANDROID
+ # prove that tiles were generated properly
+ grep tile_info rltiles/*.cc| head
+ else
+- +$(MAKE) -C $(RLTILES) all ARCH=$(ARCH) TILES=$(TILES)$(WEBTILES)
++ +$(MAKE) -C $(RLTILES) all V=$(V) ARCH=$(ARCH) DEBUG=$(DEBUG) TILES=$(TILES)$(WEBTILES)
+ endif
+
+ $(TILEDEFSRCS) $(TILEDEFHDRS) $(ORIGTILEFILES): build-rltiles
+--- a/source/rltiles/Makefile
++++ b/source/rltiles/Makefile
+@@ -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
+@@ -10,7 +10,7 @@ endif
+ # Also, cross-compilation with no system libraries for host rather than target
+ # is not supported. If host=target, contribs are enough.
+
+-CFLAGS := -O2 -g -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
++CXXFLAGS := -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
+
+ ifdef ANDROID
+ CXXFLAGS :=
+@@ -35,24 +35,24 @@ ifdef TILES
+ PNG_LIB := ../contrib/install/$(ARCH)/lib/libpng.a ../contrib/install/$(ARCH)/lib/libz.a
+ endif
+
+- CFLAGS += $(SDL_CFLAGS) $(PNG_INCLUDE)
+- LDFLAGS += $(SDL_LDFLAGS) $(PNG_LIB)
++ CXXFLAGS += $(SDL_CFLAGS) $(PNG_INCLUDE)
++ LIBS += $(SDL_LDFLAGS) $(PNG_LIB)
+
+- CFLAGS += -DUSE_TILE
++ CXXFLAGS += -DUSE_TILE
+ endif
+
+ ifdef DEBUG
+-CFLAGS += -O0 -DDEBUG -ggdb
++CXXFLAGS += -DDEBUG
+ endif
+
+ ifneq (,$(findstring MINGW,$(uname_S)))
+-LDFLAGS += -lgdi32 -lwinmm
++LIBS += -lgdi32 -lwinmm
+ endif
+ ifeq ($(uname_S),Darwin)
+ LDFLAGS += -framework AppKit -framework AudioUnit -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
+@@ -137,10 +137,10 @@ clean:
+
+ distclean: clean
+
+-%.o: %.cc .cflags
+- $(QUIET_HOSTCXX)$(HOSTCXX) $(CFLAGS) -MMD -c $< -o $@
++%.o: %.cc
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) -c $< -o $@
+
+ $(TILEGEN): $(OBJECTS)
+- $(QUIET_HOSTLINK)$(HOSTCXX) $(OBJECTS) -o $@ $(LDFLAGS)
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(LDFLAGS) $(LIBS)
+
+ .PHONY: all clean distclean
diff --git a/games-roguelike/stone-soup/files/stone-soup-0.14.1-build.patch b/games-roguelike/stone-soup/files/stone-soup-0.14.1-build.patch
new file mode 100644
index 000000000000..5409c493780d
--- /dev/null
+++ b/games-roguelike/stone-soup/files/stone-soup-0.14.1-build.patch
@@ -0,0 +1,99 @@
+From: Julian Ospald <hasufell@gentoo.org>
+Date: Fri Oct 5 13:55:07 UTC 2012
+Subject: build system
+
+ respect flags and compiler
+
+--- a/source/Makefile
++++ b/source/Makefile
+@@ -101,7 +101,7 @@ include Makefile.obj
+ #
+
+
+-CFOTHERS := -pipe $(EXTERNAL_FLAGS)
++CFOTHERS := $(EXTERNAL_FLAGS)
+ CFWARN := -Wall -Wformat-security
+ CFWARN_L := -Wundef
+
+@@ -747,7 +747,6 @@ ifdef FULLDEBUG
+ DEFINES += -DFULLDEBUG
+ endif
+ ifdef DEBUG
+-CFOTHERS := -ggdb $(CFOTHERS)
+ DEFINES += -DDEBUG
+ endif
+ ifndef NOWIZARD
+@@ -1513,7 +1512,7 @@ ifdef ANDROID
+ # prove that tiles were generated properly
+ grep tile_info rltiles/*.cc| head
+ else
+- +$(MAKE) -C $(RLTILES) all ARCH=$(ARCH) TILES=$(TILES)$(WEBTILES)
++ +$(MAKE) -C $(RLTILES) all V=$(V) ARCH=$(ARCH) DEBUG=$(DEBUG) TILES=$(TILES)$(WEBTILES)
+ endif
+
+ $(TILEDEFSRCS) $(TILEDEFHDRS) $(ORIGTILEFILES): build-rltiles
+--- a/source/rltiles/Makefile
++++ b/source/rltiles/Makefile
+@@ -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
+@@ -10,7 +10,7 @@ endif
+ # Also, cross-compilation with no system libraries for host rather than target
+ # is not supported. If host=target, contribs are enough.
+
+-CFLAGS := -O2 -g -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
++CXXFLAGS := -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
+
+ ifdef ANDROID
+ CXXFLAGS :=
+@@ -35,24 +35,24 @@ ifdef TILES
+ PNG_LIB := ../contrib/install/$(ARCH)/lib/libpng.a ../contrib/install/$(ARCH)/lib/libz.a
+ endif
+
+- CFLAGS += $(SDL_CFLAGS) $(PNG_INCLUDE)
+- LDFLAGS += $(SDL_LDFLAGS) $(PNG_LIB)
++ CXXFLAGS += $(SDL_CFLAGS) $(PNG_INCLUDE)
++ LIBS += $(SDL_LDFLAGS) $(PNG_LIB)
+
+- CFLAGS += -DUSE_TILE
++ CXXFLAGS += -DUSE_TILE
+ endif
+
+ ifdef DEBUG
+-CFLAGS += -O0 -DDEBUG -ggdb
++CXXFLAGS += -DDEBUG
+ endif
+
+ ifneq (,$(findstring MINGW,$(uname_S)))
+-LDFLAGS += -lgdi32 -lwinmm
++LIBS += -lgdi32 -lwinmm
+ endif
+ ifeq ($(uname_S),Darwin)
+ LDFLAGS += -framework AppKit -framework AudioUnit -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
+@@ -137,10 +137,10 @@ clean:
+
+ distclean: clean
+
+-%.o: %.cc .cflags
+- $(QUIET_HOSTCXX)$(HOSTCXX) $(CFLAGS) -MMD -c $< -o $@
++%.o: %.cc
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) -c $< -o $@
+
+ $(TILEGEN): $(OBJECTS)
+- $(QUIET_HOSTLINK)$(HOSTCXX) $(OBJECTS) -o $@ $(LDFLAGS)
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(LDFLAGS) $(LIBS)
+
+ .PHONY: all clean distclean
diff --git a/games-roguelike/stone-soup/files/stone-soup-0.14.2-build.patch b/games-roguelike/stone-soup/files/stone-soup-0.14.2-build.patch
new file mode 100644
index 000000000000..5409c493780d
--- /dev/null
+++ b/games-roguelike/stone-soup/files/stone-soup-0.14.2-build.patch
@@ -0,0 +1,99 @@
+From: Julian Ospald <hasufell@gentoo.org>
+Date: Fri Oct 5 13:55:07 UTC 2012
+Subject: build system
+
+ respect flags and compiler
+
+--- a/source/Makefile
++++ b/source/Makefile
+@@ -101,7 +101,7 @@ include Makefile.obj
+ #
+
+
+-CFOTHERS := -pipe $(EXTERNAL_FLAGS)
++CFOTHERS := $(EXTERNAL_FLAGS)
+ CFWARN := -Wall -Wformat-security
+ CFWARN_L := -Wundef
+
+@@ -747,7 +747,6 @@ ifdef FULLDEBUG
+ DEFINES += -DFULLDEBUG
+ endif
+ ifdef DEBUG
+-CFOTHERS := -ggdb $(CFOTHERS)
+ DEFINES += -DDEBUG
+ endif
+ ifndef NOWIZARD
+@@ -1513,7 +1512,7 @@ ifdef ANDROID
+ # prove that tiles were generated properly
+ grep tile_info rltiles/*.cc| head
+ else
+- +$(MAKE) -C $(RLTILES) all ARCH=$(ARCH) TILES=$(TILES)$(WEBTILES)
++ +$(MAKE) -C $(RLTILES) all V=$(V) ARCH=$(ARCH) DEBUG=$(DEBUG) TILES=$(TILES)$(WEBTILES)
+ endif
+
+ $(TILEDEFSRCS) $(TILEDEFHDRS) $(ORIGTILEFILES): build-rltiles
+--- a/source/rltiles/Makefile
++++ b/source/rltiles/Makefile
+@@ -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
+@@ -10,7 +10,7 @@ endif
+ # Also, cross-compilation with no system libraries for host rather than target
+ # is not supported. If host=target, contribs are enough.
+
+-CFLAGS := -O2 -g -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
++CXXFLAGS := -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
+
+ ifdef ANDROID
+ CXXFLAGS :=
+@@ -35,24 +35,24 @@ ifdef TILES
+ PNG_LIB := ../contrib/install/$(ARCH)/lib/libpng.a ../contrib/install/$(ARCH)/lib/libz.a
+ endif
+
+- CFLAGS += $(SDL_CFLAGS) $(PNG_INCLUDE)
+- LDFLAGS += $(SDL_LDFLAGS) $(PNG_LIB)
++ CXXFLAGS += $(SDL_CFLAGS) $(PNG_INCLUDE)
++ LIBS += $(SDL_LDFLAGS) $(PNG_LIB)
+
+- CFLAGS += -DUSE_TILE
++ CXXFLAGS += -DUSE_TILE
+ endif
+
+ ifdef DEBUG
+-CFLAGS += -O0 -DDEBUG -ggdb
++CXXFLAGS += -DDEBUG
+ endif
+
+ ifneq (,$(findstring MINGW,$(uname_S)))
+-LDFLAGS += -lgdi32 -lwinmm
++LIBS += -lgdi32 -lwinmm
+ endif
+ ifeq ($(uname_S),Darwin)
+ LDFLAGS += -framework AppKit -framework AudioUnit -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
+@@ -137,10 +137,10 @@ clean:
+
+ distclean: clean
+
+-%.o: %.cc .cflags
+- $(QUIET_HOSTCXX)$(HOSTCXX) $(CFLAGS) -MMD -c $< -o $@
++%.o: %.cc
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) -c $< -o $@
+
+ $(TILEGEN): $(OBJECTS)
+- $(QUIET_HOSTLINK)$(HOSTCXX) $(OBJECTS) -o $@ $(LDFLAGS)
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(LDFLAGS) $(LIBS)
+
+ .PHONY: all clean distclean
diff --git a/games-roguelike/stone-soup/files/stone-soup-0.15.1-build.patch b/games-roguelike/stone-soup/files/stone-soup-0.15.1-build.patch
new file mode 100644
index 000000000000..5409c493780d
--- /dev/null
+++ b/games-roguelike/stone-soup/files/stone-soup-0.15.1-build.patch
@@ -0,0 +1,99 @@
+From: Julian Ospald <hasufell@gentoo.org>
+Date: Fri Oct 5 13:55:07 UTC 2012
+Subject: build system
+
+ respect flags and compiler
+
+--- a/source/Makefile
++++ b/source/Makefile
+@@ -101,7 +101,7 @@ include Makefile.obj
+ #
+
+
+-CFOTHERS := -pipe $(EXTERNAL_FLAGS)
++CFOTHERS := $(EXTERNAL_FLAGS)
+ CFWARN := -Wall -Wformat-security
+ CFWARN_L := -Wundef
+
+@@ -747,7 +747,6 @@ ifdef FULLDEBUG
+ DEFINES += -DFULLDEBUG
+ endif
+ ifdef DEBUG
+-CFOTHERS := -ggdb $(CFOTHERS)
+ DEFINES += -DDEBUG
+ endif
+ ifndef NOWIZARD
+@@ -1513,7 +1512,7 @@ ifdef ANDROID
+ # prove that tiles were generated properly
+ grep tile_info rltiles/*.cc| head
+ else
+- +$(MAKE) -C $(RLTILES) all ARCH=$(ARCH) TILES=$(TILES)$(WEBTILES)
++ +$(MAKE) -C $(RLTILES) all V=$(V) ARCH=$(ARCH) DEBUG=$(DEBUG) TILES=$(TILES)$(WEBTILES)
+ endif
+
+ $(TILEDEFSRCS) $(TILEDEFHDRS) $(ORIGTILEFILES): build-rltiles
+--- a/source/rltiles/Makefile
++++ b/source/rltiles/Makefile
+@@ -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
+@@ -10,7 +10,7 @@ endif
+ # Also, cross-compilation with no system libraries for host rather than target
+ # is not supported. If host=target, contribs are enough.
+
+-CFLAGS := -O2 -g -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
++CXXFLAGS := -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
+
+ ifdef ANDROID
+ CXXFLAGS :=
+@@ -35,24 +35,24 @@ ifdef TILES
+ PNG_LIB := ../contrib/install/$(ARCH)/lib/libpng.a ../contrib/install/$(ARCH)/lib/libz.a
+ endif
+
+- CFLAGS += $(SDL_CFLAGS) $(PNG_INCLUDE)
+- LDFLAGS += $(SDL_LDFLAGS) $(PNG_LIB)
++ CXXFLAGS += $(SDL_CFLAGS) $(PNG_INCLUDE)
++ LIBS += $(SDL_LDFLAGS) $(PNG_LIB)
+
+- CFLAGS += -DUSE_TILE
++ CXXFLAGS += -DUSE_TILE
+ endif
+
+ ifdef DEBUG
+-CFLAGS += -O0 -DDEBUG -ggdb
++CXXFLAGS += -DDEBUG
+ endif
+
+ ifneq (,$(findstring MINGW,$(uname_S)))
+-LDFLAGS += -lgdi32 -lwinmm
++LIBS += -lgdi32 -lwinmm
+ endif
+ ifeq ($(uname_S),Darwin)
+ LDFLAGS += -framework AppKit -framework AudioUnit -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
+@@ -137,10 +137,10 @@ clean:
+
+ distclean: clean
+
+-%.o: %.cc .cflags
+- $(QUIET_HOSTCXX)$(HOSTCXX) $(CFLAGS) -MMD -c $< -o $@
++%.o: %.cc
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) -c $< -o $@
+
+ $(TILEGEN): $(OBJECTS)
+- $(QUIET_HOSTLINK)$(HOSTCXX) $(OBJECTS) -o $@ $(LDFLAGS)
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(LDFLAGS) $(LIBS)
+
+ .PHONY: all clean distclean
diff --git a/games-roguelike/stone-soup/files/stone-soup-0.15.2-Use-pkg-config-for-linking-to-ncurses.patch b/games-roguelike/stone-soup/files/stone-soup-0.15.2-Use-pkg-config-for-linking-to-ncurses.patch
new file mode 100644
index 000000000000..5ca192d3c929
--- /dev/null
+++ b/games-roguelike/stone-soup/files/stone-soup-0.15.2-Use-pkg-config-for-linking-to-ncurses.patch
@@ -0,0 +1,49 @@
+From 88579f929f0fc777762de1ad0895264ad077e0ee Mon Sep 17 00:00:00 2001
+From: hasufell <hasufell@gentoo.org>
+Date: Mon, 27 Oct 2014 20:48:03 +0100
+Subject: [PATCH 2/2] Use pkg-config for linking to ncurses
+
+Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=527034
+---
+ source/Makefile | 14 ++++++--------
+ 1 file changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/source/Makefile b/source/Makefile
+index df51e70..2db2781 100644
+--- a/source/Makefile
++++ b/source/Makefile
+@@ -956,17 +956,15 @@ endif
+ # Your ncurses library may include Unicode support, and you may not have a
+ # separate libncursesw; this is the case on Mac OS/Darwin.
+ ifdef LIBNCURSES_IS_UNICODE
+-NC_LIB = ncurses
+-NC_INCLUDE = $(NC_PREFIX)/include/ncurses
++NC_LIBS = $(shell $(PKGCONFIG) --lib ncurses 2>/dev/null || echo "-L$(NC_PREFIX)/lib -lncurses")
++NC_CFLAGS = $(shell $(PKGCONFIG) --cflags ncurses 2>/dev/null || echo "-isystem $(NC_PREFIX)/include/ncurses")
+ else
+-NC_LIB = ncursesw
+-NC_INCLUDE = $(NC_PREFIX)/include/ncursesw
++NC_LIBS = $(shell $(PKGCONFIG) --lib ncursesw || echo "-L$(NC_PREFIX)/lib -lncursesw")
++NC_CFLAGS = $(shell $(PKGCONFIG) --cflags ncursesw 2>/dev/null || echo "-isystem $(NC_PREFIX)/include/ncursesw")
+ endif
+
+-INCLUDES_L += -isystem $(NC_INCLUDE)
+-
+ ifndef TILES
+-LIBS += -L$(NC_PREFIX)/lib -l$(NC_LIB)
++LIBS += $(NC_LIBS)
+ endif
+
+ endif
+@@ -1111,7 +1109,7 @@ CFLAGS := $(CFOPTIMIZE) $(CFOTHERS) $(CFWARN) $(CFLAGS)
+ else
+ CFLAGS := $(CFOPTIMIZE) $(CFOTHERS) $(CFWARN)
+ endif
+-CFLAGS_L := $(CFOPTIMIZE_L) $(DEFINES_L) $(CFWARN_L) $(INCLUDES_L) $(CFOTHERS_L)
++CFLAGS_L := $(CFOPTIMIZE_L) $(DEFINES_L) $(CFWARN_L) $(INCLUDES_L) $(CFOTHERS_L) $(NC_CFLAGS)
+ ALL_CFLAGS := $(CFLAGS) $(CFLAGS_L)
+ YACC_CFLAGS := $(ALL_CFLAGS) -Wno-unused-function -Wno-sign-compare -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0
+
+--
+2.1.2
+
diff --git a/games-roguelike/stone-soup/files/stone-soup-0.15.2-respect-flags-and-compiler.patch b/games-roguelike/stone-soup/files/stone-soup-0.15.2-respect-flags-and-compiler.patch
new file mode 100644
index 000000000000..528393a16790
--- /dev/null
+++ b/games-roguelike/stone-soup/files/stone-soup-0.15.2-respect-flags-and-compiler.patch
@@ -0,0 +1,110 @@
+From 14abbe4e6c888148caecbf16231ae48499d6d2b2 Mon Sep 17 00:00:00 2001
+From: hasufell <hasufell@gentoo.org>
+Date: Mon, 27 Oct 2014 20:39:50 +0100
+Subject: [PATCH 1/2] respect flags and compiler
+
+---
+ source/Makefile | 5 ++---
+ source/rltiles/Makefile | 22 +++++++++++-----------
+ 2 files changed, 13 insertions(+), 14 deletions(-)
+
+diff --git a/source/Makefile b/source/Makefile
+index db39bd9..df51e70 100644
+--- a/source/Makefile
++++ b/source/Makefile
+@@ -101,7 +101,7 @@ include Makefile.obj
+ #
+
+
+-CFOTHERS := -pipe $(EXTERNAL_FLAGS)
++CFOTHERS := $(EXTERNAL_FLAGS)
+ CFWARN := -Wall -Wformat-security
+ CFWARN_L := -Wundef
+
+@@ -770,7 +770,6 @@ ifdef FULLDEBUG
+ DEFINES += -DFULLDEBUG
+ endif
+ ifdef DEBUG
+-CFOTHERS := -ggdb $(CFOTHERS)
+ DEFINES += -DDEBUG
+ endif
+ ifndef NOWIZARD
+@@ -1559,7 +1558,7 @@ ifdef ANDROID
+ # prove that tiles were generated properly
+ grep tile_info rltiles/*.cc| head
+ else
+- +$(MAKE) -C $(RLTILES) all ARCH=$(ARCH) TILES=$(TILES)$(WEBTILES)
++ +$(MAKE) -C $(RLTILES) all V=$(V) ARCH=$(ARCH) DEBUG=$(DEBUG) TILES=$(TILES)$(WEBTILES)
+ endif
+
+ $(TILEDEFSRCS) $(TILEDEFHDRS) $(ORIGTILEFILES): build-rltiles
+diff --git a/source/rltiles/Makefile b/source/rltiles/Makefile
+index aacd551..41b3ebe 100644
+--- a/source/rltiles/Makefile
++++ b/source/rltiles/Makefile
+@@ -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
+@@ -10,7 +10,7 @@ endif
+ # Also, cross-compilation with no system libraries for host rather than target
+ # is not supported. If host=target, contribs are enough.
+
+-CFLAGS := -O2 -g -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
++CXXFLAGS := -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
+
+ ifdef ANDROID
+ CXXFLAGS :=
+@@ -35,24 +35,24 @@ ifdef TILES
+ PNG_LIB := ../contrib/install/$(ARCH)/lib/libpng.a ../contrib/install/$(ARCH)/lib/libz.a
+ endif
+
+- CFLAGS += $(SDL_CFLAGS) $(PNG_INCLUDE)
+- LDFLAGS += $(SDL_LDFLAGS) $(PNG_LIB)
++ CXXFLAGS += $(SDL_CFLAGS) $(PNG_INCLUDE)
++ LIBS += $(SDL_LDFLAGS) $(PNG_LIB)
+
+- CFLAGS += -DUSE_TILE
++ CXXFLAGS += -DUSE_TILE
+ endif
+
+ ifdef DEBUG
+-CFLAGS += -O0 -DDEBUG -ggdb
++CXXFLAGS += -DDEBUG
+ endif
+
+ ifneq (,$(findstring MINGW,$(uname_S)))
+-LDFLAGS += -lgdi32 -lwinmm
++LIBS += -lgdi32 -lwinmm
+ endif
+ ifeq ($(uname_S),Darwin)
+ LDFLAGS += -framework AppKit -framework AudioUnit -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
+@@ -137,10 +137,10 @@ clean:
+
+ distclean: clean
+
+-%.o: %.cc .cflags
+- $(QUIET_HOSTCXX)$(HOSTCXX) $(CFLAGS) -MMD -c $< -o $@
++%.o: %.cc
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) -c $< -o $@
+
+ $(TILEGEN): $(OBJECTS)
+- $(QUIET_HOSTLINK)$(HOSTCXX) $(OBJECTS) -o $@ $(LDFLAGS)
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(LDFLAGS) $(LIBS)
+
+ .PHONY: all clean distclean
+--
+2.1.2
+
diff --git a/games-roguelike/stone-soup/files/stone-soup-0.16.1-Use-pkg-config-for-linking-to-ncurses.patch b/games-roguelike/stone-soup/files/stone-soup-0.16.1-Use-pkg-config-for-linking-to-ncurses.patch
new file mode 100644
index 000000000000..5ca192d3c929
--- /dev/null
+++ b/games-roguelike/stone-soup/files/stone-soup-0.16.1-Use-pkg-config-for-linking-to-ncurses.patch
@@ -0,0 +1,49 @@
+From 88579f929f0fc777762de1ad0895264ad077e0ee Mon Sep 17 00:00:00 2001
+From: hasufell <hasufell@gentoo.org>
+Date: Mon, 27 Oct 2014 20:48:03 +0100
+Subject: [PATCH 2/2] Use pkg-config for linking to ncurses
+
+Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=527034
+---
+ source/Makefile | 14 ++++++--------
+ 1 file changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/source/Makefile b/source/Makefile
+index df51e70..2db2781 100644
+--- a/source/Makefile
++++ b/source/Makefile
+@@ -956,17 +956,15 @@ endif
+ # Your ncurses library may include Unicode support, and you may not have a
+ # separate libncursesw; this is the case on Mac OS/Darwin.
+ ifdef LIBNCURSES_IS_UNICODE
+-NC_LIB = ncurses
+-NC_INCLUDE = $(NC_PREFIX)/include/ncurses
++NC_LIBS = $(shell $(PKGCONFIG) --lib ncurses 2>/dev/null || echo "-L$(NC_PREFIX)/lib -lncurses")
++NC_CFLAGS = $(shell $(PKGCONFIG) --cflags ncurses 2>/dev/null || echo "-isystem $(NC_PREFIX)/include/ncurses")
+ else
+-NC_LIB = ncursesw
+-NC_INCLUDE = $(NC_PREFIX)/include/ncursesw
++NC_LIBS = $(shell $(PKGCONFIG) --lib ncursesw || echo "-L$(NC_PREFIX)/lib -lncursesw")
++NC_CFLAGS = $(shell $(PKGCONFIG) --cflags ncursesw 2>/dev/null || echo "-isystem $(NC_PREFIX)/include/ncursesw")
+ endif
+
+-INCLUDES_L += -isystem $(NC_INCLUDE)
+-
+ ifndef TILES
+-LIBS += -L$(NC_PREFIX)/lib -l$(NC_LIB)
++LIBS += $(NC_LIBS)
+ endif
+
+ endif
+@@ -1111,7 +1109,7 @@ CFLAGS := $(CFOPTIMIZE) $(CFOTHERS) $(CFWARN) $(CFLAGS)
+ else
+ CFLAGS := $(CFOPTIMIZE) $(CFOTHERS) $(CFWARN)
+ endif
+-CFLAGS_L := $(CFOPTIMIZE_L) $(DEFINES_L) $(CFWARN_L) $(INCLUDES_L) $(CFOTHERS_L)
++CFLAGS_L := $(CFOPTIMIZE_L) $(DEFINES_L) $(CFWARN_L) $(INCLUDES_L) $(CFOTHERS_L) $(NC_CFLAGS)
+ ALL_CFLAGS := $(CFLAGS) $(CFLAGS_L)
+ YACC_CFLAGS := $(ALL_CFLAGS) -Wno-unused-function -Wno-sign-compare -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0
+
+--
+2.1.2
+
diff --git a/games-roguelike/stone-soup/files/stone-soup-0.16.1-respect-flags-and-compiler.patch b/games-roguelike/stone-soup/files/stone-soup-0.16.1-respect-flags-and-compiler.patch
new file mode 100644
index 000000000000..bf07f4e07edf
--- /dev/null
+++ b/games-roguelike/stone-soup/files/stone-soup-0.16.1-respect-flags-and-compiler.patch
@@ -0,0 +1,110 @@
+From aaa7cde91e4b086164f0c7f46569a34bfbb4e479 Mon Sep 17 00:00:00 2001
+From: hasufell <hasufell@gentoo.org>
+Date: Sun, 3 May 2015 15:05:43 +0200
+Subject: [PATCH] Respect flags and compiler
+
+---
+ Makefile | 5 ++---
+ rltiles/Makefile | 22 +++++++++++-----------
+ 2 files changed, 13 insertions(+), 14 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 8b9efd9..0f37edf 100644
+--- a/Makefile
++++ b/Makefile
+@@ -103,7 +103,7 @@ include Makefile.obj
+ #
+
+
+-CFOTHERS := -pipe $(EXTERNAL_FLAGS)
++CFOTHERS := $(EXTERNAL_FLAGS)
+ CFWARN :=
+ CFWARN_L := -Wall -Wformat-security -Wundef
+
+@@ -809,7 +809,6 @@ ifdef FULLDEBUG
+ DEFINES += -DFULLDEBUG
+ endif
+ ifdef DEBUG
+-CFOTHERS := -ggdb $(CFOTHERS)
+ DEFINES += -DDEBUG
+ endif
+ ifndef NOWIZARD
+@@ -1627,7 +1626,7 @@ ifdef ANDROID
+ # prove that tiles were generated properly
+ grep tile_info rltiles/*.cc| head
+ else
+- +$(MAKE) -C $(RLTILES) all ARCH=$(ARCH) TILES=$(TILES)$(WEBTILES)
++ $(MAKE) -C $(RLTILES) all V=$(V) ARCH=$(ARCH) DEBUG=$(DEBUG) TILES=$(TILES)$(WEBTILES)
+ endif
+
+ $(TILEDEFSRCS) $(TILEDEFHDRS) $(ORIGTILEFILES): build-rltiles
+diff --git a/rltiles/Makefile b/rltiles/Makefile
+index ae11f43..464424f 100644
+--- a/rltiles/Makefile
++++ b/rltiles/Makefile
+@@ -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
+@@ -10,7 +10,7 @@ endif
+ # Also, cross-compilation with no system libraries for host rather than target
+ # is not supported. If host=target, contribs are enough.
+
+-CFLAGS := -O2 -g -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
++CXXFLAGS := -Wall -Wextra -Wno-parentheses -Wno-unused-parameter
+
+ ifdef ANDROID
+ CXXFLAGS :=
+@@ -27,24 +27,24 @@ ifdef TILES
+ PNG_LIB := ../contrib/install/$(ARCH)/lib/libpng.a ../contrib/install/$(ARCH)/lib/libz.a
+ endif
+
+- CFLAGS += $(PNG_INCLUDE)
+- LDFLAGS += $(PNG_LIB)
++ CXXFLAGS += $(PNG_INCLUDE)
++ LIBS += $(PNG_LIB)
+
+- CFLAGS += -DUSE_TILE
++ CXXFLAGS += -DUSE_TILE
+ endif
+
+ ifdef DEBUG
+-CFLAGS += -O0 -DDEBUG -ggdb
++CXXFLAGS += -DDEBUG
+ 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
+ endif
+ ifeq ($(uname_S),Linux)
+-LDFLAGS += -ldl -lpthread
++LIBS += -ldl -lpthread
+ endif
+
+ # Attempt to use a full compiler name, to make
+@@ -129,10 +129,10 @@ clean:
+
+ distclean: clean
+
+-%.o: %.cc .cflags
+- $(QUIET_HOSTCXX)$(HOSTCXX) $(CFLAGS) -MMD -c $< -o $@
++%.o: %.cc
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) -c $< -o $@
+
+ $(TILEGEN): $(OBJECTS)
+- $(QUIET_HOSTLINK)$(HOSTCXX) $(OBJECTS) -o $@ $(LDFLAGS)
++ $(QUIET_HOSTLINK)$(HOSTCXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(LDFLAGS) $(LIBS)
+
+ .PHONY: all clean distclean
+--
+2.3.5
+
diff --git a/games-roguelike/stone-soup/metadata.xml b/games-roguelike/stone-soup/metadata.xml
new file mode 100644
index 000000000000..03a6816b7b85
--- /dev/null
+++ b/games-roguelike/stone-soup/metadata.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <maintainer>
+ <email>hasufell@gentoo.org</email>
+ <name>Julian Ospald</name>
+ </maintainer>
+ <upstream>
+ <doc lang="en">http://crawl.develz.org/wordpress/documentation</doc>
+ <bugs-to>https://crawl.develz.org/mantis/main_page.php</bugs-to>
+ </upstream>
+ <use>
+ <flag name='luajit'>Use <pkg>dev-lang/luajit</pkg> as
+ scripting backend instead of <pkg>dev-lang/lua</pkg>.</flag>
+ <flag name='tiles'>Enable for graphical (tiled) build.
+ (can be enabled on top of ncurses)
+ </flag>
+ <flag name='ncurses'>Enable for console (uses ncurses) based build.
+ (can be enabled on top of tiles)
+ </flag>
+ </use>
+ <longdescription lang="en">
+ Dungeon Crawl Stone Soup is a free roguelike game of exploration
+ and treasure-hunting in dungeons filled with dangerous and
+ unfriendly monsters in a quest for the mystifyingly fabulous Orb
+ of Zot.
+
+ Dungeon Crawl Stone Soup has diverse species and many different
+ character backgrounds to choose from, deep tactical game-play,
+ sophisticated magic, religion and skill systems, and a grand
+ variety of monsters to fight and run from, making each game
+ unique and challenging.
+
+ Dungeon Crawl Stone Soup can be played offline, or online on a
+ public telnet/ssh server thanks to the good folks at
+ crawl.akrasiac.org (CAO) and crawl.develz.org (CDO). These public
+ servers allow you to meet other players’ ghosts, watch other people
+ playing, and, in general, have a blast!
+ </longdescription>
+</pkgmetadata>
+
diff --git a/games-roguelike/stone-soup/stone-soup-0.13.2.ebuild b/games-roguelike/stone-soup/stone-soup-0.13.2.ebuild
new file mode 100644
index 000000000000..f307f6d4fd90
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.13.2.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+## TODO
+# add sound support (no build switch, no sound files)
+
+# check if luajit works
+
+# cross compiling is severly broken
+
+EAPI=5
+VIRTUALX_REQUIRED="manual"
+inherit eutils gnome2-utils virtualx toolchain-funcs games
+
+MY_P="stone_soup-${PV}"
+DESCRIPTION="A role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="http://crawl.develz.org/wordpress/"
+SRC_URI="mirror://sourceforge/crawl-ref/Stone%20Soup/${PV}/${MY_P}-nodeps.tar.xz
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.png
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.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"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug ncurses test +tiles"
+REQUIRED_USE="|| ( ncurses tiles )"
+# test is broken
+# see https://crawl.develz.org/mantis/view.php?id=6121
+#RESTRICT="!debug? ( test )"
+RESTRICT="test"
+
+RDEPEND="
+ dev-db/sqlite:3
+ >=dev-lang/lua-5.1.0[deprecated]
+ sys-libs/zlib
+ ncurses? ( sys-libs/ncurses )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ media-libs/libsdl[X,opengl,video]
+ media-libs/sdl-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ sys-devel/flex
+ virtual/pkgconfig
+ virtual/yacc
+ tiles? (
+ sys-libs/ncurses
+ test? ( ${VIRTUALX_DEPEND} )
+ )"
+
+S=${WORKDIR}/${MY_P}/source
+S_TEST=${WORKDIR}/${MY_P}_test/source
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+
+# if use test ; then
+# cp -av "${WORKDIR}/${MY_P}" "${WORKDIR}/${MY_P}_test" \
+# || die "setting up test-dir failed"
+# fi
+}
+
+src_compile() {
+ export HOSTCXX=$(tc-getBUILD_CXX)
+
+ # leave DATADIR at the top
+ myemakeargs=(
+ DATADIR="${GAMES_DATADIR}/${PN}"
+ V=1
+ prefix="${GAMES_PREFIX}"
+ SAVEDIR="~/.crawl"
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ CFOPTIMIZE="${CXXFLAGS}"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ AR="$(tc-getAR)"
+ RANLIB="$(tc-getRANLIB)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ STRIP=touch
+ )
+
+ if use ncurses ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv crawl "${WORKDIR}"/crawl-ncurses || die ;}
+ fi
+
+ if use tiles ; then
+ emake clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+
+ # for test to work we need to compile with unset DATADIR
+# if use test ; then
+# emake ${myemakeargs[@]:1} -C "${S_TEST}"
+# fi
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" $(usex tiles "TILES=y" "") DESTDIR="${D}" install
+ [[ -e "${WORKDIR}"/crawl-ncurses ]] && dogamesbin "${WORKDIR}"/crawl-ncurses
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}${GAMES_DATADIR}"/${PN}/docs/license
+ dodoc "${WORKDIR}"/${MY_P}/README.{txt,pdf}
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}.png
+ doicon -s scalable "${DISTDIR}"/${PN}.svg
+ make_desktop_entry crawl
+ fi
+
+ prepgamesdirs
+}
+
+src_test() {
+ $(usex tiles "X" "")emake "${myemakeargs[@]:1}" -C "${S_TEST}" test
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-roguelike/stone-soup/stone-soup-0.14.1.ebuild b/games-roguelike/stone-soup/stone-soup-0.14.1.ebuild
new file mode 100644
index 000000000000..00ee24adf757
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.14.1.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+## TODO
+# add sound support (no build switch, no sound files)
+
+# check if luajit works
+
+# cross compiling is severly broken
+
+EAPI=5
+VIRTUALX_REQUIRED="manual"
+inherit eutils gnome2-utils virtualx toolchain-funcs games
+
+MY_P="stone_soup-${PV}"
+DESCRIPTION="A role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="http://crawl.develz.org/wordpress/"
+SRC_URI="mirror://sourceforge/crawl-ref/Stone%20Soup/${PV}/${MY_P}-nodeps.tar.xz
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.png
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.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"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug ncurses test +tiles"
+REQUIRED_USE="|| ( ncurses tiles )"
+# test is broken
+# see https://crawl.develz.org/mantis/view.php?id=6121
+#RESTRICT="!debug? ( test )"
+RESTRICT="test"
+
+RDEPEND="
+ dev-db/sqlite:3
+ >=dev-lang/lua-5.1.0[deprecated]
+ sys-libs/zlib
+ ncurses? ( sys-libs/ncurses )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ media-libs/libsdl[X,opengl,video]
+ media-libs/sdl-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ sys-devel/flex
+ virtual/pkgconfig
+ virtual/yacc
+ tiles? (
+ sys-libs/ncurses
+ test? ( ${VIRTUALX_DEPEND} )
+ )"
+
+S=${WORKDIR}/${MY_P}/source
+S_TEST=${WORKDIR}/${MY_P}_test/source
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+
+# if use test ; then
+# cp -av "${WORKDIR}/${MY_P}" "${WORKDIR}/${MY_P}_test" \
+# || die "setting up test-dir failed"
+# fi
+}
+
+src_compile() {
+ export HOSTCXX=$(tc-getBUILD_CXX)
+
+ # leave DATADIR at the top
+ myemakeargs=(
+ DATADIR="${GAMES_DATADIR}/${PN}"
+ V=1
+ prefix="${GAMES_PREFIX}"
+ SAVEDIR="~/.crawl"
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ CFOPTIMIZE="${CXXFLAGS}"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ AR="$(tc-getAR)"
+ RANLIB="$(tc-getRANLIB)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ STRIP=touch
+ )
+
+ if use ncurses ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv crawl "${WORKDIR}"/crawl-ncurses || die ;}
+ fi
+
+ if use tiles ; then
+ emake clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+
+ # for test to work we need to compile with unset DATADIR
+# if use test ; then
+# emake ${myemakeargs[@]:1} -C "${S_TEST}"
+# fi
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" $(usex tiles "TILES=y" "") DESTDIR="${D}" install
+ [[ -e "${WORKDIR}"/crawl-ncurses ]] && dogamesbin "${WORKDIR}"/crawl-ncurses
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}${GAMES_DATADIR}"/${PN}/docs/license
+ dodoc "${WORKDIR}"/${MY_P}/README.{txt,pdf}
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}.png
+ doicon -s scalable "${DISTDIR}"/${PN}.svg
+ make_desktop_entry crawl
+ fi
+
+ prepgamesdirs
+}
+
+src_test() {
+ $(usex tiles "X" "")emake "${myemakeargs[@]:1}" -C "${S_TEST}" test
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-roguelike/stone-soup/stone-soup-0.14.2.ebuild b/games-roguelike/stone-soup/stone-soup-0.14.2.ebuild
new file mode 100644
index 000000000000..3046fa3120b8
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.14.2.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+## TODO
+# add sound support (no build switch, no sound files)
+
+# check if luajit works
+
+# cross compiling is severly broken
+
+EAPI=5
+VIRTUALX_REQUIRED="manual"
+inherit eutils gnome2-utils virtualx toolchain-funcs games
+
+MY_P="stone_soup-${PV}"
+DESCRIPTION="A role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="http://crawl.develz.org/wordpress/"
+SRC_URI="mirror://sourceforge/crawl-ref/Stone%20Soup/${PV}/${MY_P}-nodeps.tar.xz
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.png
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.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"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug luajit ncurses test +tiles"
+# test is broken
+# see https://crawl.develz.org/mantis/view.php?id=6121
+#RESTRICT="!debug? ( test )"
+RESTRICT="test"
+
+RDEPEND="
+ dev-db/sqlite:3
+ luajit? ( >=dev-lang/luajit-2.0.0 )
+ !luajit? ( >=dev-lang/lua-5.1.0[deprecated] )
+ sys-libs/zlib
+ !ncurses? ( !tiles? ( sys-libs/ncurses ) )
+ ncurses? ( sys-libs/ncurses )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ media-libs/libsdl[X,opengl,video]
+ media-libs/sdl-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ sys-devel/flex
+ virtual/pkgconfig
+ virtual/yacc
+ tiles? (
+ sys-libs/ncurses
+ test? ( ${VIRTUALX_DEPEND} )
+ )"
+
+S=${WORKDIR}/${MY_P}/source
+S_TEST=${WORKDIR}/${MY_P}_test/source
+
+pkg_setup() {
+ games_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
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+
+# if use test ; then
+# cp -av "${WORKDIR}/${MY_P}" "${WORKDIR}/${MY_P}_test" \
+# || die "setting up test-dir failed"
+# fi
+}
+
+src_compile() {
+ export HOSTCXX=$(tc-getBUILD_CXX)
+
+ # leave DATADIR at the top
+ myemakeargs=(
+ USE_LUAJIT=$(usex luajit "yes" "")
+ DATADIR="${GAMES_DATADIR}/${PN}"
+ V=1
+ prefix="${GAMES_PREFIX}"
+ SAVEDIR="~/.crawl"
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ CFOPTIMIZE="${CXXFLAGS}"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ AR="$(tc-getAR)"
+ RANLIB="$(tc-getRANLIB)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ STRIP=touch
+ )
+
+ if use ncurses || (use !ncurses && use !tiles) ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv crawl "${WORKDIR}"/crawl-ncurses || die ;}
+ fi
+
+ if use tiles ; then
+ emake clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+
+ # for test to work we need to compile with unset DATADIR
+# if use test ; then
+# emake ${myemakeargs[@]:1} -C "${S_TEST}"
+# fi
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" $(usex tiles "TILES=y" "") DESTDIR="${D}" prefix_fp="" bin_prefix="${D}${GAMES_BINDIR}" install
+ [[ -e "${WORKDIR}"/crawl-ncurses ]] && dogamesbin "${WORKDIR}"/crawl-ncurses
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}${GAMES_DATADIR}"/${PN}/docs/license
+ dodoc "${WORKDIR}"/${MY_P}/README.{txt,pdf}
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}.png
+ doicon -s scalable "${DISTDIR}"/${PN}.svg
+ make_desktop_entry crawl
+ fi
+
+ prepgamesdirs
+}
+
+src_test() {
+ $(usex tiles "X" "")emake "${myemakeargs[@]:1}" -C "${S_TEST}" test
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+
+ if use tiles && use ncurses ; then
+ elog "Since you have enabled both tiles and ncurses frontends"
+ elog "the ncurses binary is called 'crawl-ncurses' and the"
+ elog "tiles binary is called 'crawl'."
+ fi
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-roguelike/stone-soup/stone-soup-0.15.1-r1.ebuild b/games-roguelike/stone-soup/stone-soup-0.15.1-r1.ebuild
new file mode 100644
index 000000000000..82d0c11169a1
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.15.1-r1.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+## TODO
+# add sound support (no build switch, no sound files)
+
+# cross compiling is severly broken
+
+EAPI=5
+VIRTUALX_REQUIRED="manual"
+inherit eutils gnome2-utils virtualx toolchain-funcs games
+
+MY_P="stone_soup-${PV}"
+DESCRIPTION="A role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="http://crawl.develz.org/wordpress/"
+SRC_URI="mirror://sourceforge/crawl-ref/Stone%20Soup/${PV}/${MY_P}.tar.xz
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.png
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.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"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug luajit ncurses test +tiles"
+# test is broken
+# see https://crawl.develz.org/mantis/view.php?id=6121
+#RESTRICT="!debug? ( test )"
+RESTRICT="test"
+
+RDEPEND="
+ dev-db/sqlite:3
+ luajit? ( >=dev-lang/luajit-2.0.0 )
+ sys-libs/zlib
+ !ncurses? ( !tiles? ( sys-libs/ncurses ) )
+ ncurses? ( sys-libs/ncurses )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ media-libs/libsdl[X,opengl,video]
+ media-libs/sdl-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ sys-devel/flex
+ virtual/pkgconfig
+ virtual/yacc
+ tiles? (
+ sys-libs/ncurses
+ test? ( ${VIRTUALX_DEPEND} )
+ )"
+
+S=${WORKDIR}/${MY_P}/source
+S_TEST=${WORKDIR}/${MY_P}_test/source
+
+pkg_setup() {
+ games_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
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+
+ rm -r contrib/{fonts,freetype,libpng,pcre,sdl,sdl-image,sqlite,zlib} || die
+
+# if use test ; then
+# cp -av "${WORKDIR}/${MY_P}" "${WORKDIR}/${MY_P}_test" \
+# || die "setting up test-dir failed"
+# fi
+}
+
+src_compile() {
+ export HOSTCXX=$(tc-getBUILD_CXX)
+
+ # leave DATADIR at the top
+ myemakeargs=(
+ $(usex luajit "" "BUILD_LUA=yes") # luajit is not bundled
+ USE_LUAJIT=$(usex luajit "yes" "")
+ DATADIR="${GAMES_DATADIR}/${PN}"
+ V=1
+ prefix="${GAMES_PREFIX}"
+ SAVEDIR="~/.crawl"
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ CFOPTIMIZE="${CXXFLAGS}"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ AR="$(tc-getAR)"
+ RANLIB="$(tc-getRANLIB)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ STRIP=touch
+ )
+
+ if use ncurses || (use !ncurses && use !tiles) ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv crawl "${WORKDIR}"/crawl-ncurses || die ;}
+ fi
+
+ if use tiles ; then
+ emake clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+
+ # for test to work we need to compile with unset DATADIR
+# if use test ; then
+# emake ${myemakeargs[@]:1} -C "${S_TEST}"
+# fi
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" $(usex tiles "TILES=y" "") DESTDIR="${D}" prefix_fp="" bin_prefix="${D}${GAMES_BINDIR}" install
+ [[ -e "${WORKDIR}"/crawl-ncurses ]] && dogamesbin "${WORKDIR}"/crawl-ncurses
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}${GAMES_DATADIR}"/${PN}/docs/license
+ dodoc "${WORKDIR}"/${MY_P}/README.{txt,pdf}
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}.png
+ doicon -s scalable "${DISTDIR}"/${PN}.svg
+ make_desktop_entry crawl
+ fi
+
+ prepgamesdirs
+}
+
+src_test() {
+ $(usex tiles "X" "")emake "${myemakeargs[@]:1}" -C "${S_TEST}" test
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+
+ if use tiles && use ncurses ; then
+ elog "Since you have enabled both tiles and ncurses frontends"
+ elog "the ncurses binary is called 'crawl-ncurses' and the"
+ elog "tiles binary is called 'crawl'."
+ fi
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-roguelike/stone-soup/stone-soup-0.15.1.ebuild b/games-roguelike/stone-soup/stone-soup-0.15.1.ebuild
new file mode 100644
index 000000000000..0f703aefe6e7
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.15.1.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+## TODO
+# add sound support (no build switch, no sound files)
+
+# check if luajit works
+
+# cross compiling is severly broken
+
+EAPI=5
+VIRTUALX_REQUIRED="manual"
+inherit eutils gnome2-utils virtualx toolchain-funcs games
+
+MY_P="stone_soup-${PV}"
+DESCRIPTION="A role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="http://crawl.develz.org/wordpress/"
+SRC_URI="mirror://sourceforge/crawl-ref/Stone%20Soup/${PV}/${MY_P}-nodeps.tar.xz
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.png
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.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"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug luajit ncurses test +tiles"
+# test is broken
+# see https://crawl.develz.org/mantis/view.php?id=6121
+#RESTRICT="!debug? ( test )"
+RESTRICT="test"
+
+RDEPEND="
+ dev-db/sqlite:3
+ luajit? ( >=dev-lang/luajit-2.0.0 )
+ !luajit? ( >=dev-lang/lua-5.1.0[deprecated] )
+ sys-libs/zlib
+ !ncurses? ( !tiles? ( sys-libs/ncurses ) )
+ ncurses? ( sys-libs/ncurses )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ media-libs/libsdl[X,opengl,video]
+ media-libs/sdl-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ sys-devel/flex
+ virtual/pkgconfig
+ virtual/yacc
+ tiles? (
+ sys-libs/ncurses
+ test? ( ${VIRTUALX_DEPEND} )
+ )"
+
+S=${WORKDIR}/${MY_P}/source
+S_TEST=${WORKDIR}/${MY_P}_test/source
+
+pkg_setup() {
+ games_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
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+
+# if use test ; then
+# cp -av "${WORKDIR}/${MY_P}" "${WORKDIR}/${MY_P}_test" \
+# || die "setting up test-dir failed"
+# fi
+}
+
+src_compile() {
+ export HOSTCXX=$(tc-getBUILD_CXX)
+
+ # leave DATADIR at the top
+ myemakeargs=(
+ USE_LUAJIT=$(usex luajit "yes" "")
+ DATADIR="${GAMES_DATADIR}/${PN}"
+ V=1
+ prefix="${GAMES_PREFIX}"
+ SAVEDIR="~/.crawl"
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ CFOPTIMIZE="${CXXFLAGS}"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ AR="$(tc-getAR)"
+ RANLIB="$(tc-getRANLIB)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ STRIP=touch
+ )
+
+ if use ncurses || (use !ncurses && use !tiles) ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv crawl "${WORKDIR}"/crawl-ncurses || die ;}
+ fi
+
+ if use tiles ; then
+ emake clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+
+ # for test to work we need to compile with unset DATADIR
+# if use test ; then
+# emake ${myemakeargs[@]:1} -C "${S_TEST}"
+# fi
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" $(usex tiles "TILES=y" "") DESTDIR="${D}" prefix_fp="" bin_prefix="${D}${GAMES_BINDIR}" install
+ [[ -e "${WORKDIR}"/crawl-ncurses ]] && dogamesbin "${WORKDIR}"/crawl-ncurses
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}${GAMES_DATADIR}"/${PN}/docs/license
+ dodoc "${WORKDIR}"/${MY_P}/README.{txt,pdf}
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}.png
+ doicon -s scalable "${DISTDIR}"/${PN}.svg
+ make_desktop_entry crawl
+ fi
+
+ prepgamesdirs
+}
+
+src_test() {
+ $(usex tiles "X" "")emake "${myemakeargs[@]:1}" -C "${S_TEST}" test
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+
+ if use tiles && use ncurses ; then
+ elog "Since you have enabled both tiles and ncurses frontends"
+ elog "the ncurses binary is called 'crawl-ncurses' and the"
+ elog "tiles binary is called 'crawl'."
+ fi
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-roguelike/stone-soup/stone-soup-0.15.2.ebuild b/games-roguelike/stone-soup/stone-soup-0.15.2.ebuild
new file mode 100644
index 000000000000..cd5a282b0c1f
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.15.2.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+## TODO
+# add sound support (no build switch, no sound files)
+
+# cross compiling is severly broken
+
+EAPI=5
+VIRTUALX_REQUIRED="manual"
+inherit eutils gnome2-utils virtualx toolchain-funcs games
+
+MY_P="stone_soup-${PV}"
+DESCRIPTION="Dungeon Crawl Stone Soup is a role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="http://crawl.develz.org/wordpress/"
+SRC_URI="mirror://sourceforge/crawl-ref/Stone%20Soup/${PV}/${MY_P}.tar.xz
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.png
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.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"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug luajit ncurses test +tiles"
+# test is broken
+# see https://crawl.develz.org/mantis/view.php?id=6121
+#RESTRICT="!debug? ( test )"
+RESTRICT="test"
+
+RDEPEND="
+ dev-db/sqlite:3
+ luajit? ( >=dev-lang/luajit-2.0.0 )
+ sys-libs/zlib
+ !ncurses? ( !tiles? ( sys-libs/ncurses ) )
+ ncurses? ( sys-libs/ncurses )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ media-libs/libsdl[X,opengl,video]
+ media-libs/sdl-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ sys-devel/flex
+ virtual/pkgconfig
+ virtual/yacc
+ tiles? (
+ sys-libs/ncurses
+ test? ( ${VIRTUALX_DEPEND} )
+ )"
+
+S=${WORKDIR}/${MY_P}/source
+S_TEST=${WORKDIR}/${MY_P}_test/source
+
+pkg_setup() {
+ games_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
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-respect-flags-and-compiler.patch \
+ "${FILESDIR}"/${P}-Use-pkg-config-for-linking-to-ncurses.patch
+
+ rm -r contrib/{fonts,freetype,libpng,pcre,sdl,sdl-image,sqlite,zlib} || die
+
+# if use test ; then
+# cp -av "${WORKDIR}/${MY_P}" "${WORKDIR}/${MY_P}_test" \
+# || die "setting up test-dir failed"
+# fi
+}
+
+src_compile() {
+ export HOSTCXX=$(tc-getBUILD_CXX)
+
+ # leave DATADIR at the top
+ myemakeargs=(
+ $(usex luajit "" "BUILD_LUA=yes") # luajit is not bundled
+ USE_LUAJIT=$(usex luajit "yes" "")
+ DATADIR="${GAMES_DATADIR}/${PN}"
+ V=1
+ prefix="${GAMES_PREFIX}"
+ SAVEDIR="~/.crawl"
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ CFOPTIMIZE="${CXXFLAGS}"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ AR="$(tc-getAR)"
+ RANLIB="$(tc-getRANLIB)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ STRIP=touch
+ )
+
+ if use ncurses || (use !ncurses && use !tiles) ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv crawl "${WORKDIR}"/crawl-ncurses || die ;}
+ fi
+
+ if use tiles ; then
+ emake clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+
+ # for test to work we need to compile with unset DATADIR
+# if use test ; then
+# emake ${myemakeargs[@]:1} -C "${S_TEST}"
+# fi
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" $(usex tiles "TILES=y" "") DESTDIR="${D}" prefix_fp="" bin_prefix="${D}${GAMES_BINDIR}" install
+ [[ -e "${WORKDIR}"/crawl-ncurses ]] && dogamesbin "${WORKDIR}"/crawl-ncurses
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}${GAMES_DATADIR}"/${PN}/docs/license
+ dodoc "${WORKDIR}"/${MY_P}/README.{txt,pdf}
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}.png
+ doicon -s scalable "${DISTDIR}"/${PN}.svg
+ make_desktop_entry crawl
+ fi
+
+ prepgamesdirs
+}
+
+src_test() {
+ $(usex tiles "X" "")emake "${myemakeargs[@]:1}" -C "${S_TEST}" test
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+
+ if use tiles && use ncurses ; then
+ elog "Since you have enabled both tiles and ncurses frontends"
+ elog "the ncurses binary is called 'crawl-ncurses' and the"
+ elog "tiles binary is called 'crawl'."
+ fi
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-roguelike/stone-soup/stone-soup-0.16.1.ebuild b/games-roguelike/stone-soup/stone-soup-0.16.1.ebuild
new file mode 100644
index 000000000000..bf97822fc556
--- /dev/null
+++ b/games-roguelike/stone-soup/stone-soup-0.16.1.ebuild
@@ -0,0 +1,160 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+## TODO
+# add sound support (no sound files)
+
+EAPI=5
+VIRTUALX_REQUIRED="manual"
+inherit eutils gnome2-utils virtualx toolchain-funcs games
+
+MY_P="stone_soup-${PV}"
+DESCRIPTION="Dungeon Crawl Stone Soup is a role-playing roguelike game of exploration and treasure-hunting in dungeons"
+HOMEPAGE="http://crawl.develz.org/wordpress/"
+SRC_URI="https://crawl.develz.org/release/stone_soup-${PV}.tar.xz
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.png
+ http://dev.gentoo.org/~hasufell/distfiles/${PN}.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"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug luajit ncurses test +tiles"
+# test is broken
+# see https://crawl.develz.org/mantis/view.php?id=6121
+RESTRICT="test"
+
+RDEPEND="
+ dev-db/sqlite:3
+ luajit? ( >=dev-lang/luajit-2.0.0 )
+ sys-libs/zlib
+ !ncurses? ( !tiles? ( sys-libs/ncurses ) )
+ ncurses? ( sys-libs/ncurses )
+ tiles? (
+ media-fonts/dejavu
+ media-libs/freetype:2
+ media-libs/libpng:0
+ media-libs/libsdl2[opengl,video]
+ media-libs/sdl2-image[png]
+ virtual/glu
+ virtual/opengl
+ )"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ sys-devel/flex
+ virtual/pkgconfig
+ virtual/yacc
+ tiles? (
+ sys-libs/ncurses
+ test? ( ${VIRTUALX_DEPEND} )
+ )"
+
+S=${WORKDIR}/${MY_P}/source
+S_TEST=${WORKDIR}/${MY_P}_test/source
+
+pkg_setup() {
+ games_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
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-respect-flags-and-compiler.patch \
+ "${FILESDIR}"/${P}-Use-pkg-config-for-linking-to-ncurses.patch
+
+ rm -r contrib/{fonts,freetype,libpng,pcre,sdl2,sdl2-image,sdl2-mixer,sqlite,zlib} || die
+
+# if use test ; then
+# cp -av "${WORKDIR}/${MY_P}" "${WORKDIR}/${MY_P}_test" \
+# || die "setting up test-dir failed"
+# fi
+}
+
+src_compile() {
+ export HOSTCXX=$(tc-getBUILD_CXX)
+
+ # leave DATADIR at the top
+ myemakeargs=(
+ $(usex luajit "" "BUILD_LUA=yes") # luajit is not bundled
+ USE_LUAJIT=$(usex luajit "yes" "")
+ DATADIR="${GAMES_DATADIR}/${PN}"
+ V=1
+ prefix="${GAMES_PREFIX}"
+ SAVEDIR="~/.crawl"
+ $(usex debug "FULLDEBUG=y DEBUG=y" "")
+ CFOPTIMIZE="${CXXFLAGS}"
+ LDFLAGS="${LDFLAGS}"
+ MAKEOPTS="${MAKEOPTS}"
+ AR="$(tc-getAR)"
+ RANLIB="$(tc-getRANLIB)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ PKGCONFIG="$(tc-getPKG_CONFIG)"
+ STRIP=touch
+ )
+
+ if use ncurses || (use !ncurses && use !tiles) ; then
+ emake "${myemakeargs[@]}"
+ # move it in case we build both variants
+ use tiles && { mv crawl "${WORKDIR}"/crawl-ncurses || die ;}
+ fi
+
+ if use tiles ; then
+ emake clean
+ emake "${myemakeargs[@]}" "TILES=y"
+ fi
+
+ # for test to work we need to compile with unset DATADIR
+# if use test ; then
+# emake ${myemakeargs[@]:1} -C "${S_TEST}"
+# fi
+}
+
+src_install() {
+ emake "${myemakeargs[@]}" $(usex tiles "TILES=y" "") DESTDIR="${D}" prefix_fp="" bin_prefix="${D}${GAMES_BINDIR}" install
+ [[ -e "${WORKDIR}"/crawl-ncurses ]] && dogamesbin "${WORKDIR}"/crawl-ncurses
+
+ # don't relocate docs, needed at runtime
+ rm -rf "${D}${GAMES_DATADIR}"/${PN}/docs/license
+ dodoc "${WORKDIR}"/${MY_P}/README.{txt,pdf}
+
+ # icons and menu for graphical build
+ if use tiles ; then
+ doicon -s 48 "${DISTDIR}"/${PN}.png
+ doicon -s scalable "${DISTDIR}"/${PN}.svg
+ make_desktop_entry crawl
+ fi
+
+ prepgamesdirs
+}
+
+src_test() {
+ $(usex tiles "X" "")emake "${myemakeargs[@]:1}" -C "${S_TEST}" test
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+
+ if use tiles && use ncurses ; then
+ elog "Since you have enabled both tiles and ncurses frontends"
+ elog "the ncurses binary is called 'crawl-ncurses' and the"
+ elog "tiles binary is called 'crawl'."
+ fi
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-roguelike/tome/Manifest b/games-roguelike/tome/Manifest
new file mode 100644
index 000000000000..ad7e69b29de7
--- /dev/null
+++ b/games-roguelike/tome/Manifest
@@ -0,0 +1 @@
+DIST tome-235-src.tar.bz2 2951227 SHA256 8844b0b889bac3943ea2f4d4d43b38e2d91d242a93028e9e07403aaab46d691b SHA512 f456aa91d18397297c213fa67dd14a4d29e024525be99f83b22cbe42f4d426b57fe6115a7124e3ec34de8f351117de525eab996ba7a2a230119e43639c4c9205 WHIRLPOOL 87628c68051ef2a063dc03f261110a010cf48a9fe0ef0e6feb1622b87263a8b9fa5a7d580201faf9e923196a2015d636659835cf2686a774332352cd233b66cb
diff --git a/games-roguelike/tome/files/2.3.5-gentoo-paths.patch b/games-roguelike/tome/files/2.3.5-gentoo-paths.patch
new file mode 100644
index 000000000000..d171a1cf540f
--- /dev/null
+++ b/games-roguelike/tome/files/2.3.5-gentoo-paths.patch
@@ -0,0 +1,31 @@
+diff -rU 1 tome-225-src.orig/src/files.c tome-225-src/src/files.c
+--- tome-225-src.orig/src/files.c 2004-01-14 11:17:02.423263360 -0500
++++ tome-225-src/src/files.c 2004-01-14 11:17:50.074019344 -0500
+@@ -5670,3 +5670,3 @@
+ /* Build the filename */
+- path_build(buf, 1024, ANGBAND_DIR_APEX, "scores.raw");
++ sprintf(buf, "GENTOO_DIR/tome-scores.raw");
+
+@@ -5748,3 +5748,3 @@
+ /* Build the filename */
+- path_build(buf, 1024, ANGBAND_DIR_APEX, "scores.raw");
++ sprintf(buf, "GENTOO_DIR/tome-scores.raw");
+
+@@ -5846,3 +5846,3 @@
+ /* Build the filename */
+- path_build(buf, 1024, ANGBAND_DIR_APEX, "scores.raw");
++ sprintf(buf, "GENTOO_DIR/tome-scores.raw");
+
+@@ -6296,3 +6296,3 @@
+ /* Build the filename */
+- path_build(buf, 1024, ANGBAND_DIR_APEX, "scores.raw");
++ sprintf(buf, "GENTOO_DIR/tome-scores.raw");
+
+diff -rU 1 tome-225-src.orig/src/init2.c tome-225-src/src/init2.c
+--- tome-225-src.orig/src/init2.c 2004-01-14 11:17:02.473255760 -0500
++++ tome-225-src/src/init2.c 2004-01-14 11:17:58.286770816 -0500
+@@ -6686,3 +6686,3 @@
+ /* Build the filename */
+- path_build(buf, 1024, ANGBAND_DIR_APEX, "scores.raw");
++ sprintf(buf, "GENTOO_DIR/tome-scores.raw");
+
diff --git a/games-roguelike/tome/files/tome-2.3.5-noX.patch b/games-roguelike/tome/files/tome-2.3.5-noX.patch
new file mode 100644
index 000000000000..5c5982fe730d
--- /dev/null
+++ b/games-roguelike/tome/files/tome-2.3.5-noX.patch
@@ -0,0 +1,11 @@
+--- makefile.old 2012-05-28 14:02:44.787705444 +0200
++++ makefile 2012-05-28 14:03:44.520524011 +0200
+@@ -458,7 +458,7 @@
+ $(CC) $(PROFILELDFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+
+ $(TOLUA): $(TOLUAOBJS) lua/tolua.c lua/tolualua.c
+- $(CC) $(CFLAGS) $(PROFILELDFLAGS) $(LDFLAGS) -o $@ $(TOLUAOBJS) lua/tolua.c lua/tolualua.c $(LIBS)
++ $(CC) $(CFLAGS) $(PROFILELDFLAGS) $(LDFLAGS) -o $@ $(TOLUAOBJS) lua/tolua.c lua/tolualua.c
+
+ #
+ # An install rule.
diff --git a/games-roguelike/tome/metadata.xml b/games-roguelike/tome/metadata.xml
new file mode 100644
index 000000000000..d3c2cc926f0b
--- /dev/null
+++ b/games-roguelike/tome/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>games</herd>
+</pkgmetadata>
diff --git a/games-roguelike/tome/tome-2.3.5.ebuild b/games-roguelike/tome/tome-2.3.5.ebuild
new file mode 100644
index 000000000000..fce8c6f64d18
--- /dev/null
+++ b/games-roguelike/tome/tome-2.3.5.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils games
+
+MY_PV=${PV//./}
+DESCRIPTION="save the world from Morgoth and battle evil (or become evil ;])"
+HOMEPAGE="http://t-o-m-e.net/"
+SRC_URI="http://t-o-m-e.net/dl/src/tome-${MY_PV}-src.tar.bz2"
+
+LICENSE="Moria"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="X Xaw3d gtk sdl"
+
+RDEPEND=">=sys-libs/ncurses-5
+ X? ( x11-libs/libX11 )
+ Xaw3d? ( x11-libs/libXaw )
+ sdl? (
+ media-libs/sdl-ttf
+ media-libs/sdl-image
+ media-libs/libsdl )
+ gtk? ( >=x11-libs/gtk+-2.12.8:2 ) "
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ x11-misc/makedepend"
+
+S=${WORKDIR}/tome-${MY_PV}-src/src
+
+src_prepare() {
+ mv makefile.std makefile
+ epatch "${FILESDIR}/${PV}-gentoo-paths.patch" \
+ "${FILESDIR}"/${P}-noX.patch
+ sed -i -e '/^CC =/d' makefile || die
+ sed -i -e "s:xx:x:" ../lib/edit/p_info.txt || die
+ sed -i -e "s:GENTOO_DIR:${GAMES_STATEDIR}:" files.c init2.c || die
+
+ find .. -name .cvsignore -exec rm -f \{\} +
+ find ../lib/edit -type f -exec chmod a-x \{\} +
+}
+
+src_compile() {
+ local GENTOO_INCLUDES="" GENTOO_DEFINES="-DUSE_GCU " GENTOO_LIBS="$(pkg-config ncurses --libs)"
+ if use sdl || use X || use gtk || use Xaw3d; then
+ GENTOO_DEFINES="${GENTOO_DEFINES} -DUSE_EGO_GRAPHICS -DUSE_TRANSPARENCY \
+ -DSUPPORT_GAMMA"
+ fi
+ if use sdl || use X || use Xaw3d; then
+ GENTOO_DEFINES="${GENTOO_DEFINES} -DUSE_PRECISE_CMOVIE -DUSE_UNIXSOCK "
+ fi
+ if use sdl; then
+ GENTOO_INCLUDES="${GENTOO_INCLUDES} $(sdl-config --cflags)"
+ GENTOO_DEFINES="${GENTOO_DEFINES} -DUSE_SDL "
+ GENTOO_LIBS="${GENTOO_LIBS} $(sdl-config --libs) -lSDL_image -lSDL_ttf"
+ fi
+ if use X; then
+ GENTOO_INCLUDES="${GENTOO_INCLUDES} -I/usr/X11R6/include "
+ GENTOO_DEFINES="${GENTOO_DEFINES} -DUSE_X11 "
+ GENTOO_LIBS="${GENTOO_LIBS} -L/usr/X11R6/lib -lX11 "
+ fi
+ if use Xaw3d; then
+ GENTOO_INCLUDES="${GENTOO_INCLUDES} -I/usr/X11R6/include "
+ GENTOO_DEFINES="${GENTOO_DEFINES} -DUSE_XAW "
+ GENTOO_LIBS="${GENTOO_LIBS} -L/usr/X11R6/lib -lXaw -lXmu -lXt -lX11 "
+ fi
+ if use gtk; then
+ GENTOO_INCLUDES="${GENTOO_INCLUDES} $(pkg-config gtk+-2.0 --cflags)"
+ GENTOO_DEFINES="${GENTOO_DEFINES} -DUSE_GTK2 "
+ GENTOO_LIBS="${GENTOO_LIBS} $(pkg-config gtk+-2.0 --libs) "
+ GTK_SRC_FILE="main-gtk2.c"
+ GTK_OBJ_FILE="main-gtk2.o"
+ else
+ GTK_SRC_FILE=""
+ GTK_OBJ_FILE=""
+ fi
+ if use amd64; then
+ GENTOO_DEFINES="${GENTOO_DEFINES} -DLUA_NUM_TYPE=int "
+ fi
+ GENTOO_INCLUDES="${GENTOO_INCLUDES} -Ilua -I."
+ GENTOO_DEFINES="${GENTOO_DEFINES} -DUSE_LUA"
+ emake -j1 \
+ INCLUDES="${GENTOO_INCLUDES}" \
+ DEFINES="${GENTOO_DEFINES}" \
+ depend
+ emake ./tolua
+ emake \
+ COPTS="${CFLAGS}" \
+ INCLUDES="${GENTOO_INCLUDES}" \
+ DEFINES="${GENTOO_DEFINES}" \
+ LIBS="${GENTOO_LIBS} -lm" \
+ BINDIR="${GAMES_BINDIR}" \
+ LIBDIR="${GAMES_DATADIR}/${PN}" \
+ GTK_SRC_FILE="${GTK_SRC_FILE}" \
+ GTK_OBJ_FILE="${GTK_OBJ_FILE}"
+}
+
+src_install() {
+ emake -j1 \
+ DESTDIR="${D}" \
+ OWNER="${GAMES_USER}" \
+ BINDIR="${GAMES_BINDIR}" \
+ LIBDIR="${GAMES_DATADIR}/${PN}" install
+ cd ..
+ dodoc *.txt
+
+ dodir "${GAMES_STATEDIR}"
+ touch "${D}/${GAMES_STATEDIR}/${PN}-scores.raw"
+ prepgamesdirs
+ fperms g+w "${GAMES_STATEDIR}/${PN}-scores.raw"
+ #FIXME: something has to be done about this.
+ fperms g+w "${GAMES_DATADIR}/${PN}/data"
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ echo
+ ewarn "ToME ${PV} is not save-game compatible with 2.3.0 and previous versions."
+ echo
+ ewarn "If you have older save files and you wish to continue those games,"
+ ewarn "you'll need to remerge the version of ToME with which you started"
+ ewarn "those save-games."
+}
diff --git a/games-roguelike/tomenet/Manifest b/games-roguelike/tomenet/Manifest
new file mode 100644
index 000000000000..85752091a12a
--- /dev/null
+++ b/games-roguelike/tomenet/Manifest
@@ -0,0 +1 @@
+DIST tomenet-4.5.9.tar.bz2 3012187 SHA256 40ce5068e2ee10ad051241d5c44423bb74a9ef4054260ee692adeccc9b46d4c7 SHA512 1e13e37b209ab274fb6aeafeb270cff0590ffa352b91b61970194e968826bed3fd365c210238a48b067d0882bac737c70250d8846acc816e3c3ac0b3b843ee1d WHIRLPOOL c9106d27be0e9f173eae24d12f79b75818b1dd23d2c1c93dd4a1a707de6ddaf7538de0dce73216d4a32a290245cd4c09dd26bbc3b54e811484a3a44bb2945fa6
diff --git a/games-roguelike/tomenet/files/tomenet-4.5.9-makefile.patch b/games-roguelike/tomenet/files/tomenet-4.5.9-makefile.patch
new file mode 100644
index 000000000000..0dc9fb8171c3
--- /dev/null
+++ b/games-roguelike/tomenet/files/tomenet-4.5.9-makefile.patch
@@ -0,0 +1,75 @@
+--- tomenet-4.5.9.orig/src/makefile
++++ tomenet-4.5.9/src/makefile
+@@ -203,7 +203,7 @@
+ #
+ # This is my compiler of choice, it seems to work most everywhere
+ #
+-CC = gcc
++CC ?= gcc
+
+ # For allowing #if..#else..#endif constructs in LUA files - C. Blue
+ # Note: The flags must contain
+@@ -215,16 +215,26 @@
+ # need to use the gcc invocation below instead.
+ #
+ # cpp variant:
+-CPP = cpp
+-CPPFLAGS = -C -P
++#CPP = cpp
++#CPPFLAGS = -C -P
+ # gcc variant:
+-#CPP = gcc
+-#CPPFLAGS = -x c -E -Wp,-C,-P
++CPP ?= gcc
++CPPFLAGS = -x c -E -Wp,-C,-P
+
+
+ # For variations with X11
+ X11BASE = /usr/X11R6
+
++# defines
++ifdef USE_SDL
++CFLAGS += -DSOUND_SDL $(shell sdl-config --cflags)
++SDL_LIBS = $(shell sdl-config --libs) -lSDL_mixer
++endif
++
++ifdef USE_X
++CFLAGS += -I${X11BASE}/include -DUSE_X11
++LIBS += -L${X11BASE}/lib -lX11
++endif
+
+ ##
+ ## Standard version -- supports X11 (main-x11.c)
+@@ -234,8 +244,11 @@
+ # "CFLAGS", if your machine places files in a weird location.
+ #
+ ## With SDL
+-#CFLAGS = -g -pipe -Wall -DUSE_X11 -I${X11BASE}/include -D_XOPEN_SOURCE -D_BSD_SOURCE -DMEXP=19937 -DSOUND_SDL `sdl-config --cflags`
+-#LIBS = -L${X11BASE}/lib -L/usr/pkg/lib -lX11 -lcrypt -lm `sdl-config --libs` -lSDL_mixer
++
++CFLAGS += -Wall
++CFLAGS += -DUSE_GCU -D_XOPEN_SOURCE -D_BSD_SOURCE -DMEXP=19937
++LIBS += -L/usr/pkg/lib $(shell ${PKG_CONFIG} --libs ncurses) -lcrypt -lm ${SDL_LIBS}
++
+ ##
+ ## Without SDL
+ #CFLAGS = -g -pipe -Wall -DUSE_X11 -I${X11BASE}/include -D_XOPEN_SOURCE -D_BSD_SOURCE -DMEXP=19937
+@@ -257,7 +270,7 @@
+ #
+ ## With SDL
+ CFLAGS = -g -pipe -Wall -DUSE_X11 -DUSE_GCU -I${X11BASE}/include -D_XOPEN_SOURCE -D_BSD_SOURCE -DMEXP=19937 -DSOUND_SDL `sdl-config --cflags` -D_DEFAULT_SOURCE -DACC32
+-LIBS = -L${X11BASE}/lib -L/usr/pkg/lib -lX11 -lncurses -lcrypt -lm `sdl-config --libs` -lSDL_mixer
++LIBS = -L${X11BASE}/lib -L/usr/pkg/lib -lX11 $(shell ${PKG_CONFIG} --libs ncurses) -lcrypt -lm $(shell sdl-config --libs) -lSDL_mixer
+ ##
+ ## Without SDL
+ #CFLAGS = -g -pipe -Wall -DUSE_X11 -DUSE_GCU -I${X11BASE}/include -D_XOPEN_SOURCE -D_BSD_SOURCE -DMEXP=19937
+@@ -357,9 +370,6 @@
+ # Compile a client with 'test client' version/tag
+ tomenet.test: CFLAGS += -DTEST_CLIENT -O0
+
+-# Normal release build
+-tomenet: CFLAGS += -O2
+-
+
+ # Lua
+ SRCS += $(LUASRCS)
diff --git a/games-roguelike/tomenet/files/tomenet-server-wrapper b/games-roguelike/tomenet/files/tomenet-server-wrapper
new file mode 100644
index 000000000000..831fbfb76ed8
--- /dev/null
+++ b/games-roguelike/tomenet/files/tomenet-server-wrapper
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+TOMENET_PATH="@LIBDIR@"
+export TOMENET_PATH
+cd "${TOMENET_PATH}"
+exec tomenet.server.bin "$@"
diff --git a/games-roguelike/tomenet/files/tomenet-wrapper b/games-roguelike/tomenet/files/tomenet-wrapper
new file mode 100644
index 000000000000..2ca29b862176
--- /dev/null
+++ b/games-roguelike/tomenet/files/tomenet-wrapper
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+if [ ! -e ~/.tomenet/.gentoo ]; then
+ LIBDIR="@LIBDIR@"
+ [ -e ~/.tomenet ] || mkdir ~/.tomenet
+
+ ln -s "${LIBDIR}"/game ~/.tomenet/game
+ ln -s "${LIBDIR}"/text ~/.tomenet/text
+ cp -R "${LIBDIR}"/user "${LIBDIR}"/scpt "${LIBDIR}"/xtra ~/.tomenet/
+ [ -e ~/.tomenetrc ] || cp "${LIBDIR}"/.tomenetrc ~/.tomenetrc
+
+ touch ~/.tomenet/.gentoo
+fi
+
+TOMENET_PATH="${HOME}/.tomenet"
+export TOMENET_PATH
+cd "${TOMENET_PATH}"
+exec tomenet.bin "$@"
diff --git a/games-roguelike/tomenet/metadata.xml b/games-roguelike/tomenet/metadata.xml
new file mode 100644
index 000000000000..1712bc53befb
--- /dev/null
+++ b/games-roguelike/tomenet/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <use>
+ <flag name='server'>Compile server support</flag>
+ </use>
+ <longdescription lang="en">
+ TomeNET is a multiplayer fantasy dungeon exploration game based on
+ the works of J.R.R. Tolkien. It is a game that emphasizes intricate,
+ challenging, and varied gameplay over graphics. Hundreds of
+ different monsters in randomly-generated,
+ unpredictable dungeons will strive to slay you by various means,
+ and you counter - if you survive - by developing the skills of your
+ choice and wielding mighty
+ artifacts.
+ </longdescription>
+</pkgmetadata>
+
diff --git a/games-roguelike/tomenet/tomenet-4.5.9.ebuild b/games-roguelike/tomenet/tomenet-4.5.9.ebuild
new file mode 100644
index 000000000000..03bb61bb4d6d
--- /dev/null
+++ b/games-roguelike/tomenet/tomenet-4.5.9.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils gnome2-utils toolchain-funcs games
+
+DESCRIPTION="A MMORPG based on the works of J.R.R. Tolkien"
+HOMEPAGE="http://www.tomenet.eu/"
+SRC_URI="http://www.tomenet.eu/downloads/${P}.tar.bz2"
+
+LICENSE="Moria"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="dedicated server +sound X"
+
+RDEPEND="sys-libs/ncurses
+ !dedicated? (
+ X? (
+ x11-libs/libX11
+ )
+ sound? (
+ media-libs/libsdl[sound]
+ media-libs/sdl-mixer[vorbis,smpeg,mp3]
+ )
+ )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ !dedicated? ( sound? ( app-arch/p7zip[wxwidgets] ) )"
+
+S=${WORKDIR}/${P}/src
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-makefile.patch
+ use server || use dedicated || { rm -r ../lib/{config,data,save} || die ;}
+
+ sed \
+ -e "s#@LIBDIR@#${GAMES_DATADIR}/${PN}#" \
+ "${FILESDIR}"/${PN}-wrapper > "${T}"/${PN} || die
+
+ if use server || use dedicated ; then
+ sed \
+ -e "s#@LIBDIR@#${GAMES_DATADIR}/${PN}#" \
+ "${FILESDIR}"/${PN}-server-wrapper > "${T}"/${PN}.server || die
+ fi
+
+ tc-export PKG_CONFIG
+}
+
+src_compile() {
+ local mytargets="$(usex dedicated "accedit tomenet.server evilmeta" "$(usex server "all" "tomenet")")"
+ emake \
+ $(usex dedicated "" "$(usex X "USE_X=1" "")") \
+ $(usex dedicated "" "$(usex sound "USE_SDL=1" "")") \
+ -f makefile \
+ ${mytargets[@]}
+}
+
+src_install() {
+ dodoc ../TomeNET-Guide.txt
+
+ if ! use dedicated ; then
+ newgamesbin ${PN} ${PN}.bin
+ dogamesbin "${T}"/${PN}
+
+ doicon -s 48 client/tomenet4.png
+ make_desktop_entry ${PN} ${PN} ${PN}4
+ fi
+
+ if use server || use dedicated ; then
+ newgamesbin tomenet.server tomenet.server.bin
+ dogamesbin "${T}"/${PN}.server accedit evilmeta
+ fi
+
+ insinto "${GAMES_DATADIR}/${PN}"
+ doins -r ../lib/*
+ doins ../.tomenetrc
+
+ prepgamesdirs
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+
+ if use sound; then
+ elog "You can get soundpacks from here:"
+ elog ' http://tomenet.net/downloads.php'
+ elog "They must be placed inside ~/.tomenet directory."
+ fi
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-roguelike/wrogue/Manifest b/games-roguelike/wrogue/Manifest
new file mode 100644
index 000000000000..0c0e2c684c11
--- /dev/null
+++ b/games-roguelike/wrogue/Manifest
@@ -0,0 +1 @@
+DIST wrogue-0.8.0b.zip 433553 SHA256 adc79ec9a97b6b60a8b16b6fd548cf349606702e3df74f819537b01d6640483a SHA512 f8da3ccc26e36723bbf7654023cdd73747c2ffcb45420b77cc66495b596cc82ca9d90a2d239b12ea95c1185b11bad332cf41fe1b278ee34af6ff1479eb6e4d81 WHIRLPOOL 17f45cd10b4138e84e487cbe88144a8e82887c318909724912863abd53c958416d728fe65dfd59998c9b024c5fb87808f1b5cb6e469848f1c246392dc47b5e44
diff --git a/games-roguelike/wrogue/files/wrogue-0.8.0b-ldflags.patch b/games-roguelike/wrogue/files/wrogue-0.8.0b-ldflags.patch
new file mode 100644
index 000000000000..3341965e5184
--- /dev/null
+++ b/games-roguelike/wrogue/files/wrogue-0.8.0b-ldflags.patch
@@ -0,0 +1,29 @@
+--- src/linux.mak.old 2010-10-14 11:07:22.000000000 +0200
++++ src/linux.mak 2010-10-14 11:08:00.000000000 +0200
+@@ -19,7 +19,7 @@
+ # common compiler/linker flags
+ #
+ CFLAGS=-I./include -I./lib -std=c89 `sdl-config --cflags`
+-LDFLAGS=-lm `sdl-config --libs`
++LDLIBS=-lm `sdl-config --libs`
+
+
+ SRC=\
+@@ -40,7 +40,7 @@
+ #
+ .PHONY: release
+ release: CFLAGS += -pipe -O2 -fomit-frame-pointer -march=i686
+-release: LDFLAGS += -Wl,-O1
++release: LDLIBS += -Wl,-O1
+ release: STRIP_BINARY = yes
+ release: build
+
+@@ -94,7 +94,7 @@
+ @$(CC) $(CFLAGS) -o $@ -c $<
+
+ $(EXE): $(OBJ)
+- @$(CC) $(OBJ) $(LDFLAGS) -o $@
++ $(CC) $(LDFLAGS) $(OBJ) $(LDLIBS) -o $@
+
+
+
diff --git a/games-roguelike/wrogue/metadata.xml b/games-roguelike/wrogue/metadata.xml
new file mode 100644
index 000000000000..196d419134e9
--- /dev/null
+++ b/games-roguelike/wrogue/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>games</herd>
+ <longdescription lang="en">
+Warp Rogue is a gothic science fantasy roguelike game. It features RPG-like game
+mechanics, recruitable NPCs, and a consistent theme.
+</longdescription>
+ <upstream>
+ <remote-id type="freecode">wrogue</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-roguelike/wrogue/wrogue-0.8.0b.ebuild b/games-roguelike/wrogue/wrogue-0.8.0b.ebuild
new file mode 100644
index 000000000000..54a4fc05467a
--- /dev/null
+++ b/games-roguelike/wrogue/wrogue-0.8.0b.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils games
+
+DESCRIPTION="Gothic science fantasy roguelike game"
+HOMEPAGE="https://freecode.com/projects/wrogue"
+SRC_URI="mirror://gentoo/${P}.zip"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="media-libs/libsdl[video]"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+src_prepare() {
+ sed -i \
+ -e "/AppData\[0\]/ s:AppData.*:strcpy(AppData, \"${GAMES_DATADIR}/${PN}/\");:" \
+ src/lib/appdir.c \
+ || die "sed failed"
+ epatch "${FILESDIR}"/${P}-ldflags.patch
+}
+
+src_compile() {
+ local myCPPFLAGS="-std=c99 -Iinclude -Ilib -Iui -Igenerate"
+ local myCFLAGS="$(sdl-config --cflags) ${CFLAGS}"
+ emake -C src -f linux.mak STRIP_BINARY=NO \
+ CFLAGS="${myCPPFLAGS} ${myCFLAGS}" release
+}
+
+src_install() {
+ dogamesbin ${PN}
+ insinto "${GAMES_DATADIR}/${PN}"
+ doins -r data
+ dodoc changes.txt
+
+ newicon data/ui/icon.bmp ${PN}.bmp
+ make_desktop_entry ${PN} "Warp Rogue" /usr/share/pixmaps/${PN}.bmp
+
+ prepgamesdirs
+}
diff --git a/games-roguelike/zangband/Manifest b/games-roguelike/zangband/Manifest
new file mode 100644
index 000000000000..fd1834b1abce
--- /dev/null
+++ b/games-roguelike/zangband/Manifest
@@ -0,0 +1 @@
+DIST zangband-2.7.4c.tar.gz 2821355 SHA256 3033fc52d0daab6098394a8caaa6572ba64585d7b9deb62800328ca7ba592cdc SHA512 491dfeb72b6eb34f7feaa45d5360014da8eaeccd173dd75b3f7a1c2034e4fb634817493957b75babc0d9600077a80d88529cf2e86769948fc86d05e59958356e WHIRLPOOL 4a6cb2cdcb27449d4f1967c1e502cf111aa703b19ed77b2285a63f4cbd7ed70bb081a30a5d95ca3268c7b65bd975ef6b67179b92cd7357da59dc9e63291986f0
diff --git a/games-roguelike/zangband/files/zangband-2.7.4c-configure.patch b/games-roguelike/zangband/files/zangband-2.7.4c-configure.patch
new file mode 100644
index 000000000000..756ea757845c
--- /dev/null
+++ b/games-roguelike/zangband/files/zangband-2.7.4c-configure.patch
@@ -0,0 +1,51 @@
+--- configure.in.orig
++++ configure.in
+@@ -236,48 +236,5 @@
+ AC_CHECK_FUNCS([Tk_SetClassProcs TkpSync])
+ AC_CHECK_FUNCS([mkstemp usleep getpwuid getpwnam shmget])
+
+-dnl A nice function to test compiler options (like warnings)
+-AC_DEFUN(AC_CHECK_CC_OPT,
+-[FLAG=`echo zangband_cv_cflag_$1 | sed s/-/_/g`
+-AC_CACHE_CHECK([whether ${CC-cc} accepts $1],
+-[$FLAG],
+-[echo 'void f(void); void f(){}' > conftest.c
+-if test -z "`${CC-cc} -c ${CFLAGS} $1 conftest.c 2>&1`"; then
+- eval $FLAG=yes
+-else
+- eval $FLAG=no
+-fi])
+-if test ${!FLAG} = yes ; then
+- CFLAGS="$1 $CFLAGS"
+-fi
+-])
+-
+-dnl Check for lots of extra warning options
+-AC_CHECK_CC_OPT(-pedantic)
+-AC_CHECK_CC_OPT(-W)
+-AC_CHECK_CC_OPT(-Wall)
+-AC_CHECK_CC_OPT(-Wmissing-prototypes)
+-AC_CHECK_CC_OPT(-Wmissing-declarations)
+-AC_CHECK_CC_OPT(-Wno-long-long)
+-AC_CHECK_CC_OPT(-Wwrite-strings)
+-AC_CHECK_CC_OPT(-Wpointer-arith)
+-AC_CHECK_CC_OPT(-Wbad-function-cast)
+-AC_CHECK_CC_OPT(-Waggregate-return)
+-AC_CHECK_CC_OPT(-Wstrict-prototypes)
+-AC_CHECK_CC_OPT(-Wredundant-decls)
+-dnl AC_CHECK_CC_OPT(-Wunreachable-code)
+-AC_CHECK_CC_OPT(-Wchar-subscripts)
+-AC_CHECK_CC_OPT(-Wimplicit)
+-AC_CHECK_CC_OPT(-Wparentheses)
+-AC_CHECK_CC_OPT(-Wsequence-point)
+-AC_CHECK_CC_OPT(-Wreturn-type)
+-AC_CHECK_CC_OPT(-Wswitch)
+-AC_CHECK_CC_OPT(-Wunused)
+-AC_CHECK_CC_OPT(-Wuninitialized)
+-AC_CHECK_CC_OPT(-Wundef)
+-AC_CHECK_CC_OPT(-Wnested-externs)
+-AC_CHECK_CC_OPT(-Wdeclaration-after-statement)
+-AC_CHECK_CC_OPT(-Wsign-compare)
+-
+ AC_CONFIG_FILES([makefile])
+ AC_OUTPUT
diff --git a/games-roguelike/zangband/files/zangband-2.7.4c-makefile.patch b/games-roguelike/zangband/files/zangband-2.7.4c-makefile.patch
new file mode 100644
index 000000000000..bae74904cf02
--- /dev/null
+++ b/games-roguelike/zangband/files/zangband-2.7.4c-makefile.patch
@@ -0,0 +1,29 @@
+--- makefile.in.orig
++++ makefile.in
+@@ -111,17 +111,6 @@
+ %.o: %.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) $< -c -o $@ $(DEFS)
+
+-##
+-## Hack - make sure the build system is consistant.
+-##
+-makefile: configure makefile.in
+- $(CONFIGURE)
+-
+-configure: configure.in
+- aclocal
+- autoheader
+- autoconf
+-
+ dirs:
+ -mkdir $(DESTDIR)
+ -mkdir $(addprefix $(DESTDIR),$(filter-out $(srcdirlist), $(dirlist)))
+@@ -205,7 +194,7 @@
+ @echo $(srcdirlist) $(srcfiles)
+
+ # Hack to remake files depending on DEFAULT_PATH
+-.default_path: makefile
++.default_path:
+ @if [ ! -r .default_path ]; then \
+ echo "$(DESTDIR)" > .default_path; \
+ fi
diff --git a/games-roguelike/zangband/files/zangband-2.7.4c-rng.patch b/games-roguelike/zangband/files/zangband-2.7.4c-rng.patch
new file mode 100644
index 000000000000..4ac1b101dc8c
--- /dev/null
+++ b/games-roguelike/zangband/files/zangband-2.7.4c-rng.patch
@@ -0,0 +1,11 @@
+--- zangband/src/z-rand.c
++++ zangband/src/z-rand.c
+@@ -168,7 +168,7 @@
+ r = (Rand_state[j] += Rand_state[Rand_place]);
+
+ /* Hack -- extract a 28-bit "random" number */
+- r = (r >> 4) / n;
++ r = ((r >> 4) & 0x0FFFFFFF) / n;
+
+ /* Advance the index */
+ Rand_place = j;
diff --git a/games-roguelike/zangband/files/zangband-2.7.4c-tk85.patch b/games-roguelike/zangband/files/zangband-2.7.4c-tk85.patch
new file mode 100644
index 000000000000..73ea2ab5f9dc
--- /dev/null
+++ b/games-roguelike/zangband/files/zangband-2.7.4c-tk85.patch
@@ -0,0 +1,19 @@
+--- configure.in.orig
++++ configure.in
+@@ -141,12 +141,12 @@
+ ])
+
+ if test "x$with_tcltk" != "xno" ; then
+- AC_SEARCH_LIBS([Tcl_Init], [tcl84 tcl8.4 tcl83 tcl8.3],
+- AC_SEARCH_LIBS([Tk_Init], [tk84 tk8.4 tk83 tk8.3],
+- [AC_SEARCH_HEADERS(/usr/local/include/tcl.h /usr/local/include/tcl/tcl.h /usr/include/tcl.h /usr/include/tcl8.4/tcl.h /usr/local/include/tcl8.4/tcl.h /usr/include/tcl8.3/tcl.h /usr/local/include/tcl8.3/tcl.h
++ AC_SEARCH_LIBS([Tcl_Init], [tcl86 tcl8.6 tcl85 tcl8.5 tcl84 tcl8.4 tcl83 tcl8.3],
++ AC_SEARCH_LIBS([Tk_Init], [tk86 tk8.6 tk85 tk8.5 tk84 tk8.4 tk83 tk8.3],
++ [AC_SEARCH_HEADERS(/usr/local/include/tcl.h /usr/local/include/tcl/tcl.h /usr/include/tcl.h /usr/include/tcl8.5/tcl.h /usr/include/tcl8.4/tcl.h /usr/local/include/tcl8.4/tcl.h /usr/include/tcl8.3/tcl.h /usr/local/include/tcl8.3/tcl.h
+ ,BASE_TCL_DIR)
+
+- AC_SEARCH_HEADERS("$BASE_TCL_DIR/tk.h" /usr/local/include/tk.h /usr/local/include/tcl/tk.h /usr/include/tk.h /usr/include/tk8.4/tk.h /usr/local/include/tk8.4/tk.h /usr/include/tk8.3/tk.h /usr/local/include/tk8.3/tk.h
++ AC_SEARCH_HEADERS("$BASE_TCL_DIR/tk.h" /usr/local/include/tk.h /usr/local/include/tcl/tk.h /usr/include/tk.h /usr/include/tk8.6/tk.h /usr/include/tk8.5/tk.h /usr/include/tk8.4/tk.h /usr/local/include/tk8.4/tk.h /usr/include/tk8.3/tk.h /usr/local/include/tk8.3/tk.h
+ ,BASE_TK_DIR)
+
+ dnl Checks for libraries.
diff --git a/games-roguelike/zangband/metadata.xml b/games-roguelike/zangband/metadata.xml
new file mode 100644
index 000000000000..d3c2cc926f0b
--- /dev/null
+++ b/games-roguelike/zangband/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>games</herd>
+</pkgmetadata>
diff --git a/games-roguelike/zangband/zangband-2.7.4c.ebuild b/games-roguelike/zangband/zangband-2.7.4c.ebuild
new file mode 100644
index 000000000000..cea114a98d51
--- /dev/null
+++ b/games-roguelike/zangband/zangband-2.7.4c.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools eutils games
+
+DESCRIPTION="An enhanced version of the Roguelike game Angband"
+HOMEPAGE="http://www.zangband.org/"
+SRC_URI="ftp://ftp.sunet.se/pub/games/Angband/Variant/ZAngband/${P}.tar.gz"
+
+LICENSE="Moria"
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~x86-fbsd"
+IUSE="tk"
+
+RDEPEND="
+ tk? (
+ dev-lang/tcl:0=
+ dev-lang/tk:0=
+ )
+ x11-libs/libXaw"
+DEPEND="${RDEPEND}
+ x11-proto/xextproto"
+
+S=${WORKDIR}/${PN}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-tk85.patch \
+ "${FILESDIR}"/${P}-rng.patch \
+ "${FILESDIR}"/${P}-configure.patch \
+ "${FILESDIR}"/${P}-makefile.patch
+ mv configure.in configure.ac || die
+ eautoreconf
+}
+
+src_configure() {
+ egamesconf \
+ --datadir="${GAMES_DATADIR_BASE}" \
+ --with-setgid="${GAMES_GROUP}" \
+ --without-gtk \
+ $(use_with tk tcltk)
+}
+
+src_install() {
+ # Keep some important dirs we want to chmod later
+ keepdir "${GAMES_DATADIR}"/${PN}/lib/{apex,user,save,bone,info,xtra/help,xtra/music}
+
+ # Install the basic files but remove unneeded crap
+ emake DESTDIR="${D}/${GAMES_DATADIR}"/${PN}/ installbase
+ rm "${D}${GAMES_DATADIR}"/${PN}/{angdos.cfg,readme,z_faq.txt,z_update.txt}
+
+ # Install everything else and fix the permissions
+ dogamesbin zangband
+ dodoc readme z_faq.txt z_update.txt
+ find "${D}${GAMES_DATADIR}/zangband/lib" -type f -exec chmod a-x \{\} +
+
+ prepgamesdirs
+ # All users in the games group need write permissions to
+ # some important dirs
+ fperms -R g+w "${GAMES_DATADIR}"/zangband/lib/{apex,data,save,user}
+}