From tim@barbossa.informatik.rwth-aachen.de  Sun Nov  1 01:50:07 2009
Return-Path: <tim@barbossa.informatik.rwth-aachen.de>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8D9BE1065676
	for <FreeBSD-gnats-submit@freebsd.org>; Sun,  1 Nov 2009 01:50:07 +0000 (UTC)
	(envelope-from tim@barbossa.informatik.rwth-aachen.de)
Received: from barbossa.informatik.rwth-aachen.de (barbossa.informatik.RWTH-Aachen.DE [137.226.232.55])
	by mx1.freebsd.org (Postfix) with ESMTP id 159CD8FC1C
	for <FreeBSD-gnats-submit@freebsd.org>; Sun,  1 Nov 2009 01:50:05 +0000 (UTC)
Received: from barbossa.informatik.rwth-aachen.de (localhost [127.0.0.1])
	by barbossa.informatik.rwth-aachen.de (8.14.3/8.14.3) with ESMTP id nA11e3Zo005123
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 1 Nov 2009 02:40:03 +0100 (CET)
	(envelope-from tim@barbossa.informatik.rwth-aachen.de)
Received: (from tim@localhost)
	by barbossa.informatik.rwth-aachen.de (8.14.3/8.14.3/Submit) id nA11e3X8005122;
	Sun, 1 Nov 2009 02:40:03 +0100 (CET)
	(envelope-from tim)
Message-Id: <200911010140.nA11e3X8005122@barbossa.informatik.rwth-aachen.de>
Date: Sun, 1 Nov 2009 02:40:03 +0100 (CET)
From: Tim Niemueller <tim@niemueller.de>
Reply-To: Tim Niemueller <tim@niemueller.de>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: New port: www/trac-bitten Continuous integration for Trac
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         140157
>Category:       ports
>Synopsis:       New port: www/trac-bitten Continuous integration for Trac
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    glarkin
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Nov 01 02:00:07 UTC 2009
>Closed-Date:    Thu Oct 13 19:30:43 EDT 2011
>Last-Modified:  Thu Oct 13 23:40:05 UTC 2011
>Originator:     Tim Niemueller
>Release:        FreeBSD 7.2-RELEASE-p4 i386
>Organization:
>Environment:
System: FreeBSD barbossa 7.2-RELEASE-p4 FreeBSD 7.2-RELEASE-p4 #0: Fri Oct 2 12:21:39 UTC 2009 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386


	
>Description:
	New port for the Bitten continuous integration plugin for Trac. It includes the
	Trac master, which runs inside Trac and offers a web interface to manage and
	monitor builds, and a build slave which runs as a daemon on build machines
	which regularly checks for new pending builds and then executes them.
	The slave daemon runs as a specified user, hence the new UID/GID bitten-slave.
	Contains custom startup script and config file and the following patches:
	patch-0.6.x-r785: updates the base revision to tested stable svn version, required
	                  for proper operation
	patch-git: Add git specific recipe commands, patch sent upstream but not yet
	           included
	patch-navtypo: Fixes simple typo, patch sent upstream
	The following extra files specific to FreeBSD are provided:
	bitten-slave.sample: example configuration, will be transformed to config file if
	                     none exists during installation
	bitten-slave.in: startup script for bitten slave daemon

	This is my first port, let me know what needs to be changed.

	
>How-To-Repeat:
	
>Fix:
	

