mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
games-roguelike/nethack: Bump to 3.6.1
* Bump to EAPI 7 * Update SRC_URI * (Hopefully?) support prefix builds * Various improvements suggested by mgorny * Set SGID on the /var/games/nethack directory to avoid a potential privilege escalation during package upgrades * Don't redefine LINUX and STATUS_HILITES * Unconditionally enable DUMPLOG and SCORE_ON_BOTL per upstream recommendations * Remove obsolete STATUS_VIA_WINDOWPORT and the now empty "experimental" USE flag Thanks-to: Michał Górny <mgorny@gentoo.org> Thanks-to: Laurent Bercot Closes: https://github.com/gentoo/gentoo/pull/9661
This commit is contained in:
committed by
Michał Górny
parent
fefcb7e156
commit
c9efdc6e01
@@ -1 +1,2 @@
|
||||
DIST nethack-360-src.tgz 4261282 BLAKE2B 7be22b8bdc7b5124418fa904aa3776d77440f67ec18782b878e037b989a18092ed88ca192224c7bc1eaa3cb438823188035c3e6d2aa85d13a7aa1e86c8527d32 SHA512 92370a3c60a4f6861b9c0f1e1320fc23d91cedc1615d0d09e06a0ee3e13c9c8c0cd931389bfd7a25845ed07ef966d19d9e46e77ae07084a941685dc67f49c813
|
||||
DIST nethack-361-src.tgz 4640769 BLAKE2B 3793a753e4012df64335e7e7ec60284de206012d5bb5d30a7ccfb458e456818f30dd0b4bfa9c41b1691bd01ee6aec2e44b57327586f0c9d76a573bf4c9bb00b1 SHA512 bd6e36c163f0d85e1ab1fc659464696b5a02c3864a800ad47e047fdc4a35fff4ef7dd28a9b071fa46f7f67fa45c97fdc77bc1f2bdbad80cc02950d73731d9c30
|
||||
|
||||
115
games-roguelike/nethack/files/nethack-3.6.1-recover.patch
Normal file
115
games-roguelike/nethack/files/nethack-3.6.1-recover.patch
Normal file
@@ -0,0 +1,115 @@
|
||||
From 5d9a3ac6b9eaf63167e5c7c01f0bb33d383dab14 Mon Sep 17 00:00:00 2001
|
||||
From: Luis Ressel <aranea@aixah.de>
|
||||
Date: Tue, 21 Aug 2018 22:57:09 +0200
|
||||
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 1209d31d..c3fdd851 100644
|
||||
--- a/doc/recover.6
|
||||
+++ b/doc/recover.6
|
||||
@@ -1,4 +1,4 @@
|
||||
-.TH RECOVER 6 "14 December 2015" NETHACK
|
||||
+.TH RECOVER-NETHACK 6 "14 December 2015" NETHACK
|
||||
.de ND
|
||||
.ds Nd \\$3
|
||||
..
|
||||
@@ -13,9 +13,9 @@
|
||||
.NR $NHDT-Revision: 1.9 $
|
||||
.ds Na Kenneth Lorber
|
||||
.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
|
||||
@@ -33,7 +33,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
|
||||
@@ -83,47 +83,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
|
||||
@@ -133,12 +133,12 @@ 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.
|
||||
.SH COPYRIGHT
|
||||
--
|
||||
2.18.0
|
||||
|
||||
128
games-roguelike/nethack/nethack-3.6.1.ebuild
Normal file
128
games-roguelike/nethack/nethack-3.6.1.ebuild
Normal file
@@ -0,0 +1,128 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
inherit desktop flag-o-matic toolchain-funcs user
|
||||
|
||||
MY_PV=${PV//.}
|
||||
DESCRIPTION="The ultimate old-school single player dungeon exploration game"
|
||||
HOMEPAGE="https://www.nethack.org/"
|
||||
SRC_URI="https://nethack.org/download/${PV}/nethack-${MY_PV}-src.tgz"
|
||||
|
||||
LICENSE="nethack"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~hppa ~x86 ~x86-fbsd"
|
||||
IUSE="X"
|
||||
|
||||
RDEPEND="sys-libs/ncurses:0=
|
||||
X? (
|
||||
x11-libs/libXaw
|
||||
x11-libs/libXpm
|
||||
x11-libs/libXt
|
||||
)"
|
||||
DEPEND="${RDEPEND}
|
||||
X? ( x11-base/xorg-proto )
|
||||
"
|
||||
BDEPEND="virtual/pkgconfig
|
||||
X? (
|
||||
x11-apps/bdftopcf
|
||||
x11-apps/mkfontdir
|
||||
)"
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/${P}-recover.patch"
|
||||
eapply_user
|
||||
|
||||
cp "${FILESDIR}/${PN}-3.6.0-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 -DTIMED_DELAY -DVISION_TABLES -DDUMPLOG -DSCORE_ON_BOTL
|
||||
append-cflags '-DCOMPRESS=\"${EPREFIX}/bin/gzip\"' '-DCOMPRESS_EXTENSION=\".gz\"'
|
||||
append-cflags "-DHACKDIR=\\\"${EPREFIX}/usr/$(get_libdir)/nethack\\\"" "-DVAR_PLAYGROUND=\\\"${EPREFIX}/var/games/nethack\\\""
|
||||
append-cflags "-DDEF_PAGER=\\\"${PAGER}\\\""
|
||||
append-cflags -DSYSCF "-DSYSCF_FILE=\\\"${EPREFIX}/etc/nethack.sysconf\\\""
|
||||
|
||||
use X && append-cflags -DX11_GRAPHICS -DUSE_XPM
|
||||
|
||||
LOCAL_MAKEOPTS=(
|
||||
CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
|
||||
WINTTYLIB="$($(tc-getPKG_CONFIG) --libs ncurses)"
|
||||
HACKDIR="${EPREFIX}/usr/$(get_libdir)/nethack" INSTDIR="${ED}/usr/$(get_libdir)/nethack"
|
||||
SHELLDIR="${ED}/usr/bin" VARDIR="${ED}/var/games/nethack"
|
||||
)
|
||||
|
||||
emake "${LOCAL_MAKEOPTS[@]}" nethack recover Guidebook spec_levs
|
||||
|
||||
# Upstream still has some parallel compilation bugs
|
||||
emake -j1 "${LOCAL_MAKEOPTS[@]}" all
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake "${LOCAL_MAKEOPTS[@]}" install
|
||||
|
||||
mv "${ED}/usr/$(get_libdir)/nethack/recover" "${ED}/usr/bin/recover-nethack" || die "Failed to move recover-nethack"
|
||||
|
||||
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}/${PN}-3.6.0-nethackrc" .nethackrc
|
||||
|
||||
if use X ; then
|
||||
cd "${S}/win/X11" || die "Failed to enter win/X11 directory"
|
||||
|
||||
mkdir -p "${ED}/etc/X11/app-defaults/" || die "Failed to make app-defaults directory"
|
||||
mv "${ED}/usr/$(get_libdir)/nethack/NetHack.ad" "${ED}/etc/X11/app-defaults/" || die "Failed to move 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 "/usr/$(get_libdir)/nethack/fonts"
|
||||
doins *.pcf
|
||||
mkfontdir "${ED}/usr/$(get_libdir)/nethack/fonts" || die "mkfontdir failed"
|
||||
fi
|
||||
|
||||
rm -r "${ED}/var/games/nethack" || die "Failed to clean var/games/nethack"
|
||||
keepdir /var/games/nethack/save
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
enewgroup gamestat 36
|
||||
|
||||
fowners root:gamestat /var/games/nethack /var/games/nethack/save
|
||||
fperms 2770 /var/games/nethack /var/games/nethack/save
|
||||
|
||||
fowners root:gamestat "/usr/$(get_libdir)/nethack/nethack"
|
||||
fperms g+s "/usr/$(get_libdir)/nethack/nethack"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
cd "${EROOT}/var/games/nethack" || die "Failed to enter ${EROOT}/var/games/nethack directory"
|
||||
|
||||
# Transition mechanism for <nethack-3.6.1 ebuilds. It's perfectly safe, so we'll just run it unconditionally.
|
||||
chmod 2770 . save || die "Failed to chmod statedir"
|
||||
|
||||
# Those files can't be created earlier because we don't want portage to wipe them during upgrades
|
||||
( umask 007 && touch logfile perm record xlogfile ) || die "Failed to create log files"
|
||||
|
||||
# Instead of using a proper version header in its save files, nethack checks for incompatibilities
|
||||
# by comparing the mtimes of save files and its own binary. This would require admin interaction even
|
||||
# during upgrades which don't change the file format, so we'll just touch the files and warn the admin
|
||||
# manually in case of compatibility issues.
|
||||
( shopt -s nullglob
|
||||
local saves=( bones* save/* )
|
||||
test ${#saves[@]} -gt 0 && touch -c "${saves[@]}"
|
||||
) # non-fatal
|
||||
|
||||
elog "A minimal default .nethackrc has been placed in /etc/skel/"
|
||||
elog "The sysconf file is at /etc/nethack.sysconf"
|
||||
}
|
||||
Reference in New Issue
Block a user