summaryrefslogtreecommitdiff
path: root/games-roguelike/moria/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-02-10 15:40:27 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-02-10 15:40:27 +0000
commit6bc2e4d7c5906e46a8f275a876ead6ec41aca5bb (patch)
treecee0a97398040001220ece3cd48c3d568bcddb4a /games-roguelike/moria/files
parent1db00cc6e94b90c08090bb5b8c406622946c4ae5 (diff)
gentoo resync : 10.02.2019
Diffstat (limited to 'games-roguelike/moria/files')
-rw-r--r--games-roguelike/moria/files/5.5.2-fbsd.patch268
-rw-r--r--games-roguelike/moria/files/5.5.2-gentoo-paths.patch58
-rw-r--r--games-roguelike/moria/files/5.5.2-glibc.patch356
-rw-r--r--games-roguelike/moria/files/5.5.2-hours.patch30
-rw-r--r--games-roguelike/moria/files/5.5.2-warnings.patch12
-rw-r--r--games-roguelike/moria/files/moria-5.7.10-gentoo-paths.patch33
-rw-r--r--games-roguelike/moria/files/moria.6108
7 files changed, 141 insertions, 724 deletions
diff --git a/games-roguelike/moria/files/5.5.2-fbsd.patch b/games-roguelike/moria/files/5.5.2-fbsd.patch
deleted file mode 100644
index 4f65b08f567d..000000000000
--- a/games-roguelike/moria/files/5.5.2-fbsd.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-Index: umoria/source/main.c
-===================================================================
---- umoria.orig/source/main.c
-+++ umoria/source/main.c
-@@ -88,6 +88,7 @@
- #include <time.h>
- #endif
-
-+#ifndef __FreeBSD__
- #ifndef VMS
- #ifndef MAC
- #ifndef GEMDOS
-@@ -98,6 +99,9 @@ long time();
- char *getenv();
- #endif
- #endif
-+#else
-+#include <stdlib.h>
-+#endif
-
- #ifndef MAC
- #ifndef AMIGA
-@@ -360,7 +364,7 @@ char *argv[];
- else
- { /* Create character */
- create_character();
--#ifdef MAC
-+#if defined(MAC) || defined(__FreeBSD__)
- birth_date = time ((time_t *)0);
- #else
- birth_date = time ((long *)0);
-Index: umoria/source/death.c
-===================================================================
---- umoria.orig/source/death.c
-+++ umoria/source/death.c
-@@ -123,6 +123,7 @@ static void kingly(void);
- #include <stdlib.h>
- #endif
-
-+#ifndef __FreeBSD__
- #ifndef VMS
- #ifndef MAC
- #if !defined(ATARIST_MWC) && !defined(AMIGA)
-@@ -130,18 +131,19 @@ long time();
- #endif
- #endif
- #endif
-+#endif
-
- static void date(day)
- char *day;
- {
- register char *tmp;
--#ifdef MAC
-+#if defined(MAC) || defined(__FreeBSD__)
- time_t clockvar;
- #else
- long clockvar;
- #endif
-
--#ifdef MAC
-+#if defined(MAC) || defined(__FreeBSD__)
- clockvar = time((time_t *) 0);
- #else
- clockvar = time((long *) 0);
-Index: umoria/source/io.c
-===================================================================
---- umoria.orig/source/io.c
-+++ umoria/source/io.c
-@@ -13,6 +13,11 @@
-
- #include "config.h"
-
-+#ifdef __FreeBSD__
-+#include <sys/ioctl_compat.h>
-+#include <time.h>
-+#endif
-+
- #ifdef HPUX
- #include <sys/bsdtty.h>
- #endif
-@@ -245,7 +250,9 @@ int suspend()
- struct ltchars lcbuf;
- struct tchars cbuf;
- int lbuf;
-+#ifndef __FreeBSD__
- long time();
-+#endif
-
- py.misc.male |= 2;
- (void) ioctl(0, TIOCGETP, (char *)&tbuf);
-@@ -313,7 +320,7 @@ void init_curses()
- #endif
-
- /* PC curses returns ERR */
--#if defined(USG) && !defined(PC_CURSES) && !defined(AMIGA)
-+#if (defined(USG) && !defined(PC_CURSES) && !defined(AMIGA)) || defined(__FreeBSD__)
- if (initscr() == NULL)
- #else
- if (initscr() == ERR)
-@@ -331,7 +338,7 @@ void init_curses()
- #if defined(atarist) && defined(__GNUC__)
- (void) signal (SIGTSTP, (__Sigfunc)suspend);
- #else
--#ifdef __386BSD__
-+#if defined(__386BSD__) || defined(__FreeBSD__)
- (void) signal (SIGTSTP, (sig_t)suspend);
- #else
- (void) signal (SIGTSTP, suspend);
-@@ -757,7 +764,7 @@ void shell_out()
- msg_print("Fork failed. Try again.");
- return;
- }
--#if defined(USG) || defined(__386BSD__)
-+#if defined(USG) || defined(__386BSD__) || defined(__FreeBSD__)
- (void) wait((int *) 0);
- #else
- (void) wait((union wait *) 0);
-Index: umoria/source/misc1.c
-===================================================================
---- umoria.orig/source/misc1.c
-+++ umoria/source/misc1.c
-@@ -28,7 +28,7 @@
- #endif
- #endif
-
--#if !defined(ATARIST_MWC) && !defined(MAC) && !defined(VMS) && !defined(AMIGA)
-+#if !defined(ATARIST_MWC) && !defined(MAC) && !defined(VMS) && !defined(AMIGA) && !defined(__FreeBSD__)
- long time();
- #endif
- struct tm *localtime();
-@@ -45,7 +45,7 @@ int32u seed;
- register int32u clock_var;
-
- if (seed == 0)
--#ifdef MAC
-+#if defined(MAC) || defined(__FreeBSD__)
- clock_var = time((time_t *)0);
- #else
- clock_var = time((long *)0);
-@@ -89,10 +89,14 @@ void reset_seed()
- int check_time()
- {
- #ifdef MORIA_HOU
-+#if defined(MAC) || defined(__FreeBSD__)
-+ time_t clock_var;
-+#else
- long clock_var;
-+#endif
- register struct tm *tp;
-
--#ifdef MAC
-+#if defined(MAC) || defined(__FreeBSD__)
- clock_var = time((time_t *)0);
- #else
- clock_var = time((long *)0);
-Index: umoria/source/save.c
-===================================================================
---- umoria.orig/source/save.c
-+++ umoria/source/save.c
-@@ -102,7 +102,7 @@ static void rd_monster();
- #endif
-
- #if !defined(ATARIST_MWC)
--#ifdef MAC
-+#if defined(MAC) || defined(__FreeBSD__)
- #include <time.h>
- #else
- long time();
-@@ -331,7 +331,7 @@ static int sv_write()
- }
-
- /* save the current time in the savefile */
--#ifdef MAC
-+#if defined(MAC) || defined(__FreeBSD__)
- l = time((time_t *)0);
- #else
- l = time((long *)0);
-@@ -1029,7 +1029,7 @@ int *generate;
- || (version_min == 2 && patch_level >= 2))
- rd_long ((int32u *)&birth_date);
- else
--#ifdef MAC
-+#if defined(MAC) || defined(__FreeBSD__)
- birth_date = time((time_t *)0);
- #else
- birth_date = time((long *)0);
-@@ -1253,7 +1253,7 @@ scoreboard; it will not be scored again.
- /* rotate store inventory, depending on how old the save file */
- /* is foreach day old (rounded up), call store_maint */
- /* calculate age in seconds */
--#ifdef MAC
-+#if defined(MAC) || defined(__FreeBSD__)
- start_time = time((time_t *)0);
- #else
- start_time = time((long *)0);
-Index: umoria/source/signals.c
-===================================================================
---- umoria.orig/source/signals.c
-+++ umoria/source/signals.c
-@@ -89,7 +89,7 @@ static int signal_count = 0;
-
- /*ARGSUSED*/
- #ifndef USG
--#ifdef __386BSD__
-+#if defined(__386BSD__) || defined(__FreeBSD__)
- static void signal_handler(sig, code, scp)
- #else
- static int signal_handler(sig, code, scp)
-@@ -217,7 +217,7 @@ void signals()
- #if defined(atarist) && defined(__GNUC__)
- (void) signal(SIGTSTP, (__Sigfunc)suspend);
- #else
--#ifdef __386BSD__
-+#if defined(__386BSD__) || defined(__FreeBSD__)
- (void) signal(SIGTSTP, (sig_t)suspend);
- #else
- (void) signal(SIGTSTP, suspend);
-Index: umoria/source/types.h
-===================================================================
---- umoria.orig/source/types.h
-+++ umoria/source/types.h
-@@ -6,11 +6,20 @@
- not for profit purposes provided that this copyright and statement are
- included in all such copies. */
-
-+#ifdef __FreeBSD__
-+#include <sys/types.h>
-+typedef u_int32_t int32u;
-+typedef int32_t int32;
-+typedef u_int16_t int16u;
-+typedef int16_t int16;
-+typedef u_int8_t int8u;
-+#else
- typedef unsigned long int32u;
- typedef long int32;
- typedef unsigned short int16u;
- typedef short int16;
- typedef unsigned char int8u;
-+#endif
- /* some machines will not accept 'signed char' as a type, and some accept it
- but still treat it like an unsigned character, let's just avoid it,
- any variable which can ever hold a negative value must be 16 or 32 bits */
-Index: umoria/unix/unix.c
-===================================================================
---- umoria.orig/unix/unix.c
-+++ umoria/unix/unix.c
-@@ -14,6 +14,10 @@
- /* defines TRUE and FALSE */
- #include <curses.h>
-
-+#ifdef __FreeBSD__
-+#include <unistd.h>
-+#endif
-+
- #include "config.h"
- #include "constant.h"
- #include "types.h"
-@@ -276,7 +280,9 @@ int getuid();
- void user_name(buf)
- char *buf;
- {
-+#ifndef __FreeBSD__
- extern char *getlogin();
-+#endif
- struct passwd *pwline;
- register char *p;
-
diff --git a/games-roguelike/moria/files/5.5.2-gentoo-paths.patch b/games-roguelike/moria/files/5.5.2-gentoo-paths.patch
deleted file mode 100644
index 5ce4ce4d2b4d..000000000000
--- a/games-roguelike/moria/files/5.5.2-gentoo-paths.patch
+++ /dev/null
@@ -1,58 +0,0 @@
---- umoria/unix/Makefile.orig 2003-12-31 14:52:58.583335976 -0500
-+++ umoria/unix/Makefile 2003-12-31 14:51:54.621059720 -0500
-@@ -3,6 +3,7 @@
- # LIBDIR must be the same directory defined in config.h
- # OWNER is who you want the game to be chown to.
- # GROUP is who you wnat the game to be chgrp to.
-+STATEDIR = /var/lib
- BINDIR = /home/zariski/grabiner/moria
- LIBDIR = /home/zariski/grabiner/moria/files
- OWNER = grabiner
-@@ -65,12 +66,11 @@
- chmod 4711 $(BINDIR)/moria
- chmod 711 $(LIBDIR)
- (cd files; cp $(LIBFILES) $(LIBDIR))
-- (cd $(LIBDIR); chmod 444 $(LIBFILES))
-- (cd $(LIBDIR); touch scores; chmod 644 scores)
-+ (cd $(STATEDIR); touch moriascores; chmod 664 moriascores; chown $(OWNER) moriascores; chgrp $(GROUP) moriascores)
- chown $(OWNER) $(BINDIR)/moria
- chgrp $(GROUP) $(BINDIR)/moria
-- (cd $(LIBDIR); chown $(OWNER) $(LIBFILES) scores)
-- (cd $(LIBDIR); chgrp $(GROUP) $(LIBFILES) scores)
-+ (cd $(LIBDIR); chown $(OWNER) $(LIBFILES))
-+ (cd $(LIBDIR); chgrp $(GROUP) $(LIBFILES))
- # If you are short on disk space, or aren't interested in debugging moria.
- # strip $(BINDIR)/moria
-
---- umoria/source/config.h.orig 2003-12-31 15:19:48.893531616 -0500
-+++ umoria/source/config.h 2003-12-31 15:21:09.584264760 -0500
-@@ -199,17 +199,18 @@
- #else
-
- /* This must be unix; change MORIA_LIB as appropriate. */
--#define MORIA_SAV "moria.save"
--#define MORIA_LIB(xxx) "/home/math/grabiner/moria/files/xxx"
--#define MORIA_HOU MORIA_LIB(hours)
--#define MORIA_MOR MORIA_LIB(news)
--#define MORIA_TOP MORIA_LIB(scores)
--#define MORIA_HELP MORIA_LIB(roglcmds.hlp)
--#define MORIA_ORIG_HELP MORIA_LIB(origcmds.hlp)
--#define MORIA_WIZ_HELP MORIA_LIB(rwizcmds.hlp)
--#define MORIA_OWIZ_HELP MORIA_LIB(owizcmds.hlp)
--#define MORIA_WELCOME MORIA_LIB(welcome.hlp)
--#define MORIA_VER MORIA_LIB(version.hlp)
-+#define MORIA_SAV ".moria.save"
-+#define MORIA_LIB(xxx) "GENTOO_DATADIR/" xxx
-+#define MORIA_STATE(xxx) "GENTOO_STATEDIR/" xxx
-+#define MORIA_HOU MORIA_LIB("hours")
-+#define MORIA_MOR MORIA_LIB("news")
-+#define MORIA_TOP MORIA_STATE("moriascores")
-+#define MORIA_HELP MORIA_LIB("roglcmds.hlp")
-+#define MORIA_ORIG_HELP MORIA_LIB("origcmds.hlp")
-+#define MORIA_WIZ_HELP MORIA_LIB("rwizcmds.hlp")
-+#define MORIA_OWIZ_HELP MORIA_LIB("owizcmds.hlp")
-+#define MORIA_WELCOME MORIA_LIB("welcome.hlp")
-+#define MORIA_VER MORIA_LIB("version.hlp")
-
- #endif
- #endif
diff --git a/games-roguelike/moria/files/5.5.2-glibc.patch b/games-roguelike/moria/files/5.5.2-glibc.patch
deleted file mode 100644
index 55e4e5de2b14..000000000000
--- a/games-roguelike/moria/files/5.5.2-glibc.patch
+++ /dev/null
@@ -1,356 +0,0 @@
-diff -Naur common-orig/Makefile umoria/unix/Makefile
---- common-orig/Makefile 2003-12-09 10:06:19.000000000 -0500
-+++ umoria/unix/Makefile 2003-12-09 10:07:12.000000000 -0500
-@@ -14,9 +14,9 @@
- CFLAGS = -O
-
- # For BSD Systems
--CURSES = -lcurses -ltermcap
-+# CURSES = -lcurses -ltermcap
- # For SYS V Systems
--# CURSES = -lcurses
-+CURSES = `pkg-config ncurses --libs`
- # For XENIX, some XENIX systems may need -ltinfo
- # CURSES = -ltcap -ltermcap -lx
-
-diff -Naur common-orig/death.c umoria/source/death.c
---- common-orig/death.c 2003-12-09 10:06:19.000000000 -0500
-+++ umoria/source/death.c 2003-12-09 10:06:56.000000000 -0500
-@@ -175,10 +175,12 @@
- /* The following code is provided especially for systems which -CJS-
- have no flock system call. It has never been tested. */
-
-+#ifndef LOCK_EX
- #define LOCK_EX 1
- #define LOCK_SH 2
- #define LOCK_NB 4
- #define LOCK_UN 8
-+#endif
-
- /* An flock HACK. LOCK_SH and LOCK_EX are not distinguished. DO NOT release
- a lock which you failed to set! ALWAYS release a lock you set! */
-diff -Naur common-orig/io.c umoria/source/io.c
---- common-orig/io.c 2003-12-09 10:06:19.000000000 -0500
-+++ umoria/source/io.c 2003-12-09 10:06:56.000000000 -0500
-@@ -62,6 +62,7 @@
-
-
- #include <ctype.h>
-+#include <termios.h>
-
- #if defined(SYS_V) && defined(lint)
- /* for AIX, prevent hundreds of unnecessary lint errors, must define before
-@@ -334,7 +335,9 @@
- #ifdef __386BSD__
- (void) signal (SIGTSTP, (sig_t)suspend);
- #else
-- (void) signal (SIGTSTP, suspend);
-+ /* (void) signal (SIGTSTP, suspend); */
-+ /* libc6 defaults to BSD, this expects SYSV */
-+ (void) sysv_signal (SIGTSTP, suspend);
- #endif
- #endif
- #endif
-diff -Naur common-orig/misc3.c umoria/source/misc3.c
---- common-orig/misc3.c 2003-12-09 10:06:19.000000000 -0500
-+++ umoria/source/misc3.c 2003-12-09 10:06:56.000000000 -0500
-@@ -1249,8 +1249,7 @@
- {
- int i;
- register inven_type *i_ptr;
-- vtype prt2;
-- bigvtype prt1;
-+ bigvtype prt1, prt2;
- #ifdef ATARIST_MWC
- int32u holder;
- #endif
-diff -Naur common-orig/misc4.c umoria/source/misc4.c
---- common-orig/misc4.c 2003-12-09 10:06:19.000000000 -0500
-+++ umoria/source/misc4.c 2003-12-09 10:06:56.000000000 -0500
-@@ -33,7 +33,7 @@
- void scribe_object()
- {
- int item_val, j;
-- vtype out_val, tmp_str;
-+ bigvtype out_val, tmp_str;
-
- if (inven_ctr > 0 || equip_ctr > 0)
- {
-diff -Naur common-orig/moria1.c umoria/source/moria1.c
---- common-orig/moria1.c 2003-12-09 10:06:19.000000000 -0500
-+++ umoria/source/moria1.c 2003-12-09 10:06:56.000000000 -0500
-@@ -332,8 +332,8 @@
- {
- objdes(tmp_val, &inventory[i], TRUE);
- tmp_val[lim] = 0; /* Truncate if too long. */
-- (void) sprintf(out_val[i], " %c) %s", 'a'+i, tmp_val);
-- l = strlen(out_val[i]);
-+ (void) sprintf(out_val[i], "%c) %s", 'a'+i, tmp_val);
-+ l = strlen(out_val[i]) + 2;
- if (weight)
- l += 9;
- if (l > len)
-@@ -352,9 +352,12 @@
- {
- /* don't need first two spaces if in first column */
- if (col == 0)
-- prt(&out_val[i][2], current_line, col);
-- else
- prt(out_val[i], current_line, col);
-+ else
-+ {
-+ put_buffer(" ", current_line, col);
-+ prt(out_val[i], current_line, col+2);
-+ }
- if (weight)
- {
- total_weight = inventory[i].weight*inventory[i].number;
-@@ -466,9 +469,9 @@
- }
- objdes(prt2, &inventory[i], TRUE);
- prt2[lim] = 0; /* Truncate if necessary */
-- (void) sprintf(out_val[line], " %c) %-14s: %s", line+'a',
-- prt1, prt2);
-- l = strlen(out_val[line]);
-+ (void) sprintf(out_val[line], "%c) %-14s: %s", line+'a',
-+ prt1, prt2);
-+ l = strlen(out_val[line]) + 2;
- if (weight)
- l += 9;
- if (l > len)
-@@ -488,9 +491,12 @@
- {
- /* don't need first two spaces when using whole screen */
- if (col == 0)
-- prt(&out_val[line][2], line+1, col);
-- else
- prt(out_val[line], line+1, col);
-+ else
-+ {
-+ put_buffer(" ", line+1, col);
-+ prt(out_val[line], line+1, col+2);
-+ }
- if (weight)
- {
- total_weight = i_ptr->weight*i_ptr->number;
-diff -Naur common-orig/signals.c umoria/source/signals.c
---- common-orig/signals.c 2003-12-09 10:06:19.000000000 -0500
-+++ umoria/source/signals.c 2003-12-09 10:06:56.000000000 -0500
-@@ -113,7 +113,11 @@
- if(error_sig >= 0) /* Ignore all second signals. */
- {
- if(++signal_count > 10) /* Be safe. We will die if persistent enough. */
-+#ifdef __FreeBSD__
- (void) signal(sig, SIG_DFL);
-+#else
-+ (void) sysv_signal(sig, SIG_DFL);
-+#endif
- return;
- }
- error_sig = sig;
-@@ -126,7 +126,11 @@
- )
- {
- if (death)
-+#ifdef __FreeBSD__
- (void) signal(sig, SIG_IGN); /* Can't quit after death. */
-+#else
-+ (void) sysv_signal(sig, SIG_IGN); /* Can't quit after death. */
-+#endif
- else if (!character_saved && character_generated)
- {
- if (!get_check("Really commit *Suicide*?"))
-@@ -137,7 +137,11 @@
- put_qio();
- error_sig = -1;
- #ifdef USG
-+#ifdef __FreeBSD__
- (void) signal(sig, signal_handler);/* Have to restore handler. */
-+#else
-+ (void) sysv_signal(sig, signal_handler);/* Have to restore handler. */
-+#endif
- #else
- (void) sigsetmask(smask);
- #endif
-@@ -179,7 +179,11 @@
- restore_term();
- #if !defined(MSDOS) && !defined(AMIGA) && !defined(ATARIST_TC)
- /* always generate a core dump */
-+#ifdef __FreeBSD__
- (void) signal(sig, SIG_DFL);
-+#else
-+ (void) sysv_signal(sig, SIG_DFL);
-+#endif
- (void) kill(getpid(), sig);
- (void) sleep(5);
- #endif
-@@ -199,7 +199,11 @@
- #if defined(atarist) && defined(__GNUC__)
- (void) signal(SIGTSTP, (__Sigfunc)SIG_IGN);
- #else
-+#ifdef __FreeBSD__
- (void) signal(SIGTSTP, SIG_IGN);
-+#else
-+ (void) sysv_signal(SIGTSTP, SIG_IGN);
-+#endif
- #endif
- #ifndef USG
- mask = sigsetmask(0);
-@@ -220,7 +220,11 @@
- #ifdef __386BSD__
- (void) signal(SIGTSTP, (sig_t)suspend);
- #else
-+#ifdef __FreeBSD__
- (void) signal(SIGTSTP, suspend);
-+#else
-+ (void) sysv_signal(SIGTSTP, suspend);
-+#endif
- #endif
- #endif
- #ifndef USG
-@@ -237,7 +237,11 @@
- {
- #if !defined(ATARIST_MWC) && !defined(ATARIST_TC)
- /* No signals for Atari ST compiled with MWC or TC. */
-+#ifdef __FreeBSD__
- (void) signal(SIGINT, signal_handler);
-+#else
-+ (void) sysv_signal(SIGINT, signal_handler);
-+#endif
-
- #if defined(atarist) && defined(__GNUC__)
- /* Atari ST compiled with GNUC has most signals, but we need a cast
-@@ -259,8 +259,13 @@
-
- #else
- /* Everybody except the atari st. */
-+#ifdef __FreeBSD__
- (void) signal(SIGINT, signal_handler);
- (void) signal(SIGFPE, signal_handler);
-+#else
-+ (void) sysv_signal(SIGINT, signal_handler);
-+ (void) sysv_signal(SIGFPE, signal_handler);
-+#endif
-
- #if defined(MSDOS)
- /* many fewer signals under MSDOS */
-@@ -278,30 +278,61 @@
-
- /* Everybody except Atari, MSDOS, and Amiga. */
- /* Ignore HANGUP, and let the EOF code take care of this case. */
-+#ifdef __FreeBSD__
- (void) signal(SIGHUP, SIG_IGN);
- (void) signal(SIGQUIT, signal_handler);
- (void) signal(SIGILL, signal_handler);
- (void) signal(SIGTRAP, signal_handler);
- (void) signal(SIGIOT, signal_handler);
-+#else
-+ (void) sysv_signal(SIGHUP, SIG_IGN);
-+ (void) sysv_signal(SIGQUIT, signal_handler);
-+ (void) sysv_signal(SIGILL, signal_handler);
-+ (void) sysv_signal(SIGTRAP, signal_handler);
-+ (void) sysv_signal(SIGIOT, signal_handler);
-+#endif
- #ifdef SIGEMT /* in BSD systems */
- (void) signal(SIGEMT, signal_handler);
- #endif
- #ifdef SIGDANGER /* in SYSV systems */
- (void) signal(SIGDANGER, signal_handler);
- #endif
-+#ifdef __FreeBSD__
- (void) signal(SIGKILL, signal_handler);
- (void) signal(SIGBUS, signal_handler);
- (void) signal(SIGSEGV, signal_handler);
-+#else
-+ (void) sysv_signal(SIGKILL, signal_handler);
-+ (void) sysv_signal(SIGBUS, signal_handler);
-+ (void) sysv_signal(SIGSEGV, signal_handler);
-+#endif
- #ifdef SIGSYS
-+#ifdef __FreeBSD__
- (void) signal(SIGSYS, signal_handler);
-+#else
-+ (void) sysv_signal(SIGSYS, signal_handler);
-+#endif
- #endif
-+#ifdef __FreeBSD__
- (void) signal(SIGTERM, signal_handler);
- (void) signal(SIGPIPE, signal_handler);
-+#else
-+ (void) sysv_signal(SIGTERM, signal_handler);
-+ (void) sysv_signal(SIGPIPE, signal_handler);
-+#endif
- #ifdef SIGXCPU /* BSD */
-+#ifdef __FreeBSD__
- (void) signal(SIGXCPU, signal_handler);
-+#else
-+ (void) sysv_signal(SIGXCPU, signal_handler);
-+#endif
- #endif
- #ifdef SIGPWR /* SYSV */
-+#ifdef __FreeBSD__
- (void) signal(SIGPWR, signal_handler);
-+#else
-+ (void) sysv_signal(SIGPWR, signal_handler);
-+#endif
- #endif
- #endif
- #endif
-@@ -314,7 +314,11 @@
- #if !defined(ATARIST_MWC)
- (void) signal(SIGINT, SIG_IGN);
- #ifdef SIGQUIT
-+#ifdef __FreeBSD__
- (void) signal(SIGQUIT, SIG_IGN);
-+#else
-+ (void) sysv_signal(SIGQUIT, SIG_IGN);
-+#endif
- #endif
- #endif
- }
-@@ -324,7 +324,11 @@
- #if !defined(ATARIST_MWC)
- (void) signal(SIGINT, SIG_DFL);
- #ifdef SIGQUIT
-+#ifdef __FreeBSD__
- (void) signal(SIGQUIT, SIG_DFL);
-+#else
-+ (void) sysv_signal(SIGQUIT, SIG_DFL);
-+#endif
- #endif
- #endif
- }
-@@ -335,13 +335,21 @@
- #if defined(atarist) && defined(__GNUC__)
- (void) signal(SIGINT, (__Sigfunc)signal_handler);
- #else
-+#ifdef __FreeBSD__
- (void) signal(SIGINT, signal_handler);
-+#else
-+ (void) sysv_signal(SIGINT, signal_handler);
-+#endif
- #endif
- #ifdef SIGQUIT
- #if defined(atarist) && defined(__GNUC__)
- (void) signal(SIGQUIT, (__Sigfunc)signal_handler);
- #else
-+#ifdef __FreeBSD__
- (void) signal(SIGQUIT, signal_handler);
-+#else
-+ (void) sysv_signal(SIGQUIT, signal_handler);
-+#endif
- #endif
- #endif
- #endif
-diff -Naur common-orig/unix.c umoria/unix/unix.c
---- common-orig/unix.c 2003-12-09 10:06:19.000000000 -0500
-+++ umoria/unix/unix.c 2003-12-09 10:06:56.000000000 -0500
-@@ -261,7 +261,7 @@
- #endif
-
- #ifdef USG
--unsigned short getuid();
-+/* unsigned short getuid(); */
- #else
- #ifndef SECURE
- #ifdef BSD4_3
diff --git a/games-roguelike/moria/files/5.5.2-hours.patch b/games-roguelike/moria/files/5.5.2-hours.patch
deleted file mode 100644
index 3d1c329d9b9b..000000000000
--- a/games-roguelike/moria/files/5.5.2-hours.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -ru umoria.orig/source/files.c umoria/source/files.c
---- umoria.orig/source/files.c 1994-07-21 21:47:22.000000000 -0400
-+++ umoria/source/files.c 2010-05-05 14:51:44.334588483 -0400
-@@ -130,19 +130,19 @@
- if (strlen(in_line) > 3)
- {
- if (!strncmp(in_line, "SUN:", 4))
-- (void) strcpy(days[0], in_line);
-+ (void) snprintf(days[0], sizeof(days[0]), "%s", in_line);
- else if (!strncmp(in_line, "MON:", 4))
-- (void) strcpy(days[1], in_line);
-+ (void) snprintf(days[1], sizeof(days[0]), "%s", in_line);
- else if (!strncmp(in_line, "TUE:", 4))
-- (void) strcpy(days[2], in_line);
-+ (void) snprintf(days[2], sizeof(days[0]), "%s", in_line);
- else if (!strncmp(in_line, "WED:", 4))
-- (void) strcpy(days[3], in_line);
-+ (void) snprintf(days[3], sizeof(days[0]), "%s", in_line);
- else if (!strncmp(in_line, "THU:", 4))
-- (void) strcpy(days[4], in_line);
-+ (void) snprintf(days[4], sizeof(days[0]), "%s", in_line);
- else if (!strncmp(in_line, "FRI:", 4))
-- (void) strcpy(days[5], in_line);
-+ (void) snprintf(days[5], sizeof(days[0]), "%s", in_line);
- else if (!strncmp(in_line, "SAT:", 4))
-- (void) strcpy(days[6], in_line);
-+ (void) snprintf(days[6], sizeof(days[0]), "%s", in_line);
- }
- (void) fclose(file1);
- }
diff --git a/games-roguelike/moria/files/5.5.2-warnings.patch b/games-roguelike/moria/files/5.5.2-warnings.patch
deleted file mode 100644
index 33a2762b99d0..000000000000
--- a/games-roguelike/moria/files/5.5.2-warnings.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru umoria.orig/unix/unix.c umoria/unix/unix.c
---- umoria.orig/unix/unix.c 2014-11-01 02:45:07.375535783 -0400
-+++ umoria/unix/unix.c 2014-11-01 02:45:58.575820065 -0400
-@@ -315,7 +315,7 @@
-
- user[0] = '\0';
- file++;
-- while (*file != '/' && i < sizeof(user))
-+ while (*file != '/' && i < sizeof(user) - 1)
- user[i++] = *file++;
- user[i] = '\0';
- if (i == 0)
diff --git a/games-roguelike/moria/files/moria-5.7.10-gentoo-paths.patch b/games-roguelike/moria/files/moria-5.7.10-gentoo-paths.patch
new file mode 100644
index 000000000000..0d17c549e773
--- /dev/null
+++ b/games-roguelike/moria/files/moria-5.7.10-gentoo-paths.patch
@@ -0,0 +1,33 @@
+diff --git a/src/config.cpp b/src/config.cpp
+index 09528f7..1c299ed 100644
+--- a/src/config.cpp
++++ b/src/config.cpp
+@@ -12,17 +12,17 @@ namespace config {
+ // Data files used by Umoria
+ // NOTE: use relative paths to the executable binary.
+ namespace files {
+- const std::string splash_screen = "data/splash.txt";
+- const std::string welcome_screen = "data/welcome.txt";
+- const std::string license = "LICENSE";
+- const std::string versions_history = "data/versions.txt";
+- const std::string help = "data/help.txt";
+- const std::string help_wizard = "data/help_wizard.txt";
+- const std::string help_roguelike = "data/rl_help.txt";
+- const std::string help_roguelike_wizard = "data/rl_help_wizard.txt";
+- const std::string death_tomb = "data/death_tomb.txt";
+- const std::string death_royal = "data/death_royal.txt";
+- const std::string scores = "scores.dat";
++ const std::string splash_screen = "/usr/share/moria/splash.txt";
++ const std::string welcome_screen = "/usr/share/moria/welcome.txt";
++ const std::string license = "/usr/share/doc/@PF@/LICENSE";
++ const std::string versions_history = "/usr/share/moria/versions.txt";
++ const std::string help = "/usr/share/moria/help.txt";
++ const std::string help_wizard = "/usr/share/moria/help_wizard.txt";
++ const std::string help_roguelike = "/usr/share/moria/rl_help.txt";
++ const std::string help_roguelike_wizard = "/usr/share/moria/rl_help_wizard.txt";
++ const std::string death_tomb = "/usr/share/moria/death_tomb.txt";
++ const std::string death_royal = "/usr/share/moria/death_royal.txt";
++ const std::string scores = "/var/lib/moria/scores.dat";
+ std::string save_game = "game.sav";
+ }
+
diff --git a/games-roguelike/moria/files/moria.6 b/games-roguelike/moria/files/moria.6
new file mode 100644
index 000000000000..be1fc7cc353b
--- /dev/null
+++ b/games-roguelike/moria/files/moria.6
@@ -0,0 +1,108 @@
+.TH MORIA 6 ""
+.SH NAME
+moria \- a dungeon game
+.SH SYNOPSIS
+.B
+moria
+[
+.B \-o
+] [
+.B \-r
+] [
+.B \-s
+] [
+.B \-S
+] [
+.B \-n
+] [
+.B \-w
+] [ savefile ]
+.SH DESCRIPTION
+.I Moria\^
+plays a dungeon game with you.
+It lets you generate a character,
+lets you buy equipment,
+and lets you wander in a fathomless dungeon
+while finding treasure and being attacked by monsters
+and fellow adventurers.
+Typing
+.B ?
+gives you a list of commands.
+.PP
+The ultimate object of
+.I moria
+is to kill the Balrog,
+which dwells on the 50th level of the
+dungeon, 2,500 feet underground.
+Most players never even reach the Balrog,
+and those that do seldom live to tell about it.
+.PP
+For a more complete description of the game,
+read the document
+.I The Dungeons of Moria.
+.PP
+By default,
+.I moria
+will save and restore games from a file
+called moria.save in your home directory. If the environment
+variable MORIA_SAV is defined, then
+.I moria
+will use that
+file name instead of the default. If MORIA_SAV is not a complete
+path name, then the savefile will be created or restored from the
+current directory. You can also explicitly specify a savefile
+on the command line.
+.PP
+If you use the \fB\-n\fP option,
+.I moria
+will create a new game,
+ignoring any savefile which may already exist.
+This works best when a savefile name is specified on the
+command line, as this will prevent
+.I moria
+from trying to overwrite the default savefile
+(if it exists) when you try to save your game.
+.PP
+You move in various directions
+by pressing the numeric keypad keys, VMS-style.
+If you specify
+\fB\-r\fP, you move the same way you do in \fIrogue\fP(6).
+You can also specify
+\fB\-o\fP to force the VMS-style command set.
+These options will override defaults stored in the savefile. If these
+options are given multiple times, only the last one will take effect.
+.PP
+If you specify
+.BR \-s ,
+.I moria
+prints all of the scores in the score file and exits.
+On a multiuser system, if you specify
+.BR \-S ,
+.I moria
+prints prints only those scores belonging to you and then exits.
+.PP
+If you specify \fB\-w\fP,
+.I moria
+will start up in wizard mode.
+You can resurrect a dead character by using this option when starting
+the game. Resurrected characters are teleported to the town level
+and given zero hitpoints.
+Wizard mode is intended for debugging the game, and for experimenting
+with new features. Any other use is considered cheating.
+Games played with wizard mode are not scored.
+.SH AUTHORS
+The original version of Moria was written in VMS/Pascal by Robert
+Alan Koeneke, Jimmey Wayne Todd,
+Gary McAdoo, and others at the University of Oklahoma.
+This version was written by Jim Wilson at the University of California,
+Berkeley, and released with minor revisions by David Grabiner at Harvard
+University.
+.SH BUGS
+.PP
+A suspended game that gets a hangup signal will die without creating a
+save file.
+
+Rerolling with a % at the class prompt not implemented.
+
+For a more comprehensive list, see the ERRORS file in the source
+distribution.