--- trac-bitten.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:
#
#	/usr/ports/www/trac-bitten
#	/usr/ports/www/trac-bitten/Makefile
#	/usr/ports/www/trac-bitten/distinfo
#	/usr/ports/www/trac-bitten/pkg-descr
#	/usr/ports/www/trac-bitten/pkg-plist
#	/usr/ports/www/trac-bitten/pkg-install
#	/usr/ports/www/trac-bitten/files
#	/usr/ports/www/trac-bitten/files/patch-0.6.x-r785
#	/usr/ports/www/trac-bitten/files/bitten-slave.sample
#	/usr/ports/www/trac-bitten/files/patch-git
#	/usr/ports/www/trac-bitten/files/patch-navtypo
#	/usr/ports/www/trac-bitten/files/bitten-slave.in
#
echo c - /usr/ports/www/trac-bitten
mkdir -p /usr/ports/www/trac-bitten > /dev/null 2>&1
echo x - /usr/ports/www/trac-bitten/Makefile
sed 's/^X//' >/usr/ports/www/trac-bitten/Makefile << '58227838cc4bf460f9feb849c662a44b'
X# New ports collection makefile for: trac-bitten
X# Date created:                      Oct 26 2009
X# Whom:                              Tim Niemueller <tim@niemueller.de>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	bitten
XPORTVERSION=	0.6b2
XCATEGORIES=	www devel python
XMASTER_SITES=	http://ftp.edgewall.com/pub/bitten/
XPKGNAMEPREFIX=	trac-
XDISTNAME=	Bitten-${PORTVERSION}
X
XMAINTAINER=	tim@niemueller.de
XCOMMENT=	Continuous integration for Trac
X
XBITTENVERSION=	0.6
X
XOPTIONS=	BITTEN_MASTER "Build bitten master" ON
X.include <bsd.port.options.mk>
X
XBUILD_DEPENDS+=	easy_install:${PORTSDIR}/devel/py-setuptools
X.if defined(WITH_BITTEN_MASTER)
XRUN_DEPENDS+=	tracd:${PORTSDIR}/www/trac
X.endif
X
XWRKSRC=		${WRKDIR}/Bitten-${PORTVERSION}
XNO_BUILD=	yes
XUSE_PYTHON=	2.3+
XUSE_PYDISTUTILS=yes
XPLIST_SUB+=	PORTVERSION=${BITTENVERSION} PYTHONVERSION=${_PYTHON_VERSION}
XSUB_LIST+=	PYTHON_CMD=${_PYTHON_CMD}
XPYDISTUTILS_NOEGGINFO=	yes
XPYDISTUTILS_PKGNAME=	Bitten
XPATCH_STRIP=	-p1
XUSE_RC_SUBR=	bitten-slave
X
X.if defined(WITHOUT_BITTEN_MASTER)
XPYDISTUTILS_EXTRA_INSTALLARGS=--without-master
XPLIST_SUB+=	MASTER_PORT="@comment " EGG_NAME="BittenSlave"
X.else
XPLIST_SUB+=	EGG_NAME="Bitten"
X.endif
X
Xpre-install:
X	@${SH} ${PKGINSTALL} ${PORTNAME} PRE-INSTALL
X
X# reproduce rule here with added PYDISTUTILS_EXTRA_INSTALLARGS
Xdo-install:
X	@(cd ${INSTALL_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYSETUP} ${PYDISTUTILS_EXTRA_INSTALLARGS}	${PYDISTUTILS_INSTALL_TARGET} ${PYDISTUTILS_INSTALLARGS})
X
Xpost-install:
X	@if [ ! -f ${ETCDIR}/bitten-slave.conf ]; then \
X		${ECHO} Generating initial configuration in ${ETCDIR}/bitten-slave.conf; \
X		${MKDIR} ${ETCDIR}; \
X		${SED} -e 's/@DISTRO@/${OPSYS}/g' -e 's/@DISTRO_VERSION@/${OSREL}/g' ${FILESDIR}/bitten-slave.sample > ${ETCDIR}/bitten-slave.conf; \
X		${CP} ${FILESDIR}/bitten-slave.sample ${ETCDIR}; \
X	fi
X
X.include <bsd.port.mk>
58227838cc4bf460f9feb849c662a44b
echo x - /usr/ports/www/trac-bitten/distinfo
sed 's/^X//' >/usr/ports/www/trac-bitten/distinfo << '3d8b62971e90c5aaf5cad5fb015c1d1f'
XMD5 (Bitten-0.6b2.tar.gz) = bfc9ba5d723e76fe8492358f86b70a21
XSHA256 (Bitten-0.6b2.tar.gz) = 47f3a4d6031f67ce66edece38d56a9eae26a1b6b57df786b23a89aaa579f710c
XSIZE (Bitten-0.6b2.tar.gz) = 355500
3d8b62971e90c5aaf5cad5fb015c1d1f
echo x - /usr/ports/www/trac-bitten/pkg-descr
sed 's/^X//' >/usr/ports/www/trac-bitten/pkg-descr << 'ab2732dc50d1b47325b519f1902760ba'
XA continuous integration plugin for Trac.
X
XSet bitten_slave_enable to "yes" and bitten_slave_flags to contain one or more
XBitten build URLs. For form authentication add --form-auth to flags.
X
XWWW: http://bitten.edgewall.org
ab2732dc50d1b47325b519f1902760ba
echo x - /usr/ports/www/trac-bitten/pkg-plist
sed 's/^X//' >/usr/ports/www/trac-bitten/pkg-plist << 'a9212d56bf4c0114a8db181a646ee5b8'
X@stopdaemon bitten-slave
Xbin/bitten-slave
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/PKG-INFO
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/SOURCES.txt
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/dependency_links.txt
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/entry_points.txt
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/not-zip-safe
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/top_level.txt
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/__init__.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/__init__.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/__init__.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/admin.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/admin.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/admin.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/api.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/api.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/api.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/__init__.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/__init__.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/__init__.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/api.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/api.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/api.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/config.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/config.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/config.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/ctools.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/ctools.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/ctools.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/gittools.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/gittools.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/gittools.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/hgtools.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/hgtools.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/hgtools.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/javatools.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/javatools.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/javatools.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/monotools.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/monotools.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/monotools.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/phptools.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/phptools.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/phptools.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/pythontools.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/pythontools.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/pythontools.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/shtools.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/shtools.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/shtools.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/svntools.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/svntools.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/svntools.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/xmltools.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/xmltools.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/xmltools.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/admin.css
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/bitten.css
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/bitten.css.orig
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/bitten_build.png
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/bitten_buildf.png
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/bitten_coverage.css
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/arno.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/arst.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/brfl.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/brno.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/brst.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/cl3d.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/clfl.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/clno.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/clp3.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/cls3.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/clst.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/cnno.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/lnno.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/mxno.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/pi3d.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/pino.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/scno.swf
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/failure.png
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/tabset.js
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/main.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/main.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/main.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/master.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/master.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/master.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/model.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/model.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/model.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/notify.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/notify.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/notify.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/queue.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/queue.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/queue.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/recipe.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/recipe.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/recipe.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/__init__.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/__init__.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/__init__.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/coverage.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/coverage.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/coverage.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/lint.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/lint.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/lint.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/testing.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/testing.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/testing.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/slave.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/slave.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/slave.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_admin_configs.html
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_admin_master.html
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_build.html
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_chart_coverage.html
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_chart_lint.html
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_chart_tests.html
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_config.html
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_notify_email.txt
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_summary_coverage.html
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_summary_lint.html
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_summary_tests.html
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/upgrades.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/upgrades.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/upgrades.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/__init__.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/__init__.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/__init__.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/loc.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/loc.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/loc.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/testrunner.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/testrunner.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/testrunner.pyo
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/xmlio.py
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/xmlio.pyc
X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/xmlio.pyo
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/web_ui.py
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/web_ui.pyc
X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/web_ui.pyo
X%%MASTER_PORT%%@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates
X%%MASTER_PORT%%@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report
X%%MASTER_PORT%%@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library
X%%MASTER_PORT%%@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs
X@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util
X@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build
X@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten
X@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO
X@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg
X@unexec echo "Warning: If you will *NOT* use this package anymore, please remove the bitten-slave user and group manually."
a9212d56bf4c0114a8db181a646ee5b8
echo x - /usr/ports/www/trac-bitten/pkg-install
sed 's/^X//' >/usr/ports/www/trac-bitten/pkg-install << '7c6b9eaba04aecb2e5633c8fe6de520c'
X#!/bin/sh
X
XPATH=/bin:/usr/sbin
X
XUSER=bitten-slave
XGROUP=bitten-slave
XUID=212
XGID=212
X
Xcase $2 in
X  PRE-INSTALL)
X  if pw group show "${GROUP}" 2>/dev/null; then
X    echo "You already have a group \"${GROUP}\", so I will use it."
X  else
X    if pw groupadd ${GROUP} -g ${GID}; then
X      echo "Added group \"${GROUP}\"."
X    else
X      echo "Adding group \"${GROUP}\" failed..."
X      exit 1
X    fi
X  fi
X
X  if pw user show "${USER}" 2>/dev/null; then
X    echo "You already have a user \"${USER}\", so I will use it."
X  else
X    if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
X      -s /bin/sh -L daemon -m -d /var/lib/bitten-slave -c "bitten slave"
X    then
X      echo "Added user \"${USER}\"."
X    else
X      echo "Adding user \"${USER}\" failed..."
X      exit 1
X    fi
X  fi
X  ;;
Xesac
X
7c6b9eaba04aecb2e5633c8fe6de520c
echo c - /usr/ports/www/trac-bitten/files
mkdir -p /usr/ports/www/trac-bitten/files > /dev/null 2>&1
echo x - /usr/ports/www/trac-bitten/files/patch-0.6.x-r785
sed 's/^X//' >/usr/ports/www/trac-bitten/files/patch-0.6.x-r785 << 'fd0562f82f97a0359e7ac199da5cba0a'
Xdiff -urN --exclude=.svn 0.6b2/ChangeLog 0.6.x/ChangeLog
X--- 0.6b2/ChangeLog	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/ChangeLog	2009-10-26 18:22:22.000000000 +0100
X@@ -1,3 +1,10 @@
X+Version 0.6
X+(???, from 0.6.x branch)
X+http://svn.edgewall.org/repos/bitten/tags/0.6
X+
X+ * ???
X+
X+
X Version 0.6b2
X (12 September, from 0.6.x branch)
X http://svn.edgewall.org/repos/bitten/tags/0.6b2
Xdiff -urN --exclude=.svn 0.6b2/bitten/build/api.py 0.6.x/bitten/build/api.py
X--- 0.6b2/bitten/build/api.py	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/bitten/build/api.py	2009-10-26 18:22:21.000000000 +0100
X@@ -50,7 +50,7 @@
X class CommandLine(object):
X     """Simple helper for executing subprocesses."""
X 
X-    def __init__(self, executable, args, input=None, cwd=None):
X+    def __init__(self, executable, args, input=None, cwd=None, shell=False):
X         """Initialize the CommandLine object.
X         
X         :param executable: the name of the program to execute
X@@ -66,6 +66,7 @@
X         self.cwd = cwd
X         if self.cwd:
X             assert os.path.isdir(self.cwd)
X+        self.shell = shell
X         self.returncode = None
X 
X 
X@@ -102,7 +103,7 @@
X                         stdout=subprocess.PIPE,
X                         stderr=subprocess.PIPE,
X                         cwd=(self.cwd or None),
X-                        shell=False,
X+                        shell=self.shell,
X                         universal_newlines=True,
X                         env=None)
X         except Exception, e:
Xdiff -urN --exclude=.svn 0.6b2/bitten/build/javatools.py 0.6.x/bitten/build/javatools.py
X--- 0.6b2/bitten/build/javatools.py	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/bitten/build/javatools.py	2009-10-26 18:22:21.000000000 +0100
X@@ -60,7 +60,12 @@
X     if target:
X         args.append(target)
X 
X-    cmdline = CommandLine(executable, args, cwd=ctxt.basedir)
X+    shell = False
X+    if os.name == 'nt':
X+        # Need to execute ant.bat through a shell on Windows
X+        shell = True
X+
X+    cmdline = CommandLine(executable, args, cwd=ctxt.basedir, shell=shell)
X     for out, err in cmdline.execute():
X         if out is not None:
X             log.info(out)
Xdiff -urN --exclude=.svn 0.6b2/bitten/build/shtools.py 0.6.x/bitten/build/shtools.py
X--- 0.6b2/bitten/build/shtools.py	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/bitten/build/shtools.py	2009-10-26 18:22:21.000000000 +0100
X@@ -101,6 +101,12 @@
X     if file_ and os.path.isfile(resolve(file_)):
X         file_ = resolve(file_)
X 
X+    shell = False
X+
X+    if file_ and os.name == 'nt':
X+        # Need to execute script files through a shell on Windows
X+        shell = True
X+
X     if executable is None:
X         executable = file_
X     elif file_:
X@@ -109,8 +115,7 @@
X     # Support important Windows CMD.EXE built-ins (and it does its own quoting)
X     if os.name == 'nt' and executable.upper() in ['COPY', 'DIR', 'ECHO',
X                 'ERASE', 'DEL', 'MKDIR', 'MD', 'MOVE', 'RMDIR', 'RD', 'TYPE']:
X-        args = ['/C', executable] + [arg.strip('"') for arg in args]
X-        executable = os.environ['COMSPEC']
X+        shell = True
X 
X     if input_:
X         input_file = file(resolve(input_), 'r')
X@@ -132,7 +137,7 @@
X 
X     try:
X         cmdline = CommandLine(executable, args, input=input_file,
X-                              cwd=dir_)
X+                              cwd=dir_, shell=shell)
X         log_elem = xmlio.Fragment()
X         for out, err in cmdline.execute():
X             if out is not None:
Xdiff -urN --exclude=.svn 0.6b2/bitten/htdocs/bitten.css 0.6.x/bitten/htdocs/bitten.css
X--- 0.6b2/bitten/htdocs/bitten.css	2009-10-26 18:22:29.000000000 +0100
X+++ 0.6.x/bitten/htdocs/bitten.css	2009-10-26 18:22:20.000000000 +0100
X@@ -155,7 +155,6 @@
X #content.build tbody.totals td, #content.build tbody.totals th {
X   font-weight: bold;
X }
X-#content.build table.tests tr.failed { background: #d99; }
X #content.build table.tests tr.failed th,
X #content.build table.tests tr.failed td { font-weight: bold; }
X #content.build table.tests tr.failed :link,
X@@ -167,7 +166,8 @@
X   margin: 0; padding-left: 32px; padding-top: 5px; text-align: left; font-weight: normal;
X }
X #content.build table.tests tr th p.details span {
X-  white-space: pre; font-family: monospace; font-weight: normal; color: #666;
X+  white-space: pre; font-family: monospace; font-weight: normal; font-size: smaller;
X+  color: #666;
X }
X #content.build table.tests .fixture { display: inline; }
X #content.build table.tests tr.failed th .fixture a { 
Xdiff -urN --exclude=.svn 0.6b2/bitten/main.py 0.6.x/bitten/main.py
X--- 0.6b2/bitten/main.py	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/bitten/main.py	2009-10-26 18:22:21.000000000 +0100
X@@ -127,7 +127,7 @@
X                                  **kwargs):
X         config_name, build_id = self._parse_resource(resource.id)
X         config = BuildConfig.fetch(self.env, config_name)
X-        config_label = config.label or config_name
X+        config_label = config and config.label and config.label or config_name
X         if context:
X             if build_id:
X                 return tag.a('Build %d ("%s")' % (build_id, config_label),
Xdiff -urN --exclude=.svn 0.6b2/bitten/master.py 0.6.x/bitten/master.py
X--- 0.6b2/bitten/master.py	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/bitten/master.py	2009-10-26 18:22:21.000000000 +0100
X@@ -138,6 +138,7 @@
X         """ Formats and sends the response, raising ``RequestDone``. """
X         req.send_response(code)
X         headers = headers or {}
X+        headers.setdefault('Content-Length', len(body))
X         for header in headers:
X             req.send_header(header, headers[header])
X         req.write(body)
Xdiff -urN --exclude=.svn 0.6b2/bitten/report/coverage.py 0.6.x/bitten/report/coverage.py
X--- 0.6b2/bitten/report/coverage.py	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/bitten/report/coverage.py	2009-10-26 18:22:21.000000000 +0100
X@@ -187,7 +187,7 @@
X                     title='Annotate file with test coverage '
X                           'data (if available)',
X                     href=req.href.browser(resource.id, 
X-                        annotate='coverage', rev=data.get('rev')))
X+                        annotate='coverage', rev=resource.version))
X         return template, data, content_type
X 
X     # IHTMLPreviewAnnotator methods
Xdiff -urN --exclude=.svn 0.6b2/bitten/report/lint.py 0.6.x/bitten/report/lint.py
X--- 0.6b2/bitten/report/lint.py	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/bitten/report/lint.py	2009-10-26 18:22:21.000000000 +0100
X@@ -45,7 +45,7 @@
X from bitten_report as report
X  left outer join bitten_build as build ON (report.build=build.id)
X where build.config='%s' and report.category='lint'
X-group by build.rev_time, build.rev, build.platform
X+group by build.rev_time, build.rev, build.platform, report.id
X order by build.rev_time;""" % (config.name,)
X 
X         #self.log.debug('sql=\'%s\'' % (query,))
Xdiff -urN --exclude=.svn 0.6b2/bitten/templates/bitten_summary_lint.html 0.6.x/bitten/templates/bitten_summary_lint.html
X--- 0.6b2/bitten/templates/bitten_summary_lint.html	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/bitten/templates/bitten_summary_lint.html	2009-10-26 18:22:20.000000000 +0100
X@@ -2,7 +2,9 @@
X     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
X     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
X <html xmlns="http://www.w3.org/1999/xhtml"
X-      xmlns:py="http://genshi.edgewall.org/">
X+      xmlns:py="http://genshi.edgewall.org/"
X+      py:strip="">
X+<body py:strip="">
X 
X <h3>Code Lint</h3>
X <table class="listing lint">
X@@ -43,4 +45,5 @@
X  </tr></tbody>
X </table>
X 
X+</body>
X </html>
Xdiff -urN --exclude=.svn 0.6b2/bitten/tests/queue.py 0.6.x/bitten/tests/queue.py
X--- 0.6b2/bitten/tests/queue.py	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/bitten/tests/queue.py	2009-10-26 18:22:21.000000000 +0100
X@@ -291,7 +291,9 @@
X 
X         thread1 = threading.Thread(target=build_populator)
X         thread2 = threading.Thread(target=build_populator)
X-        thread1.start(); thread2.start()
X+        # tiny sleep is to avoid odd segementation faults
X+        # (on Linux) and bus errors (on Mac OS X)
X+        thread1.start(); time.sleep(0.01); thread2.start()
X         thread1.join(); thread2.join()
X 
X         # check builds got added
Xdiff -urN --exclude=.svn 0.6b2/doc/recipes.txt 0.6.x/doc/recipes.txt
X--- 0.6b2/doc/recipes.txt	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/doc/recipes.txt	2009-10-26 18:22:21.000000000 +0100
X@@ -125,3 +125,6 @@
X   <sh:exec file="echo" args="o\\ne &quot;4 2&quot; \&quot;hi\ there\&quot;"/>
X 
X This will pass 3 arguments: ``o\ne`` + ``4 2`` + ``"hi there"``.
X+
X+**Note:** On Windows, batch scripts and built-ins will execute through a shell.
X+This may affect quoting of arguments.
Xdiff -urN --exclude=.svn 0.6b2/setup.cfg 0.6.x/setup.cfg
X--- 0.6b2/setup.cfg	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/setup.cfg	2009-10-26 18:22:22.000000000 +0100
X@@ -1,3 +1,7 @@
X+[egg_info]
X+tag_build = dev
X+tag_svn_revision = true
X+
X [unittest]
X xml_output = build/test-results.xml
X coverage_summary = build/test-coverage.txt
Xdiff -urN --exclude=.svn 0.6b2/setup.py 0.6.x/setup.py
X--- 0.6b2/setup.py	2009-10-26 18:22:30.000000000 +0100
X+++ 0.6.x/setup.py	2009-10-26 18:22:22.000000000 +0100
X@@ -110,7 +110,7 @@
X 
X setup(
X     name = 'BittenSlave',
X-    version =  '0.6b2',
X+    version =  '0.6',
X     author = 'Edgewall Software',
X     author_email = 'info@edgewall.org',
X     license = 'BSD',
fd0562f82f97a0359e7ac199da5cba0a
echo x - /usr/ports/www/trac-bitten/files/bitten-slave.sample
sed 's/^X//' >/usr/ports/www/trac-bitten/files/bitten-slave.sample << 'd64adc5ca0a90af51f8f43ecccbf57d0'
X;[authentication]
X; user/pass for login to Trac
X;username = <user>
X;password = <pass>
X
X[os]
Xname = @DISTRO@
Xversion = @DISTRO_VERSION@
X
X;[package:some-package]
X;version = 2.0
X
d64adc5ca0a90af51f8f43ecccbf57d0
echo x - /usr/ports/www/trac-bitten/files/patch-git
sed 's/^X//' >/usr/ports/www/trac-bitten/files/patch-git << 'a012ae9b761fe12c67aa8799093090de'
Xdiff -urN Bitten-0.6dev-r777/bitten/build/gittools.py Bitten-0.6dev-r777.git/bitten/build/gittools.py
X--- Bitten-0.6dev-r777/bitten/build/gittools.py	1970-01-01 01:00:00.000000000 +0100
X+++ Bitten-0.6dev-r777.git/bitten/build/gittools.py	2009-10-24 17:03:02.000000000 +0200
X@@ -0,0 +1,77 @@
X+# -*- coding: utf-8 -*-
X+# Copyright (C) Tim Niemueller [www.niemueller.de]
X+# Copyright (C) 2007 Edgewall Software
X+# based on hgtools.py
X+#
X+# This software is licensed as described in the file COPYING, which
X+# you should have received as part of this distribution. The terms
X+# are also available at http://bitten.edgewall.org/wiki/License.
X+
X+"""Recipe commands for git."""
X+
X+import logging
X+
X+log = logging.getLogger('bitten.build.gittools')
X+
X+__docformat__ = 'restructuredtext en'
X+
X+def clone(ctxt, url, dir_='.'):
X+    """pull and update the local working copy from the git repository.
X+    
X+    :param ctxt: the build context
X+    :type ctxt: `Context`
X+    :param url: the url of the repository to clone
X+    :param dir\_: the name of a local subdirectory containing the working copy
X+    """
X+    args = ['clone', url, dir_]
X+
X+    from bitten.build import shtools
X+    returncode = shtools.execute(ctxt, file_='git', args=args)
X+    if returncode != 0:
X+        ctxt.error('git clone failed (%s)' % returncode)
X+
X+def pull(ctxt, revision, remote='origin', dir_='.'):
X+    """pull and update the local working copy from the git repository.
X+    
X+    :param ctxt: the build context
X+    :type ctxt: `Context`
X+    :param remote: the remote repository to pull from
X+    :param dir\_: the name of a local subdirectory containing the working copy
X+    """
X+    args = ['pull', '-u', remote, revision]
X+
X+    from bitten.build import shtools
X+    returncode = shtools.execute(ctxt, file_='git', dir_=dir_, args=args)
X+    if returncode != 0:
X+        ctxt.error('git pull failed (%s)' % returncode)
X+
X+def checkout(ctxt, branch, dir_='.'):
X+    """checkout specific branch
X+    
X+    :param ctxt: the build context
X+    :type ctxt: `Context`
X+    :param branch: branch to checkout
X+    :param dir\_: the name of a local subdirectory containing the working copy
X+    """
X+    args = ['checkout', branch]
X+
X+    from bitten.build import shtools
X+    returncode = shtools.execute(ctxt, file_='git', dir_=dir_, args=args)
X+    if returncode != 0:
X+        ctxt.error('git branch failed (%s)' % returncode)
X+
X+def reset(ctxt, revision, dir_='.'):
X+    """reset git tree to given revision/commit
X+    
X+    :param ctxt: the build context
X+    :type ctxt: `Context`
X+    :param revision: the revision/commit to reset to
X+    :param dir\_: the name of a local subdirectory containing the working copy
X+    """
X+    args = ['reset', '--hard', revision]
X+
X+    from bitten.build import shtools
X+    returncode = shtools.execute(ctxt, file_='git', dir_=dir_, args=args)
X+    if returncode != 0:
X+        ctxt.error('git reset failed (%s)' % returncode)
X+
Xdiff -urN Bitten-0.6dev-r777/setup.py Bitten-0.6dev-r777.git/setup.py
X--- Bitten-0.6dev-r777/setup.py	2009-10-16 14:15:34.000000000 +0200
X+++ Bitten-0.6dev-r777.git/setup.py	2009-10-24 17:05:22.000000000 +0200
X@@ -55,6 +55,10 @@
X         'svn#export = bitten.build.svntools:export',
X         'svn#update = bitten.build.svntools:update',
X         'hg#pull = bitten.build.hgtools:pull',
X+        'git#clone = bitten.build.gittools:clone',
X+        'git#pull = bitten.build.gittools:pull',
X+        'git#reset = bitten.build.gittools:reset',
X+        'git#checkout = bitten.build.gittools:checkout',
X         'xml#transform = bitten.build.xmltools:transform'
X     ]
X recipe_commands = [NS_old + tool for tool in tools] \
X@@ -133,6 +137,7 @@
X                   "bitten.build.pythontools",
X                   "bitten.build.shtools",
X                   "bitten.build.svntools",
X+                  "bitten.build.gittools",
X                   "bitten.build.xmltools",
X                   "bitten.recipe",
X                   "bitten.slave",
a012ae9b761fe12c67aa8799093090de
echo x - /usr/ports/www/trac-bitten/files/patch-navtypo
sed 's/^X//' >/usr/ports/www/trac-bitten/files/patch-navtypo << '3f06bf672860abb437bf85e39aa05fb6'
Xdiff -urN Bitten-0.6dev-r777/bitten/web_ui.py Bitten-0.6dev-r777.typo/bitten/web_ui.py
X--- Bitten-0.6dev-r777/bitten/web_ui.py	2009-10-16 14:15:34.000000000 +0200
X+++ Bitten-0.6dev-r777.typo/bitten/web_ui.py	2009-10-24 16:49:58.000000000 +0200
X@@ -109,7 +109,7 @@
X                 if not status:
X                     status='bittenpending'
X             yield ('mainnav', 'build',
X-                   tag.a('Builds Status', href=req.href.build(), accesskey=5, 
X+                   tag.a('Build Status', href=req.href.build(), accesskey=5, 
X                          class_=status))
X 
X     # ITemplatesProvider methods
3f06bf672860abb437bf85e39aa05fb6
echo x - /usr/ports/www/trac-bitten/files/bitten-slave.in
sed 's/^X//' >/usr/ports/www/trac-bitten/files/bitten-slave.in << '365fd87f488a5693894e621e1c551ee8'
X#!/bin/sh
X#
X# $FreeBSD$
X#
X# PROVIDE: bitten-slave
X# REQUIRE: DAEMON
X# KEYWORD: FreeBSD
X#
X# Bitten continuous integration build slave
X#
X
X. %%RC_SUBR%%
X
Xname=bitten_slave
Xrcvar=`set_rcvar`
Xlogfile=/var/log/bitten-slave.log
Xconffile=/usr/local/etc/bitten/bitten-slave.conf
Xworkdir=/var/lib/bitten-slave
X
Xload_rc_config ${name}
X
Xcommand=/usr/local/bin/bitten-slave
Xcommand_args="-f ${conffile} -d ${workdir} --log=${logfile} ${bitten_slave_urls} >/dev/null &"
Xcommand_interpreter=%%PYTHON_CMD%%
Xstart_precmd="touch $logfile && chown bitten-slave $logfile"
Xbitten_slave_user=bitten-slave
Xbitten_slave_group=bitten-slave
X
Xrun_rc_command "$1"
X
365fd87f488a5693894e621e1c551ee8
exit
--- trac-bitten.shar ends here ---

--- UIDs.patch begins here ---
--- UIDs	2009-11-01 02:07:56.000000000 +0100
+++ UIDs.bitten	2009-11-01 02:07:44.000000000 +0100
@@ -93,6 +93,7 @@
 dspam:*:202:202::0:0:Dspam:/nonexistent:/usr/sbin/nologin
 shoutcast:*:210:210::0:0:Shoutcast sandbox:/nonexistent:/bin/sh
 git:*:211:211:gitosis user:/usr/local/git:/bin/sh
+bitten-slave:*:212:212:bitten slave:/var/lib/bitten-slave:/bin/sh
 bs:*:220:220::0:0:Big Sister:/usr/local/bigsister:/bin/sh
 postgrey:*:225:225::0:0:Postgrey Owner:/nonexistent:/usr/sbin/nologin
 aprsd:*:240:240::0:0:aprsd:/nonexistent:/bin/sh
--- UIDs.patch ends here ---

--- GIDs.patch begins here ---
--- GIDs	2009-11-01 02:08:01.000000000 +0100
+++ GIDs.bitten	2009-11-01 02:07:50.000000000 +0100
@@ -83,6 +83,7 @@
 sympa:*:200:
 dspam:*:202:
 git:*:211:
+bitten-slave:*:212:
 bs:*:220:
 postgrey:*:225:
 aprsd:*:240:
--- GIDs.patch ends here ---


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->glarkin 
Responsible-Changed-By: glarkin 
Responsible-Changed-When: Wed Dec 16 21:40:14 EST 2009 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=140157 
State-Changed-From-To: open->feedback 
State-Changed-By: glarkin 
State-Changed-When: Mon Dec 21 15:52:08 EST 2009 
State-Changed-Why:  
Waiting for response to follow-up question. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=140157 
State-Changed-From-To: feedback->open 
State-Changed-By: pgollucci 
State-Changed-When: Mon Sep 13 00:58:02 UTC 2010 
State-Changed-Why:  
submitter feedback timeout: 266 days) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=140157 

