summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuis Ressel <aranea@aixah.de>2015-12-26 01:18:44 +0100
committerLuis Ressel <aranea@aixah.de>2015-12-30 01:20:35 +0100
commit9d33d1d4b8e9578da5466ab11e9b162b80c357c4 (patch)
treeb3acf034277a41586044c0ceaedc2309f3f9bc72 /games-roguelike
parentRestricting tests, they have been broken for a long time. Bug 566700 (diff)
downloadgentoo-9d33d1d4b8e9578da5466ab11e9b162b80c357c4.tar.gz
gentoo-9d33d1d4b8e9578da5466ab11e9b162b80c357c4.tar.bz2
gentoo-9d33d1d4b8e9578da5466ab11e9b162b80c357c4.zip
games-roguelike/nethack: Bump to 3.6.0
Thorough ebuild rewrite. Gentoo-Bug: 567762
Diffstat (limited to 'games-roguelike')
-rw-r--r--games-roguelike/nethack/Manifest1
-rw-r--r--games-roguelike/nethack/files/nethack-3.6.0-hint-tty19
-rw-r--r--games-roguelike/nethack/files/nethack-3.6.0-hint-x1123
-rw-r--r--games-roguelike/nethack/files/nethack-3.6.0-recover.patch110
-rw-r--r--games-roguelike/nethack/nethack-3.6.0.ebuild179
5 files changed, 332 insertions, 0 deletions
diff --git a/games-roguelike/nethack/Manifest b/games-roguelike/nethack/Manifest
index 8776166e7815..5808cc399376 100644
--- a/games-roguelike/nethack/Manifest
+++ b/games-roguelike/nethack/Manifest
@@ -1 +1,2 @@
DIST nethack-343-src.tgz 3497458 SHA256 bb39c3d2a9ee2df4a0c8fdde708fbc63740853a7608d2f4c560b488124866fe4 SHA512 052342c19619219f291571d48cf7799f962eb6ec6f8a276427225c0abbd833eada18abeff9fbd647919f2a9e3bb097d7f154675e283fe48abc4752f24c192d8f WHIRLPOOL 397c787f83149d96ddbfa6a2235c20c3724ed67946889d432774901cb7ddc71b177e2cbd6c3029f4eb0b4df21c81c6a427494dad550fdbace01876a3d9c79d75
+DIST nethack-360-src.tgz 4261282 SHA256 1ade698d8458b8d87a4721444cb73f178c74ed1b6fde537c12000f8edf2cb18a SHA512 92370a3c60a4f6861b9c0f1e1320fc23d91cedc1615d0d09e06a0ee3e13c9c8c0cd931389bfd7a25845ed07ef966d19d9e46e77ae07084a941685dc67f49c813 WHIRLPOOL 14ff7a8bcf06b18e5192a7478f1fcd25eb55ecc149d9fa8b80def95311a498ef8d172ee4ff7e69c62e36b2a190a0f14b4a3d4f61183a48676fa77e2e7268690c
diff --git a/games-roguelike/nethack/files/nethack-3.6.0-hint-tty b/games-roguelike/nethack/files/nethack-3.6.0-hint-tty
new file mode 100644
index 000000000000..3c250e7e719c
--- /dev/null
+++ b/games-roguelike/nethack/files/nethack-3.6.0-hint-tty
@@ -0,0 +1,19 @@
+#-PRE
+
+LINK=$(CC)
+
+WINSRC = $(WINTTYSRC)
+WINOBJ = $(WINTTYOBJ)
+WINLIB = $(WINTTYLIB)
+
+GAMEPERM = 02755
+VARDIRPERM = 0770
+VARFILEPERM = 0660
+CHOWN = true
+CHGRP = true
+
+
+#-POST
+
+# needed for external pager, bug #57410
+DATNODLB = $(VARDATND) license $(DATHELP)
diff --git a/games-roguelike/nethack/files/nethack-3.6.0-hint-x11 b/games-roguelike/nethack/files/nethack-3.6.0-hint-x11
new file mode 100644
index 000000000000..d0d1a8d4cd42
--- /dev/null
+++ b/games-roguelike/nethack/files/nethack-3.6.0-hint-x11
@@ -0,0 +1,23 @@
+#-PRE
+
+LINK=$(CC)
+
+VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm rip.xpm
+
+WINSRC = $(WINTTYSRC) $(WINX11SRC)
+WINOBJ = $(WINTTYOBJ) $(WINX11OBJ)
+WINLIB = $(WINTTYLIB) $(WINX11LIB)
+
+GAMEPERM = 02755
+VARDIRPERM = 0770
+VARFILEPERM = 0660
+CHOWN = true
+CHGRP = true
+
+
+#-POST
+
+# needed for external pager, bug #57410
+DATNODLB = $(VARDATND) license $(DATHELP)
+
+WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11 -lXpm
diff --git a/games-roguelike/nethack/files/nethack-3.6.0-recover.patch b/games-roguelike/nethack/files/nethack-3.6.0-recover.patch
new file mode 100644
index 000000000000..c7e8ab3dca08
--- /dev/null
+++ b/games-roguelike/nethack/files/nethack-3.6.0-recover.patch
@@ -0,0 +1,110 @@
+From c15cf56e61c908ce756d698a8afa3064030761b3 Mon Sep 17 00:00:00 2001
+From: Luis Ressel <aranea@aixah.de>
+Date: Fri, 18 Dec 2015 23:16:56 +0100
+Subject: [PATCH] doc: Rename recover to recover-nethack
+
+---
+ doc/recover.6 | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/doc/recover.6 b/doc/recover.6
+index 4c9f509..edd05e3 100644
+--- a/doc/recover.6
++++ b/doc/recover.6
+@@ -1,10 +1,10 @@
+-.TH RECOVER 6 "9 January 1993"
++.TH RECOVER-NETHACK 6 "9 January 1993"
+ .\" NetHack 3.6 recover.6 $NHDT-Date: 1432512786 2015/05/25 00:13:06 $ $NHDT-Branch: master $:$NHDT-Revision: 1.6 $
+ .UC 4
+ .SH NAME
+-recover \- recover a NetHack game interrupted by disaster
++recover-nethack \- recover a NetHack game interrupted by disaster
+ .SH SYNOPSIS
+-.B recover
++.B recover-nethack
+ [
+ .B \-d
+ .I directory
+@@ -22,7 +22,7 @@ so such games can be recovered at the point of the last level change.
+ The
+ .I base
+ options tell
+-.I recover
++.I recover-nethack
+ which files to process.
+ Each base option specifies recovery of a separate game.
+ .PP
+@@ -72,47 +72,47 @@ by a user number to avoid conflicts,
+ 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 recover-nethack
+ will transform these level files into a save file of the same name as
+ .I nethack
+ would have used.
+ .PP
+ Since
+-.I recover
++.I recover-nethack
+ 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 recover-nethack
+ 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 recover-nethack
+ by default.
+ .PP
+ For a multi-user system,
+ the game administrator may want to arrange for all .0 files in the
+-playground to be fed to recover when the host machine boots,
++playground to be fed to recover-nethack when the host machine boots,
+ and handle game crashes individually.
+ If the user population is sufficiently trustworthy,
+-.I recover
++.I recover-nethack
+ can be installed with the same permissions the
+ .I nethack
+ executable has.
+ In either case,
+-.I recover
++.I recover-nethack
+ is easily compiled from the distribution utility directory.
+ .SH NOTES
+ .PP
+ Like
+ .I nethack
+ itself,
+-.I recover
++.I recover-nethack
+ will overwrite existing savefiles of the same name.
+ Savefiles created by
+-.I recover
++.I recover-nethack
+ are uncompressed;
+ they may be compressed afterwards if desired,
+ but even a compression-using
+@@ -122,11 +122,11 @@ will find them in the uncompressed form.
+ nethack(6)
+ .SH BUGS
+ .PP
+-.I recover
++.I recover-nethack
+ 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 recover-nethack
+ should be taught to use the nethack playground locking mechanism to
+ avoid conflicts.
+--
+2.6.4
+
diff --git a/games-roguelike/nethack/nethack-3.6.0.ebuild b/games-roguelike/nethack/nethack-3.6.0.ebuild
new file mode 100644
index 000000000000..11c43ea42cc4
--- /dev/null
+++ b/games-roguelike/nethack/nethack-3.6.0.ebuild
@@ -0,0 +1,179 @@
+# 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:0=
+ 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/bin"
+STATEDIR="/var/games/${PN}"
+
+NETHACK_GROUP="gamestat"
+
+pkg_setup() {
+ HACKDIR="/usr/$(get_libdir)/${PN}"
+
+ enewgroup gamestat 36
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-recover.patch"
+ epatch_user
+
+ cp "${FILESDIR}/${P}-hint-$(usex X x11 tty)" hint || die "Failed to copy hint file"
+ sys/unix/setup.sh hint || die "Failed to run setup.sh"
+}
+
+src_compile() {
+ append-cflags -I../include -DDLB -DSECURE -DLINUX -DTIMED_DELAY -DVISION_TABLES
+ append-cflags '-DCOMPRESS=\"/bin/gzip\"' '-DCOMPRESS_EXTENSION=\".gz\"'
+ append-cflags "-DHACKDIR=\\\"${HACKDIR}\\\"" "-DVAR_PLAYGROUND=\\\"${STATEDIR}\\\""
+ append-cflags "-DLOCKDIR=\\\"${STATEDIR}\\\"" "-DDEF_PAGER=\\\"${PAGER}\\\""
+ append-cflags -DSYSCF "-DSYSCF_FILE=\\\"/etc/nethack.sysconf\\\""
+
+ use X && append-cflags -DX11_GRAPHICS -DUSE_XPM
+
+ emake \
+ CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}" \
+ WINTTYLIB="$($(tc-getPKG_CONFIG) --libs ncurses)" \
+ HACKDIR="${HACKDIR}" INSTDIR="${D}/${HACKDIR}" \
+ SHELLDIR="${D}/${BINDIR}" VARDIR="${D}/${STATEDIR}" \
+ nethack recover Guidebook spec_levs
+
+ # Upstream still has some parallel compilation bugs
+ emake -j1 \
+ CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}" \
+ WINTTYLIB="$($(tc-getPKG_CONFIG) --libs ncurses)" \
+ HACKDIR="${HACKDIR}" INSTDIR="${D}/${HACKDIR}" \
+ SHELLDIR="${D}/${BINDIR}" VARDIR="${D}/${STATEDIR}" \
+ all
+}
+
+src_install() {
+ emake \
+ CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}" \
+ WINTTYLIB="$($(tc-getPKG_CONFIG) --libs ncurses)" \
+ HACKDIR="${HACKDIR}" INSTDIR="${D}/${HACKDIR}" \
+ SHELLDIR="${D}/${BINDIR}" VARDIR="${D}/${STATEDIR}" \
+ install
+
+ exeinto "${BINDIR}"
+ newexe util/recover recover-nethack
+ rm "${D}/${HACKDIR}/recover" || die "Failed to remove HACKDIR/recover"
+
+ doman doc/nethack.6
+ newman doc/recover.6 recover-nethack.6
+ dodoc doc/Guidebook.txt
+
+ insinto /etc
+ newins sys/unix/sysconf nethack.sysconf
+
+ insinto /etc/skel
+ newins "${FILESDIR}/dot.nethackrc" .nethackrc
+
+ local windowtypes="tty"
+ use X && windowtypes="x11 ${windowtypes}"
+ set -- ${windowtypes}
+ sed -i \
+ -e "s:GENTOO_WINDOWTYPES:${windowtypes}:" \
+ -e "s:GENTOO_DEFWINDOWTYPE:$1:" \
+ "${D}/etc/skel/.nethackrc" \
+ || die "sed /etc/skel/.nethackrc failed"
+
+ if use X ; then
+ cd "${S}/win/X11" || die "Failed to enter win/X11 directory"
+
+ # copy nethack x application defaults
+ insinto /etc/X11/app-defaults
+ newins NetHack.ad NetHack
+ rm "${D}/${HACKDIR}/NetHack.ad" || die "Failed to remove NetHack.ad"
+
+ newicon nh_icon.xpm nethack.xpm
+ make_desktop_entry ${PN} Nethack
+
+ # install nethack fonts
+ 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"
+ fi
+
+ rm -r "${D}/${STATEDIR}" || die "Failed to clean STATEDIR"
+ keepdir "${STATEDIR}/save"
+
+ fowners -R "root:${NETHACK_GROUP}" "${STATEDIR}"
+ fperms 770 "${STATEDIR}" "${STATEDIR}/save"
+
+ fowners "root:${NETHACK_GROUP}" "${HACKDIR}/nethack"
+ fperms g+s "${HACKDIR}/nethack"
+}
+
+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"
+ fi
+
+ touch logfile perm record xlogfile || die "Failed to create log files"
+
+ chown -R root:"${NETHACK_GROUP}" . &&
+ chmod -R 660 . &&
+ chmod 770 . save ||
+ die "Adjustment of file permissions in ${ROOT}/${STATEDIR} failed"
+
+ touch -c bones* save/* # non-critical
+
+ elog "A minimal default .nethackrc has been placed in /etc/skel/"
+ elog "The sysconf file is at /etc/nethack.sysconf"
+
+ if has_version "<${CATEGORY}/${PN}-3.6.0" ; then
+ elog
+ elog "Nethack 3.6 includes many new features."
+ elog "You might want to review your options and local patchset."
+ elog "Have a look at http://www.nethack.org/v360/release.html"
+ fi
+}