diff options
-rw-r--r-- | games/Makefile | 1 | ||||
-rw-r--r-- | games/aestats/Makefile | 52 | ||||
-rw-r--r-- | games/aestats/distinfo | 3 | ||||
-rw-r--r-- | games/aestats/files/fbsd_stub.c | 53 | ||||
-rw-r--r-- | games/aestats/pkg-descr | 18 | ||||
-rw-r--r-- | games/aestats/pkg-plist | 77 |
6 files changed, 204 insertions, 0 deletions
diff --git a/games/Makefile b/games/Makefile index 46deab197cb9..936486e5e641 100644 --- a/games/Makefile +++ b/games/Makefile @@ -22,6 +22,7 @@ SUBDIR += adgali SUBDIR += adom SUBDIR += adonthell + SUBDIR += aestats SUBDIR += affenspiel SUBDIR += afternoonstalker SUBDIR += airrox diff --git a/games/aestats/Makefile b/games/aestats/Makefile new file mode 100644 index 000000000000..460bc9693cb9 --- /dev/null +++ b/games/aestats/Makefile @@ -0,0 +1,52 @@ +# New ports collection makefile for: AEstats +# Date created: 27 Jan 2006 +# Whom: Alexey Dokuchaev <danfe@FreeBSD.org> +# +# $FreeBSD$ +# + +PORTNAME= aestats +PORTVERSION= 5.39 +CATEGORIES= games +MASTER_SITES= ${MASTER_SITE_LOCAL} http://freebsd.nsu.ru/distfiles/ +MASTER_SITE_SUBDIR= danfe +DISTNAME= ${PORTNAME}-v${PORTVERSION} + +MAINTAINER= danfe@FreeBSD.org +COMMENT= An advanced HTML statistics generator for various games + +ONLY_FOR_ARCHS= i386 + +USE_ZIP= yes + +WRKSRC= ${WRKDIR}/${DISTNAME}/Linux-o +LINUXBINDIR= ${WRKSRC}/../Linux-Bin +MAKEFILE= makefile +MAKE_ARGS= cc=${CC} + +post-extract: .SILENT + ${CP} ${FILESDIR}/fbsd_stub.c ${WRKSRC} + ${REINPLACE_CMD} -e 's,aes.o,& fbsd_stub.o,' ${WRKSRC}/${MAKEFILE} + ${ECHO_CMD} >> ${LINUXBINDIR}/alias-example.txt + ${MV} ${WRKSRC}/../unsupported/system/Unreal-225 ${WRKSRC}/../unrealmod + +# This port is special. Author does not distribute source code, but gives +# us Linux .o files instead. With some hacking, we can build native FreeBSD +# executables from those .o files. Pretty neat, huh? :-) +# +pre-build: + cd ${WRKSRC} && ${CC} ${CFLAGS} -c fbsd_stub.c + ${OBJCOPY} --redefine-sym stdout=__stdoutp ${WRKSRC}/aespages.o + ${OBJCOPY} --redefine-sym stdout=__stdoutp ${WRKSRC}/paessubs.o + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/AEstats ${WRKSRC}/preAEs ${PREFIX}/bin + @${MKDIR} ${DATADIR} + ${INSTALL_DATA} ${LINUXBINDIR}/AEsscore.cfg \ + ${LINUXBINDIR}/AEstats.cfg ${LINUXBINDIR}/banlist.txt ${DATADIR} + ${INSTALL_DATA} ${LINUXBINDIR}/alias-example.txt ${DATADIR}/alias.txt + ${INSTALL_DATA} ${WRKSRC}/../AEstats.txt ${DATADIR} + cd ${WRKSRC}/.. && ${FIND} logs stats unrealmod | \ + ${CPIO} -pdu -R ${SHAREOWN}:${SHAREGRP} ${DATADIR} + +.include <bsd.port.mk> diff --git a/games/aestats/distinfo b/games/aestats/distinfo new file mode 100644 index 000000000000..8aead288e488 --- /dev/null +++ b/games/aestats/distinfo @@ -0,0 +1,3 @@ +MD5 (aestats-v5.39.zip) = 015184dbf6198b95743c7053dbeb4913 +SHA256 (aestats-v5.39.zip) = 03cf29eef0bf844a3e59186a2dabd4d7261499aef1944d60048bb8e1f044f5b0 +SIZE (aestats-v5.39.zip) = 1544503 diff --git a/games/aestats/files/fbsd_stub.c b/games/aestats/files/fbsd_stub.c new file mode 100644 index 000000000000..8ffa6c1d67c8 --- /dev/null +++ b/games/aestats/files/fbsd_stub.c @@ -0,0 +1,53 @@ +#include <sys/param.h> +#include <sys/stat.h> +#include <runetype.h> + +long int +__strtol_internal(__const char *__restrict __nptr, char **__restrict __endptr, + int __base, int __group) +{ + + return (strtol(__nptr, __endptr, __base)); +} + +/* + * This one is special. We cannot simply call stat(2) and be done with it: + * Linux' and FreeBSD's ``struct stat'' have different sizes (88 and 96, + * respectively per my testing here, but YMMV), leading us to core dump + * if we do so. Instead, copy only mtime field from FreeBSD's ``struct + * stat'' into proper place of provided Linux' ``struct stat'' buffer. + */ + +struct __linux_stat { + char pad0[0x40]; + struct timespec __st_mtim; + char pad1[0x10]; +}; + +int +__xstat(int __ver, __const char *__filename, struct __linux_stat *__stat_buf) +{ + struct stat sb; + int err = stat(__filename, &sb); + + if (!err) + __stat_buf->__st_mtim = sb.st_mtimespec; + return (err); +} + +const int *__ctype_tolower; +const int *__ctype_toupper; + +static void __fbsd_prepare(void) __attribute__ ((constructor)); + +static void +__fbsd_prepare(void) +{ +#if __FreeBSD_version > 502118 + __ctype_tolower = _CurrentRuneLocale->__maplower; + __ctype_toupper = _CurrentRuneLocale->__mapupper; +#else + __ctype_tolower = _CurrentRuneLocale->maplower; + __ctype_toupper = _CurrentRuneLocale->mapupper; +#endif +} diff --git a/games/aestats/pkg-descr b/games/aestats/pkg-descr new file mode 100644 index 000000000000..d02f1e60a8a1 --- /dev/null +++ b/games/aestats/pkg-descr @@ -0,0 +1,18 @@ +AEstats reads game log files for just about all shooters, converts them into +platform independent log format (meta log format), and generates meaningful +(and very pretty!) stats and ranking pages in HTML form. Overall features: + + * Split into two executables to make the code more modular (independent + of specific games/mod). This also makes updates quicker and less prone + to new bugs. + * Modules are command line driven, giving you the maximum control of the + the executables, without having to deal with klutzy platform dependent + interfaces. This makes it possible to control the modules via batch + files or scripts. Ideal for automating calls. + * HTML output is eatable by any browser with frames. Since plain HTML + code is generated, any user should be able to view the output. + * Provides an UnrealScript module (aeonsdmmod.u) that will generate + extra log info, since Unreal does not provide any frag obituaries by + default. + +WWW: http://www.planetquake.com/aeons/aestats/ diff --git a/games/aestats/pkg-plist b/games/aestats/pkg-plist new file mode 100644 index 000000000000..e3a7fac41014 --- /dev/null +++ b/games/aestats/pkg-plist @@ -0,0 +1,77 @@ +bin/AEstats +bin/preAEs +%%DATADIR%%/logs/ngUT.log +%%DATADIR%%/logs/ngUT.mlg +@dirrm %%DATADIR%%/logs +%%DATADIR%%/stats/headers/AEstatsBestOfsHead.html +%%DATADIR%%/stats/headers/AEstatsBuddyHead.html +%%DATADIR%%/stats/headers/AEstatsDiffMatrixHead.html +%%DATADIR%%/stats/headers/AEstatsFAQHead.html +%%DATADIR%%/stats/headers/AEstatsGlobalHead.html +%%DATADIR%%/stats/headers/AEstatsHead.html +%%DATADIR%%/stats/headers/AEstatsHelpHead.html +%%DATADIR%%/stats/headers/AEstatsPlayerStatsHead.html +%%DATADIR%%/stats/headers/AEstatsRankingHead.html +%%DATADIR%%/stats/headers/AEstatsRankMatrixHead.html +%%DATADIR%%/stats/headers/AEstatsTeamHead.html +%%DATADIR%%/stats/headers/AEstatsTeamMapHead.html +%%DATADIR%%/stats/headers/background.gif +%%DATADIR%%/stats/headers/foot.gif +%%DATADIR%%/stats/headers/head.gif +%%DATADIR%%/stats/headers/metal.gif +%%DATADIR%%/stats/headers/t.gif +%%DATADIR%%/stats/headers/metalw.gif +@dirrm %%DATADIR%%/stats/headers +%%DATADIR%%/stats/players/headers/background.gif +%%DATADIR%%/stats/players/headers/foot.gif +%%DATADIR%%/stats/players/headers/head.gif +%%DATADIR%%/stats/players/headers/metal.gif +%%DATADIR%%/stats/players/headers/metalw.gif +%%DATADIR%%/stats/players/headers/t.gif +@dirrm %%DATADIR%%/stats/players/headers +%%DATADIR%%/stats/players/AEstatsPlayer0.html +%%DATADIR%%/stats/players/AEstatsPlayer1.html +%%DATADIR%%/stats/players/AEstatsPlayer10.html +%%DATADIR%%/stats/players/AEstatsPlayer11.html +%%DATADIR%%/stats/players/AEstatsPlayer12.html +%%DATADIR%%/stats/players/AEstatsPlayer2.html +%%DATADIR%%/stats/players/AEstatsPlayer3.html +%%DATADIR%%/stats/players/AEstatsPlayer4.html +%%DATADIR%%/stats/players/AEstatsPlayer5.html +%%DATADIR%%/stats/players/AEstatsPlayer6.html +%%DATADIR%%/stats/players/AEstatsPlayer7.html +%%DATADIR%%/stats/players/AEstatsPlayer8.html +%%DATADIR%%/stats/players/AEstatsPlayer9.html +@dirrm %%DATADIR%%/stats/players +%%DATADIR%%/stats/teams/headers/background.gif +%%DATADIR%%/stats/teams/headers/foot.gif +%%DATADIR%%/stats/teams/headers/head.gif +%%DATADIR%%/stats/teams/headers/metal.gif +%%DATADIR%%/stats/teams/headers/metalw.gif +%%DATADIR%%/stats/teams/headers/t.gif +@dirrm %%DATADIR%%/stats/teams/headers +@dirrm %%DATADIR%%/stats/teams +%%DATADIR%%/stats/AEstats.html +%%DATADIR%%/stats/AEstatsBestOfs.html +%%DATADIR%%/stats/AEstatsBuddy.html +%%DATADIR%%/stats/AEstatsDiffMatrix.html +%%DATADIR%%/stats/AEstatsFAQ.html +%%DATADIR%%/stats/AEstatsGlobal.html +%%DATADIR%%/stats/AEstatsHelp.html +%%DATADIR%%/stats/AEstatsRanking.html +%%DATADIR%%/stats/AEstatsRankMatrix.html +%%DATADIR%%/stats/AEstatsTeam.html +%%DATADIR%%/stats/aestats.css +%%DATADIR%%/stats/index.html +@dirrm %%DATADIR%%/stats +%%DATADIR%%/unrealmod/AEonsDM.uc +%%DATADIR%%/unrealmod/AEonsDMmod.int +%%DATADIR%%/unrealmod/AEonsDMmod.u +%%DATADIR%%/unrealmod/Unreal.ini +@dirrm %%DATADIR%%/unrealmod +%%DATADIR%%/AEsscore.cfg +%%DATADIR%%/AEstats.cfg +%%DATADIR%%/AEstats.txt +%%DATADIR%%/alias.txt +%%DATADIR%%/banlist.txt +@dirrm %%DATADIR%% |