From: Tim Niemueller <tim@niemueller.de>
To: bug-followup@FreeBSD.org, tim@niemueller.de
Cc:  
Subject: Re: ports/140157: New port: www/trac-bitten Continuous integration for
 Trac
Date: Sun, 12 Sep 2010 22:53:50 -0400

 This is a multi-part message in MIME format.
 
 --Boundary_(ID_EtjveiyrpqR84nq3XS3IKQ)
 Content-type: text/plain; charset=ISO-8859-15; format=flowed
 Content-transfer-encoding: 7BIT
 
 I have sent the requested information to glarkin@freebsd.org on Feb 7th 
 2010. I have attached the files that contain the description and the 
 message.
 
 -- 
      Tim Niemueller <tim@niemueller.de>      www.niemueller.de
 =================================================================
   Imagination is more important than knowledge. (Albert Einstein)
 
 --Boundary_(ID_EtjveiyrpqR84nq3XS3IKQ)
 Content-type: text/plain; name=pkg-descr
 Content-transfer-encoding: 7BIT
 Content-disposition: attachment; filename=pkg-descr
 
 A continuous integration plugin for Trac.
 
 Bitten is a  Python-based framework for collecting various software metrics
 via continuous integration. It builds on Trac to provide an integrated
 web-based user interface. Build slaves are usually installed and run on
 multiple different systems to compile and test the software on these platforms
 on new checkins.
 
 Set bitten_slave_enable to "yes" and bitten_slave_flags to contain one or more
 Bitten build URLs. For form authentication add --form-auth to flags.
 
 WWW: http://bitten.edgewall.org
 
 --Boundary_(ID_EtjveiyrpqR84nq3XS3IKQ)
 Content-type: text/plain; name=pkg-message
 Content-transfer-encoding: 7BIT
 Content-disposition: attachment; filename=pkg-message
 
 If your system is the build master, i.e. it is the system that runs the Trac
 instance and integrates with the SCM, you need to configure Trac to load the
 Bitten plugin and give permissions to the build slaves.
 
 To run a build slave (which can also be on the same host), you need to
 configure it by editing /usr/local/etc/bitten/bitten-slave.conf. It is
 recommended to use a password secured Trac instance and set username and
 password appropriately for the build slaves.
 
 For more detailed instructions please have a look at the documentation at
 http://bitten.edgewall.org/wiki/Documentation/install.html
 
 --Boundary_(ID_EtjveiyrpqR84nq3XS3IKQ)--

