forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
games-roguelike/nethack: Bump to 3.6.0
Thorough ebuild rewrite. Gentoo-Bug: 567762
- Loading branch information
Showing
5 changed files
with
332 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
110 changes: 110 additions & 0 deletions
110
games-roguelike/nethack/files/nethack-3.6.0-recover.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
From c15cf56e61c908ce756d698a8afa3064030761b3 Mon Sep 17 00:00:00 2001 | ||
From: Luis Ressel <[email protected]> | ||
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 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
} |