diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /games-roguelike/moria | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'games-roguelike/moria')
-rw-r--r-- | games-roguelike/moria/Manifest | 2 | ||||
-rw-r--r-- | games-roguelike/moria/files/5.5.2-fbsd.patch | 268 | ||||
-rw-r--r-- | games-roguelike/moria/files/5.5.2-gentoo-paths.patch | 58 | ||||
-rw-r--r-- | games-roguelike/moria/files/5.5.2-glibc.patch | 356 | ||||
-rw-r--r-- | games-roguelike/moria/files/5.5.2-hours.patch | 30 | ||||
-rw-r--r-- | games-roguelike/moria/files/5.5.2-warnings.patch | 12 | ||||
-rw-r--r-- | games-roguelike/moria/metadata.xml | 5 | ||||
-rw-r--r-- | games-roguelike/moria/moria-5.5.2.ebuild | 71 |
8 files changed, 802 insertions, 0 deletions
diff --git a/games-roguelike/moria/Manifest b/games-roguelike/moria/Manifest new file mode 100644 index 000000000000..351746b3cee5 --- /dev/null +++ b/games-roguelike/moria/Manifest @@ -0,0 +1,2 @@ +DIST moria-extras.tar.bz2 57324 SHA256 60f2a7d7bf8615a090cacafd17cf6fae8f9f0af78700439022e25014384b5076 SHA512 39d04ffdbe779fc070ee72084df5c731f8db25116e9156898d4c78c86e02288cf3560849461f2081209a06a74274789a671b104dc806b63a0d955adad17fd85f WHIRLPOOL cb862713c26d18515bb4017a14a8b25943c2a692eaf17d672faa2c8fb34a612a68342c7d21c2bcca247959a4a1906aa5649fda175e7c281cc1d81ba2c6ac9f89 +DIST um5.5.2.tar.Z 910536 SHA256 fffab65703c77058a1aadd8647cc1f44bd4349065af0b334702986f36007b2ed SHA512 987bbccb9cb4870ec91704cd20cf19875320d1cfe62c4c5a0063bfc3827732a0e3334a4ea3712137f3262d7418db0ea7e803d724e2dec4d5eb41ebe741f326cc WHIRLPOOL 568ea63c647cc999267834a24ecf3792f55e83c2942f5bcfaa70ca089abebb4de4d827646d493d551447ed3cdc34e39f31d0cca18f40eb767daf586d38951ebe diff --git a/games-roguelike/moria/files/5.5.2-fbsd.patch b/games-roguelike/moria/files/5.5.2-fbsd.patch new file mode 100644 index 000000000000..4f65b08f567d --- /dev/null +++ b/games-roguelike/moria/files/5.5.2-fbsd.patch @@ -0,0 +1,268 @@ +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 new file mode 100644 index 000000000000..5ce4ce4d2b4d --- /dev/null +++ b/games-roguelike/moria/files/5.5.2-gentoo-paths.patch @@ -0,0 +1,58 @@ +--- 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 new file mode 100644 index 000000000000..55e4e5de2b14 --- /dev/null +++ b/games-roguelike/moria/files/5.5.2-glibc.patch @@ -0,0 +1,356 @@ +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 new file mode 100644 index 000000000000..3d1c329d9b9b --- /dev/null +++ b/games-roguelike/moria/files/5.5.2-hours.patch @@ -0,0 +1,30 @@ +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 new file mode 100644 index 000000000000..33a2762b99d0 --- /dev/null +++ b/games-roguelike/moria/files/5.5.2-warnings.patch @@ -0,0 +1,12 @@ +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/metadata.xml b/games-roguelike/moria/metadata.xml new file mode 100644 index 000000000000..d3c2cc926f0b --- /dev/null +++ b/games-roguelike/moria/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>games</herd> +</pkgmetadata> diff --git a/games-roguelike/moria/moria-5.5.2.ebuild b/games-roguelike/moria/moria-5.5.2.ebuild new file mode 100644 index 000000000000..e1994f5f6905 --- /dev/null +++ b/games-roguelike/moria/moria-5.5.2.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit eutils toolchain-funcs games + +DESCRIPTION="Rogue-like D&D curses game similar to nethack (BUT BETTER)" +HOMEPAGE="http://remarque.org/~grabiner/moria.html" +SRC_URI="ftp://ftp.greyhelm.com/pub/Games/Moria/source/um${PV}.tar.Z + http://www.funet.fi/pub/unix/games/moria/source/um${PV}.tar.Z + http://www.piratehaven.org/~beej/moria/mirror/Games/Moria/source/um${PV}.tar.Z + http://alge.anart.no/ftp/pub/games/RPG/moria/um${PV}.tar.Z + ftp://kane.evendata.net/pub/${PN}-extras.tar.bz2" + +LICENSE="Moria" +SLOT="0" +KEYWORDS="amd64 ppc x86 ~x86-fbsd" +IUSE="" + +RDEPEND=">=sys-libs/ncurses-5" +DEPEND="${RDEPEND} + virtual/pkgconfig" + +S=${WORKDIR}/umoria + +src_prepare() { + local f + + epatch \ + "${FILESDIR}"/${PV}-gentoo-paths.patch \ + "${FILESDIR}"/${PV}-glibc.patch \ + "${FILESDIR}"/${PV}-fbsd.patch \ + "${FILESDIR}"/${PV}-hours.patch \ + "${FILESDIR}"/${PV}-warnings.patch + + for f in source/* unix/* ; do + ln -s ${f} $(basename ${f}) + done + + sed -i \ + -e "s:David Grabiner:root:" \ + -e "s:GENTOO_DATADIR:${GAMES_DATADIR}/${PN}:" \ + -e "s:GENTOO_STATEDIR:${GAMES_STATEDIR}:" \ + config.h || die + { + echo "#include <stdlib.h>" + echo "#include <stdio.h>" + } >> config.h || die + sed -i \ + -e "/^STATEDIR =/s:=.*:=\$(DESTDIR)${GAMES_STATEDIR}:" \ + -e "/^BINDIR = /s:=.*:=\$(DESTDIR)${GAMES_BINDIR}:" \ + -e "/^LIBDIR = /s:=.*:=\$(DESTDIR)${GAMES_DATADIR}/${PN}:" \ + -e "/^CFLAGS = /s:=.*:=${CFLAGS}:" \ + -e "/^OWNER = /s:=.*:=${GAMES_USER}:" \ + -e "/^GROUP = /s:=.*:=${GAMES_GROUP}:" \ + -e "/^CC = /s:=.*:=$(tc-getCC):" \ + -e '/^LFLAGS = /s:=.*:= $(LDFLAGS):' \ + Makefile || die + mv doc/moria.6 "${S}" || die +} + +src_install() { + dodir "${GAMES_BINDIR}" "${GAMES_DATADIR}/${PN}" "${GAMES_STATEDIR}" + emake DESTDIR="${D}" install + + doman moria.6 + dodoc README doc/* "${WORKDIR}"/${PN}-extras/* + + prepgamesdirs +} |