From: Tim Niemueller <tim@niemueller.de>
To: bug-followup@FreeBSD.org, tim@niemueller.de
Cc:  
Subject: Re: ports/140157: New port: www/trac-bitten Continuous integration for
 Trac
Date: Thu, 27 Jan 2011 14:50:41 +0100

 This is a multi-part message in MIME format.
 
 --Boundary_(ID_yM+OvXsJEOP5SSpWUU1UfA)
 Content-type: text/plain; charset=ISO-8859-15; format=flowed
 Content-transfer-encoding: 7BIT
 
 Hi Greg.
 
 Is there any progress on this port? I have attached a new version of the 
 port updating it to 0.6b3. Hope it makes it into the ports collection 
 some day.
 
 	Tim
 
 --Boundary_(ID_yM+OvXsJEOP5SSpWUU1UfA)
 Content-type: application/x-shar; name=trac-bitten-0.6b3.shar
 Content-transfer-encoding: 7bit
 Content-disposition: attachment; filename=trac-bitten-0.6b3.shar
 
 # 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:
 #
 #	trac-bitten/
 #	trac-bitten/files
 #	trac-bitten/files/bitten-slave.sample
 #	trac-bitten/files/patch-git
 #	trac-bitten/files/bitten-slave.in
 #	trac-bitten/distinfo
 #	trac-bitten/pkg-descr
 #	trac-bitten/pkg-plist
 #	trac-bitten/pkg-install
 #	trac-bitten/pkg-message
 #	trac-bitten/Makefile
 #
 echo c - trac-bitten/
 mkdir -p trac-bitten/ > /dev/null 2>&1
 echo c - trac-bitten/files
 mkdir -p trac-bitten/files > /dev/null 2>&1
 echo x - trac-bitten/files/bitten-slave.sample
 sed 's/^X//' >trac-bitten/files/bitten-slave.sample << 'a88e5196b8ccd39036328d3d2106afde'
 X;[authentication]
 X; user/pass for login to Trac
 X;username = <user>
 X;password = <pass>
 X
 X[os]
 Xname = @DISTRO@
 Xversion = @DISTRO_VERSION@
 X
 X;[package:some-package]
 X;version = 2.0
 X
 a88e5196b8ccd39036328d3d2106afde
 echo x - trac-bitten/files/patch-git
 sed 's/^X//' >trac-bitten/files/patch-git << '805f971a4efdb099840a92d1d0b45263'
 Xdiff -urN Bitten-0.6dev-r777/bitten/build/gittools.py Bitten-0.6dev-r777.git/bitten/build/gittools.py
 X--- Bitten-0.6dev-r777/bitten/build/gittools.py	1970-01-01 01:00:00.000000000 +0100
 X+++ Bitten-0.6dev-r777.git/bitten/build/gittools.py	2009-10-24 17:03:02.000000000 +0200
 X@@ -0,0 +1,77 @@
 X+# -*- coding: utf-8 -*-
 X+# Copyright (C) Tim Niemueller [www.niemueller.de]
 X+# Copyright (C) 2007 Edgewall Software
 X+# based on hgtools.py
 X+#
 X+# This software is licensed as described in the file COPYING, which
 X+# you should have received as part of this distribution. The terms
 X+# are also available at http://bitten.edgewall.org/wiki/License.
 X+
 X+"""Recipe commands for git."""
 X+
 X+import logging
 X+
 X+log = logging.getLogger('bitten.build.gittools')
 X+
 X+__docformat__ = 'restructuredtext en'
 X+
 X+def clone(ctxt, url, dir_='.'):
 X+    """pull and update the local working copy from the git repository.
 X+    
 X+    :param ctxt: the build context
 X+    :type ctxt: `Context`
 X+    :param url: the url of the repository to clone
 X+    :param dir\_: the name of a local subdirectory containing the working copy
 X+    """
 X+    args = ['clone', url, dir_]
 X+
 X+    from bitten.build import shtools
 X+    returncode = shtools.execute(ctxt, file_='git', args=args)
 X+    if returncode != 0:
 X+        ctxt.error('git clone failed (%s)' % returncode)
 X+
 X+def pull(ctxt, revision, remote='origin', dir_='.'):
 X+    """pull and update the local working copy from the git repository.
 X+    
 X+    :param ctxt: the build context
 X+    :type ctxt: `Context`
 X+    :param remote: the remote repository to pull from
 X+    :param dir\_: the name of a local subdirectory containing the working copy
 X+    """
 X+    args = ['pull', '-u', remote, revision]
 X+
 X+    from bitten.build import shtools
 X+    returncode = shtools.execute(ctxt, file_='git', dir_=dir_, args=args)
 X+    if returncode != 0:
 X+        ctxt.error('git pull failed (%s)' % returncode)
 X+
 X+def checkout(ctxt, branch, dir_='.'):
 X+    """checkout specific branch
 X+    
 X+    :param ctxt: the build context
 X+    :type ctxt: `Context`
 X+    :param branch: branch to checkout
 X+    :param dir\_: the name of a local subdirectory containing the working copy
 X+    """
 X+    args = ['checkout', branch]
 X+
 X+    from bitten.build import shtools
 X+    returncode = shtools.execute(ctxt, file_='git', dir_=dir_, args=args)
 X+    if returncode != 0:
 X+        ctxt.error('git branch failed (%s)' % returncode)
 X+
 X+def reset(ctxt, revision, dir_='.'):
 X+    """reset git tree to given revision/commit
 X+    
 X+    :param ctxt: the build context
 X+    :type ctxt: `Context`
 X+    :param revision: the revision/commit to reset to
 X+    :param dir\_: the name of a local subdirectory containing the working copy
 X+    """
 X+    args = ['reset', '--hard', revision]
 X+
 X+    from bitten.build import shtools
 X+    returncode = shtools.execute(ctxt, file_='git', dir_=dir_, args=args)
 X+    if returncode != 0:
 X+        ctxt.error('git reset failed (%s)' % returncode)
 X+
 Xdiff -urN Bitten-0.6dev-r777/setup.py Bitten-0.6dev-r777.git/setup.py
 X--- Bitten-0.6dev-r777/setup.py	2009-10-16 14:15:34.000000000 +0200
 X+++ Bitten-0.6dev-r777.git/setup.py	2009-10-24 17:05:22.000000000 +0200
 X@@ -55,6 +55,10 @@
 X         'svn#export = bitten.build.svntools:export',
 X         'svn#update = bitten.build.svntools:update',
 X         'hg#pull = bitten.build.hgtools:pull',
 X+        'git#clone = bitten.build.gittools:clone',
 X+        'git#pull = bitten.build.gittools:pull',
 X+        'git#reset = bitten.build.gittools:reset',
 X+        'git#checkout = bitten.build.gittools:checkout',
 X         'xml#transform = bitten.build.xmltools:transform'
 X     ]
 X recipe_commands = [NS_old + tool for tool in tools] \
 X@@ -133,6 +137,7 @@
 X                   "bitten.build.pythontools",
 X                   "bitten.build.shtools",
 X                   "bitten.build.svntools",
 X+                  "bitten.build.gittools",
 X                   "bitten.build.xmltools",
 X                   "bitten.recipe",
 X                   "bitten.slave",
 805f971a4efdb099840a92d1d0b45263
 echo x - trac-bitten/files/bitten-slave.in
 sed 's/^X//' >trac-bitten/files/bitten-slave.in << '2f63add6e2642eaa8c6e7de5e803ef18'
 X#!/bin/sh
 X#
 X# $FreeBSD$
 X#
 X# PROVIDE: bitten-slave
 X# REQUIRE: DAEMON
 X# KEYWORD: FreeBSD
 X#
 X# Bitten continuous integration build slave
 X#
 X
 X. /etc/rc.subr
 X
 Xname=bitten_slave
 Xrcvar=`set_rcvar`
 Xlogfile=/var/log/bitten-slave.log
 Xconffile=/usr/local/etc/bitten/bitten-slave.conf
 Xworkdir=/var/lib/bitten-slave
 X
 Xload_rc_config ${name}
 X
 Xcommand=/usr/local/bin/bitten-slave
 Xcommand_args="-f ${conffile} -d ${workdir} --log=${logfile} ${bitten_slave_urls} >/dev/null &"
 Xcommand_interpreter=%%PYTHON_CMD%%
 Xstart_precmd="touch $logfile && chown bitten-slave $logfile"
 Xbitten_slave_user=bitten-slave
 Xbitten_slave_group=bitten-slave
 X
 Xrun_rc_command "$1"
 X
 2f63add6e2642eaa8c6e7de5e803ef18
 echo x - trac-bitten/distinfo
 sed 's/^X//' >trac-bitten/distinfo << 'a491207fbbbbda78b59367b08162bd2f'
 XMD5 (Bitten-0.6b3.tar.gz) = 89c1201bea6ca2ee61e7ac4dde617197
 XSHA256 (Bitten-0.6b3.tar.gz) = d3167fe928bb8d61e4367d71a6c286915c58f435b155c1886e0fea141f0501a8
 XSIZE (Bitten-0.6b3.tar.gz) = 338511
 a491207fbbbbda78b59367b08162bd2f
 echo x - trac-bitten/pkg-descr
 sed 's/^X//' >trac-bitten/pkg-descr << 'a1082e0506bf40c69088f322b62d151d'
 XA continuous integration plugin for Trac.
 X
 XBitten is a  Python-based framework for collecting various software metrics
 Xvia continuous integration. It builds on Trac to provide an integrated
 Xweb-based user interface. Build slaves are usually installed and run on
 Xmultiple different systems to compile and test the software on these platforms
 Xon new checkins.
 X
 XSet bitten_slave_enable to "yes" and bitten_slave_flags to contain one or more
 XBitten build URLs. For form authentication add --form-auth to flags.
 X
 XWWW: http://bitten.edgewall.org
 a1082e0506bf40c69088f322b62d151d
 echo x - trac-bitten/pkg-plist
 sed 's/^X//' >trac-bitten/pkg-plist << '974eadbef30a5ff2c22aec6108d0bddd'
 X@stopdaemon bitten-slave
 Xbin/bitten-slave
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/PKG-INFO
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/SOURCES.txt
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/dependency_links.txt
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/entry_points.txt
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/not-zip-safe
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO/top_level.txt
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/__init__.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/__init__.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/__init__.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/admin.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/admin.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/admin.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/api.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/api.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/api.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/__init__.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/__init__.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/__init__.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/api.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/api.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/api.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/config.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/config.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/config.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/ctools.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/ctools.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/ctools.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/gittools.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/gittools.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/gittools.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/hgtools.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/hgtools.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/hgtools.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/javatools.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/javatools.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/javatools.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/monotools.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/monotools.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/monotools.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/phptools.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/phptools.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/phptools.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/pythontools.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/pythontools.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/pythontools.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/shtools.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/shtools.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/shtools.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/svntools.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/svntools.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/svntools.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/xmltools.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/xmltools.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build/xmltools.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/admin.css
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/bitten.css
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/bitten.css.orig
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/bitten_build.png
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/bitten_buildf.png
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/bitten_coverage.css
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/arno.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/arst.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/brfl.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/brno.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/brst.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/cl3d.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/clfl.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/clno.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/clp3.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/cls3.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/clst.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/cnno.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/lnno.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/mxno.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/pi3d.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/pino.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library/scno.swf
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/failure.png
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/tabset.js
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/main.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/main.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/main.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/master.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/master.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/master.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/model.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/model.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/model.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/notify.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/notify.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/notify.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/queue.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/queue.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/queue.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/recipe.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/recipe.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/recipe.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/__init__.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/__init__.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/__init__.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/coverage.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/coverage.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/coverage.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/lint.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/lint.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/lint.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/testing.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/testing.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report/testing.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/slave.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/slave.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/slave.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_admin_configs.html
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_admin_master.html
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_build.html
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_chart_coverage.html
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_chart_lint.html
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_chart_tests.html
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_config.html
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_notify_email.txt
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_summary_coverage.html
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_summary_lint.html
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates/bitten_summary_tests.html
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/upgrades.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/upgrades.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/upgrades.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/__init__.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/__init__.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/__init__.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/loc.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/loc.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/loc.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/testrunner.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/testrunner.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/testrunner.pyo
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/xmlio.py
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/xmlio.pyc
 X%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util/xmlio.pyo
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/web_ui.py
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/web_ui.pyc
 X%%MASTER_PORT%%%%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/web_ui.pyo
 X%%MASTER_PORT%%@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/templates
 X%%MASTER_PORT%%@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/report
 X%%MASTER_PORT%%@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs/charts_library
 X%%MASTER_PORT%%@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/htdocs
 X@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/util
 X@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten/build
 X@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/bitten
 X@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg/EGG-INFO
 X@dirrm %%PYTHON_SITELIBDIR%%/%%EGG_NAME%%-%%PORTVERSION%%-py%%PYTHONVERSION%%.egg
 X@unexec echo "Warning: If you will *NOT* use this package anymore, please remove the bitten-slave user and group manually."
 974eadbef30a5ff2c22aec6108d0bddd
 echo x - trac-bitten/pkg-install
 sed 's/^X//' >trac-bitten/pkg-install << '31ffe94beaf1ae0832e63f35f3b18bf8'
 X#!/bin/sh
 X
 XPATH=/bin:/usr/sbin
 X
 XUSER=bitten-slave
 XGROUP=bitten-slave
 XUID=212
 XGID=212
 X
 Xcase $2 in
 X  PRE-INSTALL)
 X  if pw group show "${GROUP}" 2>/dev/null; then
 X    echo "You already have a group \"${GROUP}\", so I will use it."
 X  else
 X    if pw groupadd ${GROUP} -g ${GID}; then
 X      echo "Added group \"${GROUP}\"."
 X    else
 X      echo "Adding group \"${GROUP}\" failed..."
 X      exit 1
 X    fi
 X  fi
 X
 X  if pw user show "${USER}" 2>/dev/null; then
 X    echo "You already have a user \"${USER}\", so I will use it."
 X  else
 X    if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
 X      -s /bin/sh -L daemon -m -d /var/lib/bitten-slave -c "bitten slave"
 X    then
 X      echo "Added user \"${USER}\"."
 X    else
 X      echo "Adding user \"${USER}\" failed..."
 X      exit 1
 X    fi
 X  fi
 X  ;;
 Xesac
 X
 31ffe94beaf1ae0832e63f35f3b18bf8
 echo x - trac-bitten/pkg-message
 sed 's/^X//' >trac-bitten/pkg-message << 'b37b6dfc20b13265b2672608bcd01ff1'
 XIf your system is the build master, i.e. it is the system that runs the Trac
 Xinstance and integrates with the SCM, you need to configure Trac to load the
 XBitten plugin and give permissions to the build slaves.
 X
 XTo run a build slave (which can also be on the same host), you need to
 Xconfigure it by editing /usr/local/etc/bitten/bitten-slave.conf. It is
 Xrecommended to use a password secured Trac instance and set username and
 Xpassword appropriately for the build slaves.
 X
 XFor more detailed instructions please have a look at the documentation at
 Xhttp://bitten.edgewall.org/wiki/Documentation/install.html
 b37b6dfc20b13265b2672608bcd01ff1
 echo x - trac-bitten/Makefile
 sed 's/^X//' >trac-bitten/Makefile << '8b3da6b4dfa6c092c68ed48a3a4ec552'
 X# New ports collection makefile for: trac-bitten
 X# Date created:                      Oct 26 2009
 X# Whom:                              Tim Niemueller <tim@niemueller.de>
 X#
 X# $FreeBSD$
 X#
 X
 XPORTNAME=	bitten
 XPORTVERSION=	0.6b3
 XCATEGORIES=	www devel python
 XMASTER_SITES=	http://ftp.edgewall.com/pub/bitten/
 XPKGNAMEPREFIX=	trac-
 XDISTNAME=	Bitten-${PORTVERSION}
 X
 XMAINTAINER=	tim@niemueller.de
 XCOMMENT=	Continuous integration for Trac
 X
 XBITTENVERSION=	0.6b3
 X
 XOPTIONS=	BITTEN_MASTER "Build bitten master" ON
 X.include <bsd.port.options.mk>
 X
 XBUILD_DEPENDS+=	easy_install:${PORTSDIR}/devel/py-setuptools
 X.if defined(WITH_BITTEN_MASTER)
 XRUN_DEPENDS+=	tracd:${PORTSDIR}/www/trac
 X.endif
 X
 XWRKSRC=		${WRKDIR}/Bitten-${PORTVERSION}
 XNO_BUILD=	yes
 XUSE_PYTHON=	2.3+
 XUSE_PYDISTUTILS=yes
 XPLIST_SUB+=	PORTVERSION=${BITTENVERSION} PYTHONVERSION=${_PYTHON_VERSION}
 XSUB_LIST+=	PYTHON_CMD=${_PYTHON_CMD}
 XPYDISTUTILS_NOEGGINFO=	yes
 XPYDISTUTILS_PKGNAME=	Bitten
 XPATCH_STRIP=	-p1
 XUSE_RC_SUBR=	bitten-slave
 X
 X.if defined(WITHOUT_BITTEN_MASTER)
 XPYDISTUTILS_EXTRA_INSTALLARGS=--without-master
 XPLIST_SUB+=	MASTER_PORT="@comment " EGG_NAME="BittenSlave"
 X.else
 XPLIST_SUB+=	EGG_NAME="Bitten"
 X.endif
 X
 Xpre-install:
 X	@${SH} ${PKGINSTALL} ${PORTNAME} PRE-INSTALL
 X
 X# reproduce rule here with added PYDISTUTILS_EXTRA_INSTALLARGS
 Xdo-install:
 X	@(cd ${INSTALL_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYSETUP} ${PYDISTUTILS_EXTRA_INSTALLARGS}	${PYDISTUTILS_INSTALL_TARGET} ${PYDISTUTILS_INSTALLARGS})
 X
 Xpost-install:
 X	@if [ ! -f ${ETCDIR}/bitten-slave.conf ]; then \
 X		${ECHO} Generating initial configuration in ${ETCDIR}/bitten-slave.conf; \
 X		${MKDIR} ${ETCDIR}; \
 X		${SED} -e 's/@DISTRO@/${OPSYS}/g' -e 's/@DISTRO_VERSION@/${OSREL}/g' ${FILESDIR}/bitten-slave.sample > ${ETCDIR}/bitten-slave.conf; \
 X		${CP} ${FILESDIR}/bitten-slave.sample ${ETCDIR}; \
 X	fi
 X
 X.include <bsd.port.mk>
 8b3da6b4dfa6c092c68ed48a3a4ec552
 exit
 
 
 --Boundary_(ID_yM+OvXsJEOP5SSpWUU1UfA)--
