diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /games-roguelike/nethack |
reinit the tree, so we can have metadata
Diffstat (limited to 'games-roguelike/nethack')
-rw-r--r-- | games-roguelike/nethack/Manifest | 10 | ||||
-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-nethackrc | 103 | ||||
-rw-r--r-- | games-roguelike/nethack/files/nethack-3.6.0-recover.patch | 110 | ||||
-rw-r--r-- | games-roguelike/nethack/files/nethack-3.6.0-x11-color.patch | 186 | ||||
-rw-r--r-- | games-roguelike/nethack/metadata.xml | 19 | ||||
-rw-r--r-- | games-roguelike/nethack/nethack-3.6.0-r3.ebuild | 143 |
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 +} |