From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Feb 14 01:50:08 2011 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47B24106566B for ; Mon, 14 Feb 2011 01:50:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 1B2568FC13 for ; Mon, 14 Feb 2011 01:50:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p1E1o7qH041526 for ; Mon, 14 Feb 2011 01:50:07 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p1E1o7Ug041525; Mon, 14 Feb 2011 01:50:07 GMT (envelope-from gnats) Resent-Date: Mon, 14 Feb 2011 01:50:07 GMT Resent-Message-Id: <201102140150.p1E1o7Ug041525@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "ports@c0decafe.net" Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 963C91065670 for ; Mon, 14 Feb 2011 01:41:49 +0000 (UTC) (envelope-from bartender@absolut.c0decafe.net) Received: from lebaneseareanetwork.com (lancomlb-1-pt.tunnel.tserv13.ash1.ipv6.he.net [IPv6:2001:470:7:6f2::2]) by mx1.freebsd.org (Postfix) with ESMTP id 207E98FC17 for ; Mon, 14 Feb 2011 01:41:49 +0000 (UTC) Received: from absolut.c0decafe.net (cl-1078.lon-02.gb.sixxs.net [IPv6:2a01:348:6:435::2]) by lebaneseareanetwork.com (8.14.4/8.14.4) with ESMTP id p1E1fijJ044566 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 14 Feb 2011 03:41:47 +0200 (EET) (envelope-from bartender@absolut.c0decafe.net) Received: from absolut.c0decafe.net (localhost [127.0.0.1]) by absolut.c0decafe.net (8.14.4/8.14.4) with ESMTP id p1E1fcBj098895 for ; Mon, 14 Feb 2011 03:41:38 +0200 (EET) (envelope-from bartender@absolut.c0decafe.net) Received: (from bartender@localhost) by absolut.c0decafe.net (8.14.4/8.14.4/Submit) id p1E1fc1d098894; Mon, 14 Feb 2011 03:41:38 +0200 (EET) (envelope-from bartender) Message-Id: <201102140141.p1E1fc1d098894@absolut.c0decafe.net> Date: Mon, 14 Feb 2011 03:41:38 +0200 (EET) From: "ports@c0decafe.net" To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/154765: [NEW PORT] games/ghost++: Warcraft 3 game hosting bot X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Feb 2011 01:50:08 -0000 >Number: 154765 >Category: ports >Synopsis: [NEW PORT] games/ghost++: Warcraft 3 game hosting bot >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Feb 14 01:50:07 UTC 2011 >Closed-Date: >Last-Modified: >Originator: ports@c0decafe.net >Release: FreeBSD 8.1-RELEASE-p2 amd64 >Organization: c0decafe networks >Environment: System: FreeBSD absolut.c0decafe.net 8.1-RELEASE-p2 FreeBSD 8.1-RELEASE-p2 #2: Sat Dec 11 02:59:34 EET 2010 >Description: GHost++ is a Warcraft 3 game hosting bot. It can host Warcraft III games on LAN, on battle.net, on PVPGN, and on any combination of these networks at the same time. WWW: https://code.google.com/p/ghostplusplus/ Generated with FreeBSD Port Tools 0.99 >How-To-Repeat: >Fix: --- ghost++-17.1.shar begins here --- # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # ghost++ # ghost++/files # ghost++/files/patch-Makefile # ghost++/files/patch-include # ghost++/files/patch-default.cfg # ghost++/files/ghostpp.in # ghost++/pkg-descr # ghost++/Makefile # ghost++/pkg-plist # ghost++/distinfo # echo c - ghost++ mkdir -p ghost++ > /dev/null 2>&1 echo c - ghost++/files mkdir -p ghost++/files > /dev/null 2>&1 echo x - ghost++/files/patch-Makefile sed 's/^X//' >ghost++/files/patch-Makefile << '5a7707d92b7e5b0c6c423bac1c2ddec5' X--- Makefile X+++ Makefile X@@ -1,11 +1,10 @@ X SHELL = /bin/sh X SYSTEM = $(shell uname) X-C++ = g++ X-CC = gcc X+C++ = $(CXX) X DFLAGS = -DGHOST_MYSQL X-OFLAGS = -O3 X-LFLAGS = -L. -L../bncsutil/src/bncsutil/ -L../StormLib/stormlib/ -lbncsutil -lpthread -ldl -lz -lStorm -lmysqlclient_r -lboost_date_time-mt -lboost_thread-mt -lboost_system-mt -lboost_filesystem-mt X-CFLAGS = X+OFLAGS = X+LFLAGS += -L. -L/usr/local/lib -L/usr/local/lib/mysql -lbncsutil -lpthread -lz -lStorm -lmysqlclient_r -lsqlite3 -lboost_date_time -lboost_thread -lboost_system -lboost_filesystem X+CFLAGS += -I/usr/local/include X X ifeq ($(SYSTEM),Darwin) X DFLAGS += -D__APPLE__ X@@ -23,31 +22,27 @@ X LFLAGS += -lresolv -lsocket -lnsl X endif X X-CFLAGS += $(OFLAGS) $(DFLAGS) -I. -I../bncsutil/src/ -I../StormLib/ X+CFLAGS += $(OFLAGS) $(DFLAGS) -I. X X ifeq ($(SYSTEM),Darwin) X CFLAGS += -I../mysql/include/ X endif X X OBJS = bncsutilinterface.o bnet.o bnetprotocol.o bnlsclient.o bnlsprotocol.o commandpacket.o config.o crc32.o csvparser.o game.o game_admin.o game_base.o gameplayer.o gameprotocol.o gameslot.o ghost.o ghostdb.o ghostdbmysql.o ghostdbsqlite.o gpsprotocol.o language.o map.o packed.o replay.o savegame.o sha1.o socket.o stats.o statsdota.o statsw3mmd.o util.o X-COBJS = sqlite3.o X PROGS = ./ghost++ X X-all: $(OBJS) $(COBJS) $(PROGS) X+all: $(OBJS) $(PROGS) X X-./ghost++: $(OBJS) $(COBJS) X- $(C++) -o ./ghost++ $(OBJS) $(COBJS) $(LFLAGS) X+./ghost++: $(OBJS) X+ $(C++) -o ./ghost++ $(OBJS) $(LFLAGS) X X clean: X- rm -f $(OBJS) $(COBJS) $(PROGS) X+ rm -f $(OBJS) $(PROGS) X X $(OBJS): %.o: %.cpp X $(C++) -o $@ $(CFLAGS) -c $< X X-$(COBJS): %.o: %.c X- $(CC) -o $@ $(CFLAGS) -c $< X- X-./ghost++: $(OBJS) $(COBJS) X+./ghost++: $(OBJS) X X all: $(PROGS) X 5a7707d92b7e5b0c6c423bac1c2ddec5 echo x - ghost++/files/patch-include sed 's/^X//' >ghost++/files/patch-include << '89678da7b0ec8489eb35b8c1399dbc18' X--- ghost.cpp X+++ ghost.cpp X@@ -48,7 +48,7 @@ X #endif X X #define __STORMLIB_SELF__ X-#include X+#include X X /* X X--- ghostdbsqlite.cpp X+++ ghostdbsqlite.cpp X@@ -23,7 +23,7 @@ X #include "config.h" X #include "ghostdb.h" X #include "ghostdbsqlite.h" X-#include "sqlite3.h" X+#include X X // X // CQSLITE3 (wrapper class) X--- map.cpp X+++ map.cpp X@@ -26,7 +26,7 @@ X #include "map.h" X X #define __STORMLIB_SELF__ X-#include X+#include X X #define ROTL(x,n) ((x)<<(n))|((x)>>(32-(n))) // this won't work with signed types X #define ROTR(x,n) ((x)>>(n))|((x)<<(32-(n))) // this won't work with signed types 89678da7b0ec8489eb35b8c1399dbc18 echo x - ghost++/files/patch-default.cfg sed 's/^X//' >ghost++/files/patch-default.cfg << '81d948d64b3eef17545863b8203349a5' X--- ../default.cfg X+++ ../default.cfg X@@ -4,25 +4,25 @@ X X ### the log file X X-bot_log = ghost.log X+bot_log = /var/log/ghost++.log X X ### the log method X ### set this to 1 to leave the log unlocked while GHost++ is running (may be slower, particularly on Windows) X ### set this to 2 to lock the log while GHost++ is running (may be faster, particularly on Windows) X ### note: if the log is locked you will not be able to edit/move/delete it while GHost++ is running X X-bot_logmethod = 1 X+bot_logmethod = 2 X X ### the language file X X-bot_language = language.cfg X+bot_language = /usr/local/etc/ghost++/language.cfg X X ### the path to your local Warcraft III directory X ### this path must contain war3.exe, storm.dll, and game.dll X ### if this path contains War3Patch.mpq the bot will attempt to extract "Scripts\common.j" and "Scripts\blizzard.j" on startup and write them to bot_mapcfgpath (which is defined later in this file) X ### common.j and blizzard.j are only required for automatically calculating map_crc, you do not need them if your map config files already contain map_crc X X-bot_war3path = C:\Program Files\Warcraft III X+bot_war3path = /var/db/ghost++ X X ### whether to act as Warcraft III: The Frozen Throne or not X ### set this to 0 to act as Warcraft III: Reign of Chaos (you WILL NOT need to enter a TFT cd key to login to battle.net) X@@ -69,17 +69,17 @@ X ### this directory can also contain common.j and blizzard.j (extracted from War3Patch.mpq) X ### common.j and blizzard.j are only required for automatically calculating map_crc, you do not need them if your map config files already contain map_crc X X-bot_mapcfgpath = mapcfgs X+bot_mapcfgpath = /var/db/ghost++/mapcfgs X X ### the path to the directory where you keep your savegame files X X-bot_savegamepath = savegames X+bot_savegamepath = /var/db/ghost++/savegames X X ### the path to the directory where you keep your map files X ### GHost++ doesn't require map files but if it has access to them it can send them to players and automatically calculate most map config values X ### GHost++ will search [bot_mappath + map_localpath] for the map file (map_localpath is set in each map's config file) X X-bot_mappath = maps X+bot_mappath = /var/db/ghost++/maps X X ### whether to save replays or not X X@@ -87,7 +87,7 @@ X X ### the path to the directory where you want GHost++ to save replays X X-bot_replaypath = replays X+bot_replaypath = /var/db/ghost++/replays X X ### the Warcraft 3 version to save replays as X X@@ -187,7 +187,7 @@ X X ### the IP blacklist file X X-bot_ipblacklistfile = ipblacklist.txt X+bot_ipblacklistfile = /usr/local/etc/ghost++/ipblacklist.txt X X ### automatically close the game lobby if a reserved player (or admin) doesn't join it for this many minutes X ### games which are set to automatically start when enough players join are exempt from this limit (e.g. autohosted games) X@@ -229,18 +229,18 @@ X ### the first 8 lines of this file will be displayed when a player joins the game X ### if this file doesn't exist a default MOTD will be used X X-bot_motdfile = motd.txt X+bot_motdfile = /usr/local/etc/ghost++/motd.txt X X ### the gameloaded file X ### the first 8 lines of this file will be displayed when the game finished loading (after the player loading times are displayed) X X-bot_gameloadedfile = gameloaded.txt X+bot_gameloadedfile = /usr/local/etc/ghost++/gameloaded.txt X X ### the gameover file X ### the first 8 lines of this file will be displayed when the game is over X ### this only works when using a stats class - note: at the time of this writing the only stats class is for DotA maps X X-bot_gameoverfile = gameover.txt X+bot_gameoverfile = /usr/local/etc/ghost++/gameover.txt X X ### whether to send "local admin messages" or not X ### these messages are battle.net chat messages, whispers, and emotes which the bot receives and passes on to the "local admin" X@@ -335,7 +335,7 @@ X ### sqlite3 database configuration X ### this is only used if your database type is SQLite X X-db_sqlite3_file = ghost.dbs X+db_sqlite3_file = /var/db/ghost++/ghost.dbs X X ### mysql database configuration X ### this is only used if your database type is MySQL 81d948d64b3eef17545863b8203349a5 echo x - ghost++/files/ghostpp.in sed 's/^X//' >ghost++/files/ghostpp.in << 'f6d1b3400139b4cba79387ed9338c133' X#!/bin/sh X X# $FreeBSD$ X# X# PROVIDE: ghostpp X# REQUIRE: LOGIN X# KEYWORD: shutdown X# X# Add the following lines to /etc/rc.conf.local or /etc/rc.conf X# to enable this service: X# X# ghostpp_enable (bool): Set to NO by default. X# Set it to YES to enable ghost++ X# ghostpp_config (path): Set to %%PREFIX%%/etc/ghost++/default.cfg X# by default. X# X X. /etc/rc.subr X Xname="ghostpp" Xrcvar=${name}_enable X Xcommand=%%PREFIX%%/bin/ghost++ Xpidfile=/var/run/ghost++.pid Xghostpp_chdir=/var/db/ghost++ Xghostpp_user=$name X Xload_rc_config ${name} X X: ${ghostpp_enable="NO"} X: ${ghostpp_config="%%PREFIX%%/etc/ghost++/default.cfg"} X: ${ghostpp_logfile="/var/log/ghost++.log"} X Xcommand_args=${ghostpp_config} X Xstart_precmd="${name}_prestart" Xstart_cmd="${name}_start" X Xghostpp_start() { X /usr/sbin/daemon -f -u $name -p $pidfile $command $rc_flags $command_args || return 1 X} X Xghostpp_prestart() { X /usr/bin/touch $pidfile $ghostpp_logfile X /usr/sbin/chown $name:$name $pidfile $ghostpp_logfile X} X Xrun_rc_command "$1" f6d1b3400139b4cba79387ed9338c133 echo x - ghost++/pkg-descr sed 's/^X//' >ghost++/pkg-descr << 'cc2a5d0277cb552c32163a25f9e3fbec' XGHost++ is a Warcraft 3 game hosting bot. X XIt can host Warcraft III games on LAN, on battle.net, on PVPGN, Xand on any combination of these networks at the same time. X XWWW: https://code.google.com/p/ghostplusplus/ cc2a5d0277cb552c32163a25f9e3fbec echo x - ghost++/Makefile sed 's/^X//' >ghost++/Makefile << '3218d976c492b3704975ff556f6946bf' X# New ports collection makefile for: ghost++ X# Date created: 2011-02-13 X# Whom: X# X# $FreeBSD$ X# X XPORTNAME= ghost++ XPORTVERSION= 17.1 XCATEGORIES= games net XMASTER_SITES= ${MASTER_SITE_GOOGLE_CODE} XDISTNAME= ${PROJECTHOST}_${PORTVERSION} X XMAINTAINER= ports@c0decafe.net XCOMMENT= Warcraft 3 game hosting bot X XLIB_DEPENDS= StormLib:${PORTSDIR}/devel/stormlib-ghost++ \ X bncsutil:${PORTSDIR}/devel/bncsutil-ghost++ \ X boost_date_time:${PORTSDIR}/devel/boost-libs \ X boost_thread:${PORTSDIR}/devel/boost-libs \ X boost_system:${PORTSDIR}/devel/boost-libs \ X boost_filesystem:${PORTSDIR}/devel/boost-libs X XUSE_ZIP= yes XUSE_DOS2UNIX= yes XUSE_GMAKE= yes X XWRKSRC= ${WRKDIR}/ghost/ghost XUSE_MYSQL= yes XUSE_SQLITE= yes X XPROJECTHOST= ghostplusplus X XUSERS= ghostpp XGROUPS= ghostpp X XUSE_RC_SUBR= ghostpp X XGHOST_ETC= default.cfg language.cfg language_german.cfg \ X language_russian.cfg language_spanish.cfg \ X language_turkish.cfg gameloaded.txt \ X gameover.txt ipblacklist.txt XGHOST_DATA= *.sql XGHOST_DOC= changelog.txt license.txt readme.txt XGHOST_VAR= savegames replays maps mapcfgs XGHOST_VAR_DIR= /var/db/${PORTNAME} X Xdo-install: X ${MKDIR} ${ETCDIR} X. for f in ${GHOST_ETC} X ${INSTALL_DATA} ${WRKSRC}/../${f} ${ETCDIR}/${f}-dist X ${CP} ${ETCDIR}/${f}-dist ${ETCDIR}/${f} X. endfor X ${CHGRP} -R ${GROUPS} ${ETCDIR} X X ${MKDIR} ${DATADIR} X ${INSTALL_DATA} ${WRKSRC}/../${GHOST_DATA} ${DATADIR} X X.if !defined(NOPORTDOCS) X ${MKDIR} ${DOCSDIR} X. for f in ${GHOST_DOC} X ${INSTALL_DATA} ${WRKSRC}/../${f} ${DOCSDIR} X. endfor X.endif X X ${MKDIR} ${GHOST_VAR_DIR} X.for f in ${GHOST_VAR} X ${CP} -r ${WRKSRC}/../${f} ${GHOST_VAR_DIR} X.endfor X ${CHOWN} -R ${USERS}:${GROUPS} ${GHOST_VAR_DIR} X ${CHMOD} 775 ${GHOST_VAR_DIR} ${GHOST_VAR_DIR}/* X X ${MKDIR} ${PREFIX}/bin X ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin/${PORTNAME} X X.include 3218d976c492b3704975ff556f6946bf echo x - ghost++/pkg-plist sed 's/^X//' >ghost++/pkg-plist << '4226adb57419342dc6d7d7b27c11e643' X@comment $FreeBSD$ Xbin/ghost++ X@unexec if cmp -s %D/%%ETCDIR%%/default.cfg %D/%%ETCDIR%%/default.cfg-dist; then rm %D/%%ETCDIR%%/default.cfg; fi X%%ETCDIR%%/default.cfg-dist X@unexec if cmp -s %D/%%ETCDIR%%/language.cfg %D/%%ETCDIR%%/language.cfg-dist; then rm %D/%%ETCDIR%%/language.cfg; fi X%%ETCDIR%%/language.cfg-dist X@unexec if cmp -s %D/%%ETCDIR%%/language_german.cfg %D/%%ETCDIR%%/language_german.cfg-dist; then rm %D/%%ETCDIR%%/language_german.cfg; fi X%%ETCDIR%%/language_german.cfg-dist X@unexec if cmp -s %D/%%ETCDIR%%/language_russian.cfg %D/%%ETCDIR%%/language_russian.cfg-dist; then rm %D/%%ETCDIR%%/language_russian.cfg; fi X%%ETCDIR%%/language_russian.cfg-dist X@unexec if cmp -s %D/%%ETCDIR%%/language_spanish.cfg %D/%%ETCDIR%%/language_spanish.cfg-dist; then rm %D/%%ETCDIR%%/language_spanish.cfg; fi X%%ETCDIR%%/language_spanish.cfg-dist X@unexec if cmp -s %D/%%ETCDIR%%/language_turkish.cfg %D/%%ETCDIR%%/language_turkish.cfg-dist; then rm %D/%%ETCDIR%%/language_turkish.cfg; fi X%%ETCDIR%%/language_turkish.cfg-dist X@unexec if cmp -s %D/%%ETCDIR%%/gameloaded.txt %D/%%ETCDIR%%/gameloaded.txt-dist; then rm %D/%%ETCDIR%%/gameloaded.txt; fi X%%ETCDIR%%/gameloaded.txt-dist X@unexec if cmp -s %D/%%ETCDIR%%/gameover.txt %D/%%ETCDIR%%/gameover.txt-dist; then rm %D/%%ETCDIR%%/gameover.txt; fi X%%ETCDIR%%/gameover.txt-dist X@unexec if cmp -s %D/%%ETCDIR%%/ipblacklist.txt %D/%%ETCDIR%%/ipblacklist.txt-dist; then rm -f %D/%%ETCDIR%%/ipblacklist.txt; fi X%%ETCDIR%%/ipblacklist.txt-dist X@dirrmtry %%ETCDIR%% X%%DATADIR%%/mysql_create_tables_v1.sql X%%DATADIR%%/mysql_create_tables_v2.sql X%%DATADIR%%/mysql_upgrade_v1-v2.sql X%%DOCSDIR%%/changelog.txt X%%DOCSDIR%%/license.txt X%%DOCSDIR%%/readme.txt X%%PORTDOCS%%@dirrm %%DOCSDIR%% 4226adb57419342dc6d7d7b27c11e643 echo x - ghost++/distinfo sed 's/^X//' >ghost++/distinfo << '18a0ab11106392f3d88aa08898422a48' XSHA256 (ghostplusplus_17.1.zip) = bd4acc61ab553213cb39e6a465b38d1ea7a5b9b4ca2b54fa7e082766b98c729f XSIZE (ghostplusplus_17.1.zip) = 6720401 18a0ab11106392f3d88aa08898422a48 exit --- ghost++-17.1.shar ends here --- Also, the uid/gid patches: --- UIDs +++ UIDs @@ -156,6 +156,7 @@ _tss:*:601:601:daemon:0:0:TrouSerS user:/var/empty:/usr/sbin/nologin _pkcs11:*:602:602:daemon:0:0:opencryptoki user:/var/empty:/usr/sbin/nologin freeswitch:*:610:610::0:0:Freeswitch user:/nonexistant:/usr/sbin/nologin +ghostpp:*:611:611::0:0:Warcraft 3 game hosting bot:/var/db/ghost++:/usr/sbin/nologin _pla:*:636:80::0:0:phpLDAPAdmin Owner:/nonexistent:/usr/sbin/nologin monkeysphere:*:641:641::0:0:Monkeysphere User:/var/monkeysphere:/usr/local/bin/bash aox:*:666:666::0:0:Archiveopteryx user:/nonexistent:/usr/sbin/nologin --- GIDs +++ GIDs @@ -148,6 +148,7 @@ _tss:*:601:_tss _pkcs11:*:602:_pkcs11 freeswitch:*:610: +ghostpp:*:611: monkeysphere:*:641: aox:*:666: bnetd:*:700: >Release-Note: >Audit-Trail: >Unformatted: