summaryrefslogtreecommitdiff
path: root/games-roguelike/nethack
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /games-roguelike/nethack
reinit the tree, so we can have metadata
Diffstat (limited to 'games-roguelike/nethack')
-rw-r--r--games-roguelike/nethack/Manifest10
-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-nethackrc103
-rw-r--r--games-roguelike/nethack/files/nethack-3.6.0-recover.patch110
-rw-r--r--games-roguelike/nethack/files/nethack-3.6.0-x11-color.patch186
-rw-r--r--games-roguelike/nethack/metadata.xml19
-rw-r--r--games-roguelike/nethack/nethack-3.6.0-r3.ebuild143
8 files changed, 613 insertions, 0 deletions
diff --git a/games-roguelike/nethack/Manifest b/games-roguelike/nethack/Manifest
new file mode 100644
index 000000000000..1fad775aa55a
--- /dev/null
+++ b/games-roguelike/nethack/Manifest
@@ -0,0 +1,10 @@
+AUX nethack-3.6.0-hint-tty 258 SHA256 b0ed1c88691d8b087482717afef6d9d67819fefe40f6e28b4f615d15b41ad0d2 SHA512 112769bd68cb65f26604c084a0820eb9ab006a84f3bc754d43122d084b731746238b23beadff0bbd0dcaf39bfe009d466d3d355aeee7ad53939dc1974fe54531 WHIRLPOOL 8e3e4745120d9fd4df45254dc17993272f0f09dbf13f50e597be42a46536cc55db03e82cbc807579178783951c79eb518a76dfad9b31fc025332d35933d08b8b
+AUX nethack-3.6.0-hint-x11 412 SHA256 4e4eabf65e333d5525010c15f7cf88a2b5f731237a594a57681a25ac010958fc SHA512 7046791f17f5abc066b378af69f49d045f7533f794337e238400b98b5b5e6b518bb89d86dfe14828b54d0744d5cdd2ff5435fa7f1cacad92f3dd7caf643243ed WHIRLPOOL 68e1a7954adc868d006b282300169548c38bf3170d5f9fab51f8a1fdd7a6431d593f3905a57f7b5e3c7271bdd5aa2776017b28bc53aeec9adce5cd4197b52ad9
+AUX nethack-3.6.0-nethackrc 2458 SHA256 dbf86f76a7ce58cb906bd38dd89b74f5a0ea8b786a239e563dcb3f56d4d1e763 SHA512 9aae0d8ea3352b6335339fe91f5e52eb597f82e8fe50e0a52270e918123a02629610dda173419f6fc6e8f1e68358364bc5d8450e185b64c96d790790b68dddb9 WHIRLPOOL 2004f57ed11cc0c26b9e94412b6f0203f1d97d16e932de44cc0accbce79582d77c054a6e273c06752508637d7718b6b160887a17400012c0b830c249649d1680
+AUX nethack-3.6.0-recover.patch 3238 SHA256 ca6411f4b6ec8eace60d94969dc5be273d041a0fec29a3643cc9a04f36695078 SHA512 613b33757c1dabf897da77b53a26eb57318387462ff4d34f06411b2aef06d812c730db0ec4fb15b2895266bd914bd8ac11fa91334430834541b8d465c2a484ec WHIRLPOOL 050d09c5438b8ded9d8986c350021b16bea5dfad79d6f402f3993ca4d6fce592290c96598420b4c8311e3796644d1060234762f9717320027aad400817de8bca
+AUX nethack-3.6.0-x11-color.patch 6828 SHA256 e3a060842e3a86ebc0858ac2852b9f55d98fb880e99ae29f2c5294e8e82ab2df SHA512 074fb2db8962f918f605404d2810bc78c27ea461255bc6ad26ad24bbe65346b27868d9558a9486b334be29bbcc6896a95fafa2e4446045f316201754ea4bdab8 WHIRLPOOL f0332ca6edb644532158e4f7bec75896901c11a1fcae9f7872bd69761d96e9abcd05ec68671d9cdb271bea556bcb3c1bec94546756bc47d8748c76a322c45573
+DIST nethack-360-src.tgz 4261282 SHA256 1ade698d8458b8d87a4721444cb73f178c74ed1b6fde537c12000f8edf2cb18a SHA512 92370a3c60a4f6861b9c0f1e1320fc23d91cedc1615d0d09e06a0ee3e13c9c8c0cd931389bfd7a25845ed07ef966d19d9e46e77ae07084a941685dc67f49c813 WHIRLPOOL 14ff7a8bcf06b18e5192a7478f1fcd25eb55ecc149d9fa8b80def95311a498ef8d172ee4ff7e69c62e36b2a190a0f14b4a3d4f61183a48676fa77e2e7268690c
+EBUILD nethack-3.6.0-r3.ebuild 3994 SHA256 f6f116baec02a3a405dc9525c72f04aadb7f68ece82b1eb0d6581ae8c7195f35 SHA512 40041a297f4bc8dbf2962a981fba53e0f7b41a03bd9e6ab984f8071c619cb81b1833f98530e6eed0541463f7ff9e42db06181fa0b9ae7b48ac1b99f1b9b86360 WHIRLPOOL 86339697dd2b610c1621dc2f521f74f459c4b1f1749c27a601d588dcb0794e537fdef45df9e698175f6332bd58e9a0532c6a81f450e341d26cdb24aea0c7be8b
+MISC ChangeLog 6111 SHA256 448981361b18109b8bbe19af874c10bab1daf2e7277caa2d9607e5136b11fd32 SHA512 cbd21c7f953249243c5e83aa21925a1d327151f182e3168825e61e7cc2a9aa4dea5a002b4df294cffb358c3f1b2baf0c26668ccc184e09eb9f9bdbd1e1adca5d WHIRLPOOL 6d0751c7032aa76a435a41ee50c184ce7ae9bca09144a43199cdb669ed3c3ff28ac201a358c1f7fe843fd85f1a30b26c0e9632aebfb0a5ba8082f734ae7e4fe5
+MISC ChangeLog-2015 8515 SHA256 7ea9b91f1a1fabc200f1f52b9f1e463c2b4276722ce6afb9b361732099338160 SHA512 11ad53155f4b403a5b3375e6d1abe10856a57ce1898bc72e7c93dcbe320efff68061ef83a7205169ee8144b9acc34c2428b6cf606e7118a8c74b43fa211dd6d4 WHIRLPOOL 9055a53af9e273431a7508fb25a1d0349297e6ea14c155da729af53ae65c1907d73619b5df7bad6880b7ed78c69ca51397c7a20b28a862da0b10ee76bca43928
+MISC metadata.xml 622 SHA256 1e053dd4ec951336439348d78dee12125287c7b89f9213a16979cc3f9d059917 SHA512 48c137ed475f78ee25cb0c7c7da947c347ad730bb95ef9c54b0ee9b33cb3d9ffa2fd59df80a7475ae4f654439751313df957d2ba0fea0bdc2010c9a7e8e57085 WHIRLPOOL 776dafc8fb24f7750f5ad7d6eb226df74b8c32e8968e1812900aea951bb6ed770f4f41f36b81143afbac2b5a11d5df11541af81e6aa86e4a94dbbcbffa7b2fa5
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-nethackrc b/games-roguelike/nethack/files/nethack-3.6.0-nethackrc
new file mode 100644
index 000000000000..33c98064341f
--- /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/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/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 000000000000..d34ca029d51a
--- /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/metadata.xml b/games-roguelike/nethack/metadata.xml
new file mode 100644
index 000000000000..e845c650af5e
--- /dev/null
+++ b/games-roguelike/nethack/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>aranea@aixah.de</email>
+ <name>Luis Ressel</name>
+ <description>Proxied maintainer; set to assignee in all bugs</description>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">nethack</remote-id>
+ </upstream>
+ <use>
+ <flag name="experimental">Enable experimental features (showscore and status_hilite)</flag>
+ </use>
+</pkgmetadata>
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 000000000000..d0d3208f15f9
--- /dev/null
+++ b/games-roguelike/nethack/nethack-3.6.0-r3.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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 ~arm ~hppa ~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
+}