public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/nethack/files/, games-roguelike/nethack/
@ 2015-12-31 10:48 Patrice Clement
  0 siblings, 0 replies; 6+ messages in thread
From: Patrice Clement @ 2015-12-31 10:48 UTC (permalink / raw
  To: gentoo-commits

commit:     9d33d1d4b8e9578da5466ab11e9b162b80c357c4
Author:     Luis Ressel <aranea <AT> aixah <DOT> de>
AuthorDate: Sat Dec 26 00:18:44 2015 +0000
Commit:     Patrice Clement <monsieurp <AT> gentoo <DOT> org>
CommitDate: Wed Dec 30 00:20:35 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9d33d1d4

games-roguelike/nethack: Bump to 3.6.0

Thorough ebuild rewrite.

Gentoo-Bug: 567762

 games-roguelike/nethack/Manifest                   |   1 +
 .../nethack/files/nethack-3.6.0-hint-tty           |  19 +++
 .../nethack/files/nethack-3.6.0-hint-x11           |  23 +++
 .../nethack/files/nethack-3.6.0-recover.patch      | 110 +++++++++++++
 games-roguelike/nethack/nethack-3.6.0.ebuild       | 179 +++++++++++++++++++++
 5 files changed, 332 insertions(+)

diff --git a/games-roguelike/nethack/Manifest b/games-roguelike/nethack/Manifest
index 8776166..5808cc3 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 0000000..3c250e7
--- /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 0000000..d0d1a8d
--- /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 0000000..c7e8ab3
--- /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 0000000..11c43ea
--- /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
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/nethack/files/, games-roguelike/nethack/
@ 2016-01-16  2:39 Ian Delaney
  0 siblings, 0 replies; 6+ messages in thread
From: Ian Delaney @ 2016-01-16  2:39 UTC (permalink / raw
  To: gentoo-commits

commit:     28f8771b0895f2fd3117f60b9c69e562c983ef44
Author:     Luis Ressel <aranea <AT> aixah <DOT> de>
AuthorDate: Wed Jan 13 20:18:41 2016 +0000
Commit:     Ian Delaney <idella4 <AT> gentoo <DOT> org>
CommitDate: Wed Jan 13 22:12:47 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=28f8771b

games-roguelike/nethack: Improved nethackrc for 3.6

 .../{dot.nethackrc => nethack-3.4.3-nethackrc}     |   0
 .../nethack/files/nethack-3.6.0-nethackrc          | 103 +++++++++++++++++++++
 games-roguelike/nethack/nethack-3.4.3-r5.ebuild    |   2 +-
 games-roguelike/nethack/nethack-3.6.0-r1.ebuild    |  11 +--
 games-roguelike/nethack/nethack-3.6.0.ebuild       |   2 +-
 5 files changed, 106 insertions(+), 12 deletions(-)

diff --git a/games-roguelike/nethack/files/dot.nethackrc b/games-roguelike/nethack/files/nethack-3.4.3-nethackrc
similarity index 100%
rename from games-roguelike/nethack/files/dot.nethackrc
rename to games-roguelike/nethack/files/nethack-3.4.3-nethackrc

diff --git a/games-roguelike/nethack/files/nethack-3.6.0-nethackrc b/games-roguelike/nethack/files/nethack-3.6.0-nethackrc
new file mode 100644
index 0000000..33c9806
--- /dev/null
+++ b/games-roguelike/nethack/files/nethack-3.6.0-nethackrc
@@ -0,0 +1,103 @@
+## This is an example nethackrc file (courtesy of nethack.alt.org).
+##
+## You should edit it to suit your needs.
+## Please read the Guidebook in /usr/share/doc/nethack or at www.nethack.org.
+##
+## Options which are enabled by default (like autoopen) can be disabled
+## by prefixing them with a !
+
+## If USE=X is enabled, this can be changed to x11
+#OPTIONS=windowtype:tty
+
+## Custom fruit and pet names
+#OPTIONS=fruit:mango
+#OPTIONS=dogname:Izchak
+#OPTIONS=catname:Chun-Li
+#OPTIONS=horsename:Marlon
+
+## Colored output
+#OPTIONS=color
+
+## Automatically dig if you are wielding a digging tool and moving
+## into a place that can be dug
+#OPTIONS=autodig
+
+## Walking into a door attempts to open it
+#OPTIONS=autoopen
+
+## Automatically pick up stuff
+#OPTIONS=autopickup
+
+## Only use autopickup for these item types
+#OPTIONS=pickup_types:$!?/"=
+
+## Allow saving and loading bones files.
+#OPTIONS=bones
+
+## Show out-of-sight areas of lit rooms
+#OPTIONS=dark_room
+
+## Use inverse for pets
+#OPTIONS=hilite_pet
+
+## Use inverse for piles of items
+#OPTIONS=hilite_pile
+
+## Show experience
+#OPTIONS=showexp
+
+## Show elapsed game time (in turns)
+#OPTIONS=time
+
+## How recalled messages (ctrl-p) are displayed.
+#OPTIONS=msg_window:reversed
+
+## use IBMgraphics or DECgraphics
+#OPTIONS=symset:DECgraphics
+#OPTIONS=symset:IBMgraphics
+
+## If you don't like some default glyphs, these can be changed
+#SYMBOLS=S_boulder:0
+#SYMBOLS=S_lava:~
+#SYMBOLS=S_pool:~
+#SYMBOLS=S_water:~
+#SYMBOLS=S_ghost:8
+#SYMBOLS=S_golem:7
+
+## Sort items by name. One of "none", "loot", or "full"
+#OPTIONS=sortloot:full
+
+## Require explicit yes for some prompts
+#OPTIONS=paranoid_confirmation:Confirm quit attack pray wand Remove
+
+## Conducts
+#OPTIONS=nudist
+#OPTIONS=blind
+
+
+## Colored menus. Regular expressions allowed.
+#OPTIONS=menucolors
+#MENUCOLOR=" blessed "=green
+#MENUCOLOR=" holy "=green
+#MENUCOLOR=" cursed "=red
+#MENUCOLOR=" unholy "=red
+#MENUCOLOR=" cursed .* (being worn)"=orange&underline
+
+
+## Messagetypes
+
+## displacing pets. hide the message.
+#MSGTYPE=hide "You swap places with your .*"
+
+## items on floor. don't repeat the message.
+#MSGTYPE=norep "You see here a .*"
+#MSGTYPE=norep "You see here an .*"
+
+## delayed instadeaths. always prompt for -more-
+#MSGTYPE=stop "You are slowing down."
+#MSGTYPE=stop "You find it hard to breathe."
+#MSGTYPE=stop "You are turning a little .*"
+
+## moving up or down stairs
+#MSGTYPE=hide "You descend .*"
+#MSGTYPE=hide "You (climb|fly) (up|down) .*"

diff --git a/games-roguelike/nethack/nethack-3.4.3-r5.ebuild b/games-roguelike/nethack/nethack-3.4.3-r5.ebuild
index 6762a44..3746bd9 100644
--- a/games-roguelike/nethack/nethack-3.4.3-r5.ebuild
+++ b/games-roguelike/nethack/nethack-3.4.3-r5.ebuild
@@ -143,7 +143,7 @@ src_install() {
 	dodoc doc/*.txt
 
 	insinto /etc/skel
-	newins "${FILESDIR}/dot.nethackrc" .nethackrc
+	newins "${FILESDIR}/${P}-nethackrc" .nethackrc
 
 	local windowtypes="tty"
 	use X && windowtypes="${windowtypes} x11"

diff --git a/games-roguelike/nethack/nethack-3.6.0-r1.ebuild b/games-roguelike/nethack/nethack-3.6.0-r1.ebuild
index 3696d05..01e66e8 100644
--- a/games-roguelike/nethack/nethack-3.6.0-r1.ebuild
+++ b/games-roguelike/nethack/nethack-3.6.0-r1.ebuild
@@ -87,16 +87,7 @@ src_install() {
 	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"
+	newins "${FILESDIR}/${P}-nethackrc" .nethackrc
 
 	if use X ; then
 		cd "${S}/win/X11" || die "Failed to enter win/X11 directory"

diff --git a/games-roguelike/nethack/nethack-3.6.0.ebuild b/games-roguelike/nethack/nethack-3.6.0.ebuild
index 11c43ea..f627cad 100644
--- a/games-roguelike/nethack/nethack-3.6.0.ebuild
+++ b/games-roguelike/nethack/nethack-3.6.0.ebuild
@@ -93,7 +93,7 @@ src_install() {
 	newins sys/unix/sysconf nethack.sysconf
 
 	insinto /etc/skel
-	newins "${FILESDIR}/dot.nethackrc" .nethackrc
+	newins "${FILESDIR}/${PN}-3.4.3-nethackrc" .nethackrc
 
 	local windowtypes="tty"
 	use X && windowtypes="x11 ${windowtypes}"


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/nethack/files/, games-roguelike/nethack/
@ 2016-02-13  3:56 Ian Delaney
  0 siblings, 0 replies; 6+ messages in thread
From: Ian Delaney @ 2016-02-13  3:56 UTC (permalink / raw
  To: gentoo-commits

commit:     69f0831c1243d1b889f38a2d5261420664ee59c9
Author:     Luis Ressel <aranea <AT> aixah <DOT> de>
AuthorDate: Fri Feb 12 14:50:47 2016 +0000
Commit:     Ian Delaney <idella4 <AT> gentoo <DOT> org>
CommitDate: Fri Feb 12 14:50:47 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=69f0831c

games-roguelike/nethack: Fix map colors in x11 interface

Gentoo-Bug: 573598
X-Upstream-Commit: a41382d

 .../nethack/files/nethack-3.6.0-x11-color.patch    | 186 +++++++++++++++++++++
 games-roguelike/nethack/nethack-3.6.0-r3.ebuild    | 144 ++++++++++++++++
 2 files changed, 330 insertions(+)

diff --git a/games-roguelike/nethack/files/nethack-3.6.0-x11-color.patch b/games-roguelike/nethack/files/nethack-3.6.0-x11-color.patch
new file mode 100644
index 0000000..d34ca02
--- /dev/null
+++ b/games-roguelike/nethack/files/nethack-3.6.0-x11-color.patch
@@ -0,0 +1,186 @@
+From f92bf2b495450d323e157eb41130c79a3d369239 Mon Sep 17 00:00:00 2001
+From: PatR <rankin@nethack.org>
+Date: Mon, 8 Feb 2016 19:01:26 -0800
+Subject: [PATCH] fix #H4237 - color ignored for X11 text map
+
+Color was only being tracked for locations that had the pile of
+objects flag set.  And hilite_pile made a monster on a pile take
+on the color of the top object of the pile.
+
+This restores the tracking of color for the whole map, and makes
+highlighted piles be drawn in inverse like highligted pets.  The
+drawing routine doesn't know the difference (but could tell, if
+necessary, by testing whether the glyph is an object or a monster).
+
+Also, variables 'inbuf', 'inptr', and 'incount' were global; limit
+their scope to winmap.c.
+---
+ win/X11/winmap.c | 68 +++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 33 insertions(+), 35 deletions(-)
+
+diff --git a/win/X11/winmap.c b/win/X11/winmap.c
+index 93f5dd6..523e13d 100644
+--- a/win/X11/winmap.c
++++ b/win/X11/winmap.c
+@@ -102,6 +102,7 @@ int bkglyph UNUSED;
+         int color, och;
+         unsigned special;
+ #ifdef TEXTCOLOR
++        int colordif;
+         register unsigned char *co_ptr;
+ #endif
+ 
+@@ -116,24 +117,22 @@ int bkglyph UNUSED;
+ 
+         /* Only update if we need to. */
+         ch_ptr = &map_info->text_map.text[y][x];
+-
+-#ifdef TEXTCOLOR
+-        co_ptr = &map_info->text_map.colors[y][x];
+-        if (*ch_ptr != ch || *co_ptr != color)
+-#else
+-        if (*ch_ptr != ch)
+-#endif
+-        {
++        if (*ch_ptr != ch) {
+             *ch_ptr = ch;
++            if (!map_info->is_tile)
++                update_bbox = TRUE;
++        }
+ #ifdef TEXTCOLOR
+-            if ((special & MG_PET) && iflags.hilite_pet)
+-                color += CLR_MAX;
+-            if ((special & MG_OBJPILE) && iflags.hilite_pile)
+-            *co_ptr = color;
+-#endif
++        co_ptr = &map_info->text_map.colors[y][x];
++        colordif = (((special & MG_PET) && iflags.hilite_pet)
++                    || ((special & MG_OBJPILE) && iflags.hilite_pile))
++                      ? CLR_MAX : 0;
++        if (*co_ptr != (uchar) (color + colordif)) {
++            *co_ptr = (uchar) (color + colordif);
+             if (!map_info->is_tile)
+                 update_bbox = TRUE;
+         }
++#endif
+     }
+ 
+     if (update_bbox) { /* update row bbox */
+@@ -844,7 +843,8 @@ Font font;
+     set_color_gc(CLR_BRIGHT_CYAN, XtNbright_cyan);
+     set_color_gc(CLR_WHITE, XtNwhite);
+ #else
+-    set_gc(wp->w, font, XtNforeground, bgpixel, &map_info->text_map.copy_gc,
++    set_gc(wp->w, font, XtNforeground, bgpixel,
++           &map_info->text_map.copy_gc,
+            &map_info->text_map.inv_copy_gc);
+ #endif
+ }
+@@ -943,17 +943,17 @@ struct xwindow *wp;
+ 
+     map_all_stone(map_info);
+     (void) memset((genericptr_t) map_info->text_map.text, ' ',
+-                  sizeof(map_info->text_map.text));
++                  sizeof map_info->text_map.text);
+ #ifdef TEXTCOLOR
+     (void) memset((genericptr_t) map_info->text_map.colors, NO_COLOR,
+-                  sizeof(map_info->text_map.colors));
++                  sizeof map_info->text_map.colors);
+ #endif
+ 
+     /* force a full update */
+     (void) memset((genericptr_t) map_info->t_start, (char) 0,
+-                  sizeof(map_info->t_start));
++                  sizeof map_info->t_start);
+     (void) memset((genericptr_t) map_info->t_stop, (char) COLNO - 1,
+-                  sizeof(map_info->t_stop));
++                  sizeof map_info->t_stop);
+     display_map_window(wp);
+ }
+ 
+@@ -978,8 +978,8 @@ struct xwindow *wp;
+ #ifdef VERBOSE
+     printf("Font information:\n");
+     printf("fid = %ld, direction = %d\n", fs->fid, fs->direction);
+-    printf("first = %d, last = %d\n", fs->min_char_or_byte2,
+-           fs->max_char_or_byte2);
++    printf("first = %d, last = %d\n",
++           fs->min_char_or_byte2, fs->max_char_or_byte2);
+     printf("all chars exist? %s\n", fs->all_chars_exist ? "yes" : "no");
+     printf("min_bounds:lb=%d rb=%d width=%d asc=%d des=%d attr=%d\n",
+            fs->min_bounds.lbearing, fs->min_bounds.rbearing,
+@@ -990,8 +990,8 @@ struct xwindow *wp;
+            fs->max_bounds.width, fs->max_bounds.ascent,
+            fs->max_bounds.descent, fs->max_bounds.attributes);
+     printf("per_char = 0x%lx\n", (unsigned long) fs->per_char);
+-    printf("Text: (max) width = %d, height = %d\n", text_map->square_width,
+-           text_map->square_height);
++    printf("Text: (max) width = %d, height = %d\n",
++           text_map->square_width, text_map->square_height);
+ #endif
+ 
+     if (fs->min_bounds.width != fs->max_bounds.width)
+@@ -1002,9 +1002,9 @@ struct xwindow *wp;
+  * keyhit buffer
+  */
+ #define INBUF_SIZE 64
+-int inbuf[INBUF_SIZE];
+-int incount = 0;
+-int inptr = 0; /* points to valid data */
++static int inbuf[INBUF_SIZE];
++static int incount = 0;
++static int inptr = 0; /* points to valid data */
+ 
+ /*
+  * Keyboard and button event handler for map window.
+@@ -1249,8 +1249,8 @@ boolean inverted;
+     }
+ 
+ #ifdef VERBOSE_UPDATE
+-    printf("update: [0x%x] %d %d %d %d\n", (int) wp->w, start_row, stop_row,
+-           start_col, stop_col);
++    printf("update: [0x%x] %d %d %d %d\n",
++           (int) wp->w, start_row, stop_row, start_col, stop_col);
+ #endif
+     win_start_row = start_row;
+     win_start_col = start_col;
+@@ -1273,8 +1273,8 @@ boolean inverted;
+                 src_y = (tile / TILES_PER_ROW) * tile_height;
+                 XCopyArea(dpy, tile_pixmap, XtWindow(wp->w),
+                           tile_map->black_gc, /* no grapics_expose */
+-                          src_x, src_y, tile_width, tile_height, dest_x,
+-                          dest_y);
++                          src_x, src_y, tile_width, tile_height,
++                          dest_x, dest_y);
+ 
+                 if (glyph_is_pet(glyph) && iflags.hilite_pet) {
+                     /* draw pet annotation (a heart) */
+@@ -1412,10 +1412,8 @@ Dimension cols, rows;
+     }
+ 
+     num_args = 0;
+-    XtSetArg(args[num_args], XtNwidth, wp->pixel_width);
+-    num_args++;
+-    XtSetArg(args[num_args], XtNheight, wp->pixel_height);
+-    num_args++;
++    XtSetArg(args[num_args], XtNwidth, wp->pixel_width); num_args++;
++    XtSetArg(args[num_args], XtNheight, wp->pixel_height); num_args++;
+     XtSetValues(wp->w, args, num_args);
+ }
+ 
+@@ -1426,10 +1424,10 @@ struct xwindow *wp;
+     struct map_info_t *map_info = wp->map_information;
+     struct text_map_info_t *text_map = &map_info->text_map;
+ 
+-    (void) memset((genericptr_t) text_map->text, ' ', sizeof(text_map->text));
++    (void) memset((genericptr_t) text_map->text, ' ', sizeof text_map->text);
+ #ifdef TEXTCOLOR
+     (void) memset((genericptr_t) text_map->colors, NO_COLOR,
+-                  sizeof(text_map->colors));
++                  sizeof text_map->colors);
+ #endif
+ 
+     get_char_info(wp);
+-- 
+2.7.1
+