State-Changed-From-To: open->feedback 
State-Changed-By: miwi 
State-Changed-When: Sat Feb 5 05:57:00 UTC 2011 
State-Changed-Why:  
hi, build failed with plist. 
http://32bit.miwibox.org/index.php?action=describe_port&id=2534 

http://www.freebsd.org/cgi/query-pr.cgi?pr=140157 
State-Changed-From-To: feedback->closed 
State-Changed-By: miwi 
State-Changed-When: Fri Mar 18 10:32:29 UTC 2011 
State-Changed-Why:  
feedback timeout 

http://www.freebsd.org/cgi/query-pr.cgi?pr=140157 
State-Changed-From-To: closed->open 
State-Changed-By: miwi 
State-Changed-When: Fri Mar 18 10:58:09 UTC 2011 
State-Changed-Why:  
repopen per request 

http://www.freebsd.org/cgi/query-pr.cgi?pr=140157 
State-Changed-From-To: open->feedback 
State-Changed-By: glarkin 
State-Changed-When: Thu Apr 21 15:45:49 EDT 2011 
State-Changed-Why:  
Waiting for test results from submitter. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=140157 

From: Greg Larkin <glarkin@FreeBSD.org>
To: bug-followup@FreeBSD.org, tim@niemueller.de
Cc:  
Subject: Re: ports/140157: New port: www/trac-bitten Continuous integration
 for Trac
Date: Wed, 21 Sep 2011 10:57:12 -0400

 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
 Hi Tim,
 
 I'm planning on adding this port to the tree within the next week,
 unless you have any objections.  Has this version been working well in
 your environment?  Let me know if you're still interested in
 maintaining the port, and if not, I'll take it.
 
 Thank you,
 Greg
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (Darwin)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
 
 iEYEARECAAYFAk55+0gACgkQ0sRouByUApDukACbBTSQqx0p08FtJ4fvpFgcnuw5
 ztsAn0LyUIUAzrSA1nhqq86RiXXcmCwL
 =BGOV
 -----END PGP SIGNATURE-----
 
State-Changed-From-To: feedback->open 
State-Changed-By: eadler 
State-Changed-When: Sat Sep 24 18:26:03 UTC 2011 
State-Changed-Why:  
feedback timeout 

http://www.freebsd.org/cgi/query-pr.cgi?pr=140157 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/140157: commit references a PR
Date: Thu, 13 Oct 2011 21:06:35 +0000 (UTC)

 glarkin     2011-10-13 21:06:22 UTC
 
   FreeBSD ports repository
 
   Modified files:
     .                    GIDs UIDs 
   Log:
   - Added user and group to prepare for new port devel/trac-bitten
   
   PR:             ports/140157
   Submitted by:   Tim Niemueller <tim@niemueller.de>
   
   Revision  Changes    Path
   1.157     +2 -1      ports/GIDs
   1.177     +2 -1      ports/UIDs
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->closed 
State-Changed-By: glarkin 
State-Changed-When: Thu Oct 13 19:28:17 EDT 2011 
State-Changed-Why:  
Committed with some modifications, and I added Tim Niemueller to the 
additional contributors list at: 
http://www.freebsd.org/doc/en/articles/contributors/contrib-additional.html 

Your name will show up there in the next day or so. 

Thank you for your continued patience while I finalized this port! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=140157 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/140157: commit references a PR
Date: Thu, 13 Oct 2011 23:22:32 +0000 (UTC)

 glarkin     2011-10-13 23:22:22 UTC
 
   FreeBSD ports repository
 
   Modified files:
     devel                Makefile 
   Added files:
     devel/trac-bitten    Makefile distinfo pkg-descr pkg-plist 
     devel/trac-bitten/files bitten-slave.in bitten-slave.sample 
                             patch-git pkg-message.in 
   Log:
   A continuous integration plugin for Trac.
   
   Bitten is a Python-based framework for collecting various software
   metrics via continuous integration. It builds on Trac to provide
   an integrated web-based user interface. Build slaves are usually
   installed and run on multiple different systems to compile and test
   the software on these platforms on new checkins.
   
   Set bitten_slave_enable to "yes" and bitten_slave_urls to contain
   one or more Bitten build URLs. For form authentication add --form-auth
   to flags.
   
   WWW: http://bitten.edgewall.org/
   
   PR:             ports/140157
   Submitted by:   Tim Niemueller <tim@niemueller.de>
   
   Revision  Changes    Path
   1.4602    +1 -0      ports/devel/Makefile
   1.1       +69 -0     ports/devel/trac-bitten/Makefile (new)
   1.1       +2 -0      ports/devel/trac-bitten/distinfo (new)
   1.1       +42 -0     ports/devel/trac-bitten/files/bitten-slave.in (new)
   1.1       +12 -0     ports/devel/trac-bitten/files/bitten-slave.sample (new)
   1.1       +103 -0    ports/devel/trac-bitten/files/patch-git (new)
   1.1       +12 -0     ports/devel/trac-bitten/files/pkg-message.in (new)
   1.1       +13 -0     ports/devel/trac-bitten/pkg-descr (new)
   1.1       +139 -0    ports/devel/trac-bitten/pkg-plist (new)
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/140157: commit references a PR
Date: Thu, 13 Oct 2011 23:27:51 +0000 (UTC)

 glarkin     2011-10-13 23:27:39 UTC
 
   FreeBSD doc repository (ports committer)
 
   Modified files:
     en_US.ISO8859-1/articles/contributors contrib.additional.sgml 
   Log:
   - Added Tim Niemueller to the list of contributors
   
   PR:             ports/140157
   
   Revision  Changes    Path
   1.1027    +5 -0      doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
