diff options
author | Luis Ressel <aranea@aixah.de> | 2015-12-26 01:18:44 +0100 |
---|---|---|
committer | Luis Ressel <aranea@aixah.de> | 2015-12-30 01:20:35 +0100 |
commit | 9d33d1d4b8e9578da5466ab11e9b162b80c357c4 (patch) | |
tree | b3acf034277a41586044c0ceaedc2309f3f9bc72 /games-roguelike | |
parent | Restricting tests, they have been broken for a long time. Bug 566700 (diff) | |
download | gentoo-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/Manifest | 1 | ||||
-rw-r--r-- | games-roguelike/nethack/files/nethack-3.6.0-hint-tty | 19 | ||||
-rw-r--r-- | games-roguelike/nethack/files/nethack-3.6.0-hint-x11 | 23 | ||||
-rw-r--r-- | games-roguelike/nethack/files/nethack-3.6.0-recover.patch | 110 | ||||
-rw-r--r-- | games-roguelike/nethack/nethack-3.6.0.ebuild | 179 |
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 +} |