diff --git a/games-roguelike/nethack/nethack-3.6.0-r3.ebuild b/games-roguelike/nethack/nethack-3.6.0-r3.ebuild
new file mode 100644
index 0000000..eb84203
--- /dev/null
+++ b/games-roguelike/nethack/nethack-3.6.0-r3.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+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="experimental 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() {
+	eapply "${FILESDIR}/${P}-recover.patch"
+	eapply "${FILESDIR}/${P}-x11-color.patch"
+	eapply_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 "-DDEF_PAGER=\\\"${PAGER}\\\""
+	append-cflags -DSYSCF "-DSYSCF_FILE=\\\"/etc/nethack.sysconf\\\""
+
+	use X && append-cflags -DX11_GRAPHICS -DUSE_XPM
+	use experimental &&
+		append-cflags -DSTATUS_VIA_WINDOWPORT -DSTATUS_HILITES -DSCORE_ON_BOTL
+
+	makeopts=(
+		CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
+		WINTTYLIB="$($(tc-getPKG_CONFIG) --libs ncurses)"
+		HACKDIR="${HACKDIR}" INSTDIR="${D}/${HACKDIR}"
+		SHELLDIR="${D}/${BINDIR}" VARDIR="${D}/${STATEDIR}"
+		)
+
+	emake "${makeopts[@]}" nethack recover Guidebook spec_levs
+
+	# Upstream still has some parallel compilation bugs
+	emake -j1 "${makeopts[@]}" all
+}
+
+src_install() {
+	emake "${makeopts[@]}" 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}/${P}-nethackrc" .nethackrc
+
+	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_postinst() {
+	cd "${ROOT}/${STATEDIR}" || die "Failed to enter ${STATEDIR} directory"
+
+	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
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/nethack/files/, games-roguelike/nethack/
@ 2018-08-23 19:50 Michał Górny
  0 siblings, 0 replies; 6+ messages in thread
From: Michał Górny @ 2018-08-23 19:50 UTC (permalink / raw
  To: gentoo-commits

commit:     c9efdc6e013f8e2fdaf9b83e39e4f1339b793387
Author:     Luis Ressel <aranea <AT> aixah <DOT> de>
AuthorDate: Tue Aug 21 21:11:34 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug 23 19:50:07 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c9efdc6e

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 <AT> gentoo.org>
Thanks-to: Laurent Bercot
Closes: https://github.com/gentoo/gentoo/pull/9661

 games-roguelike/nethack/Manifest                   |   1 +
 .../nethack/files/nethack-3.6.1-recover.patch      | 115 ++++++++++++++++++
 games-roguelike/nethack/nethack-3.6.1.ebuild       | 128 +++++++++++++++++++++
 3 files changed, 244 insertions(+)

diff --git a/games-roguelike/nethack/Manifest b/games-roguelike/nethack/Manifest
index 8acf7589107..97ad7b566d2 100644
--- a/games-roguelike/nethack/Manifest
+++ b/games-roguelike/nethack/Manifest
@@ -1 +1,2 @@
 DIST nethack-360-src.tgz 4261282 BLAKE2B 7be22b8bdc7b5124418fa904aa3776d77440f67ec18782b878e037b989a18092ed88ca192224c7bc1eaa3cb438823188035c3e6d2aa85d13a7aa1e86c8527d32 SHA512 92370a3c60a4f6861b9c0f1e1320fc23d91cedc1615d0d09e06a0ee3e13c9c8c0cd931389bfd7a25845ed07ef966d19d9e46e77ae07084a941685dc67f49c813
+DIST nethack-361-src.tgz 4640769 BLAKE2B 3793a753e4012df64335e7e7ec60284de206012d5bb5d30a7ccfb458e456818f30dd0b4bfa9c41b1691bd01ee6aec2e44b57327586f0c9d76a573bf4c9bb00b1 SHA512 bd6e36c163f0d85e1ab1fc659464696b5a02c3864a800ad47e047fdc4a35fff4ef7dd28a9b071fa46f7f67fa45c97fdc77bc1f2bdbad80cc02950d73731d9c30

diff --git a/games-roguelike/nethack/files/nethack-3.6.1-recover.patch b/games-roguelike/nethack/files/nethack-3.6.1-recover.patch
new file mode 100644
index 00000000000..c7ad7808a2c
--- /dev/null
+++ b/games-roguelike/nethack/files/nethack-3.6.1-recover.patch
@@ -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
+

diff --git a/games-roguelike/nethack/nethack-3.6.1.ebuild b/games-roguelike/nethack/nethack-3.6.1.ebuild
new file mode 100644
index 00000000000..3c6526d8c1c
--- /dev/null
+++ b/games-roguelike/nethack/nethack-3.6.1.ebuild
@@ -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"
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/nethack/files/, games-roguelike/nethack/
@ 2022-04-14 16:54 Matthew Smith
  0 siblings, 0 replies; 6+ messages in thread
From: Matthew Smith @ 2022-04-14 16:54 UTC (permalink / raw
  To: gentoo-commits

commit:     ae4313336418605be6ab3cea43c49297008284fd
Author:     Matthew Smith <matthew <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 14 16:45:51 2022 +0000
Commit:     Matthew Smith <matthew <AT> gentoo <DOT> org>
CommitDate: Thu Apr 14 16:45:51 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae431333

games-roguelike/nethack: don't redefine warn_unused_result

Apply patch that should land in NetHack 3.6.7. No revbump as fixes build
failure.

Closes: https://bugs.gentoo.org/830556
Signed-off-by: Matthew Smith <matthew <AT> gentoo.org>

 .../files/nethack-3.6.6-wunused-result.patch       | 37 ++++++++++++++++++++++
 games-roguelike/nethack/nethack-3.6.6.ebuild       |  3 +-
 2 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/games-roguelike/nethack/files/nethack-3.6.6-wunused-result.patch b/games-roguelike/nethack/files/nethack-3.6.6-wunused-result.patch
new file mode 100644
index 000000000000..e26d1190fda3
--- /dev/null
+++ b/games-roguelike/nethack/files/nethack-3.6.6-wunused-result.patch
@@ -0,0 +1,37 @@
+From 1cb5dc04605daa45f1c6a647c17442ed7ff2fe4e Mon Sep 17 00:00:00 2001
+From: nhmall <nhmall@nethack.org>
+Date: Tue, 4 Jan 2022 08:24:08 -0500
+Subject: [PATCH] work around ubuntu 20.10 build issue
+
+NetHack was trying to suppress warn_unused_result
+in include/tradstdc.h, by defining warn_unused_result
+to an empty string. That began causing a build error
+in a system-supplied header file cdefs.h
+when using 20.10 ubuntu impish.
+
+Try skipping that in tradstdc.h for any linux, unless
+the NetHack build defines GCC_URWARN to force it into
+play.
+---
+ include/tradstdc.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/tradstdc.h b/include/tradstdc.h
+index 09decb4b15..8c33d55e0a 100644
+--- a/include/tradstdc.h
++++ b/include/tradstdc.h
+@@ -405,12 +405,14 @@ typedef genericptr genericptr_t; /* (void *) or (char *) */
+ #if __GNUC__ >= 3
+ #define UNUSED __attribute__((unused))
+ #define NORETURN __attribute__((noreturn))
++#if !defined(__linux__) || defined(GCC_URWARN)
+ /* disable gcc's __attribute__((__warn_unused_result__)) since explicitly
+    discarding the result by casting to (void) is not accepted as a 'use' */
+ #define __warn_unused_result__ /*empty*/
+ #define warn_unused_result /*empty*/
+ #endif
+ #endif
++#endif
+ 
+ #ifndef PRINTF_F
+ #define PRINTF_F(f, v)

diff --git a/games-roguelike/nethack/nethack-3.6.6.ebuild b/games-roguelike/nethack/nethack-3.6.6.ebuild
index 7d315c7ecad2..1d26ceda38ae 100644
--- a/games-roguelike/nethack/nethack-3.6.6.ebuild
+++ b/games-roguelike/nethack/nethack-3.6.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -40,6 +40,7 @@ S="${WORKDIR}/NetHack-NetHack-${PV}_Released"
 
 src_prepare() {
 	eapply "${FILESDIR}/${PN}-3.6.3-recover.patch"
+	eapply "${FILESDIR}/${PN}-3.6.6-wunused-result.patch" # bug 830556
 	eapply_user
 
 	cp "${FILESDIR}/${PN}-3.6.3-hint-$(usex X x11 tty)" hint || die "Failed to copy hint file"


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/nethack/files/, games-roguelike/nethack/
@ 2022-10-16 17:02 Ionen Wolkens
  0 siblings, 0 replies; 6+ messages in thread
From: Ionen Wolkens @ 2022-10-16 17:02 UTC (permalink / raw
  To: gentoo-commits

commit:     8a3473c6b639d633ba9517468e01e5a268d99b14
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 16 16:27:06 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sun Oct 16 16:59:05 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8a3473c6

games-roguelike/nethack: fix build w/ clang16, pass -std=gnu89

wrt -Wno-error, this has the same problem as net-misc/vncrec
for which there's not much that can reasonably be done about
here (and is harmless).

Closes: https://bugs.gentoo.org/874462
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../nethack/files/nethack-3.6.6-clang16.patch      | 10 ++++++++++
 ...ethack-3.6.6.ebuild => nethack-3.6.6-r1.ebuild} | 22 +++++++++++++++++-----
 2 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/games-roguelike/nethack/files/nethack-3.6.6-clang16.patch b/games-roguelike/nethack/files/nethack-3.6.6-clang16.patch
new file mode 100644
index 000000000000..b8a67644b80e
--- /dev/null
+++ b/games-roguelike/nethack/files/nethack-3.6.6-clang16.patch
@@ -0,0 +1,10 @@
+https://bugs.gentoo.org/874462
+--- a/win/tty/wintty.c
++++ b/win/tty/wintty.c
+@@ -26,2 +26,6 @@
+ 
++#ifdef DEF_PAGER
++#include <fcntl.h>
++#endif
++
+ #ifndef NO_TERMS

diff --git a/games-roguelike/nethack/nethack-3.6.6.ebuild b/games-roguelike/nethack/nethack-3.6.6-r1.ebuild
similarity index 88%
rename from games-roguelike/nethack/nethack-3.6.6.ebuild
rename to games-roguelike/nethack/nethack-3.6.6-r1.ebuild
index 1d26ceda38ae..7c457f11ab98 100644
--- a/games-roguelike/nethack/nethack-3.6.6.ebuild
+++ b/games-roguelike/nethack/nethack-3.6.6-r1.ebuild
@@ -8,6 +8,7 @@ inherit desktop flag-o-matic toolchain-funcs
 DESCRIPTION="The ultimate old-school single player dungeon exploration game"
 HOMEPAGE="https://www.nethack.org/"
 SRC_URI="https://nethack.org/download/${PV}/nethack-${PV//.}-src.tgz -> ${P}.tar.gz"
+S="${WORKDIR}/NetHack-NetHack-${PV}_Released"
 
 LICENSE="nethack"
 SLOT="0"
@@ -18,6 +19,7 @@ RDEPEND="
 	acct-group/gamestat
 	sys-libs/ncurses:0=
 	X? (
+		x11-libs/libX11
 		x11-libs/libXaw
 		x11-libs/libXpm
 		x11-libs/libXt
@@ -36,25 +38,35 @@ BDEPEND="
 	)
 "
 
-S="${WORKDIR}/NetHack-NetHack-${PV}_Released"
+PATCHES=(
+	"${FILESDIR}/${PN}-3.6.3-recover.patch"
+	"${FILESDIR}/${PN}-3.6.6-wunused-result.patch" # bug 830556
+	"${FILESDIR}/${PN}-3.6.6-clang16.patch"
+)
 
 src_prepare() {
-	eapply "${FILESDIR}/${PN}-3.6.3-recover.patch"
-	eapply "${FILESDIR}/${PN}-3.6.6-wunused-result.patch" # bug 830556
-	eapply_user
+	default
 
 	cp "${FILESDIR}/${PN}-3.6.3-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 -std=gnu89 # old codebase, incompatible with c2x
 	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
+	if use X; then
+		append-cflags -DX11_GRAPHICS -DUSE_XPM
+
+		# XtErrorHandler usage seems right, but headers "may" add ((noreturn))
+		# giving an incompatible type error with clang-16 (could alternatively
+		# use private _X_NORETURN but this may be fragile)
+		append-cflags -Wno-error=incompatible-pointer-types #874462
+	fi
 
 	LOCAL_MAKEOPTS=(
 		CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-10-16 17:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-13  3:56 [gentoo-commits] repo/gentoo:master commit in: games-roguelike/nethack/files/, games-roguelike/nethack/ Ian Delaney
  -- strict thread matches above, loose matches on Subject: below --
2022-10-16 17:02 Ionen Wolkens
2022-04-14 16:54 Matthew Smith
2018-08-23 19:50 Michał Górny
2016-01-16  2:39 Ian Delaney
2015-12-31 10:48 Patrice Clement

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox