Index: www/trac-devel/Makefile =================================================================== --- /dev/null +++ www/trac-devel/Makefile @@ -0,0 +1,62 @@ +# $FreeBSD$ + +PORTNAME= trac +DISTVERSION= 1.5.2 +CATEGORIES= www devel python +MASTER_SITES= http://ftp.edgewall.com/pub/trac/ \ + ftp://ftp.edgewall.com/pub/trac/ +PKGNAMESUFFIX= -devel +DISTNAME= Trac-${DISTVERSION} + +MAINTAINER= samm@FreeBSD.org +COMMENT= Enhanced wiki and issue tracking system for software projects + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/COPYING + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Babel>=2.3.4:devel/py-babel@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10:devel/py-Jinja2@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Babel>=2.3.4:devel/py-babel@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10:devel/py-Jinja2@${PY_FLAVOR} + +# some tests are failing with 3.8 +USES= python:3.7 + +CONFLICTS_INSTALL= trac + +USE_PYTHON= distutils autoplist +USE_RC_SUBR= tracd +SUB_LIST= PYTHON_CMD=${PYTHON_CMD} + +PORTEXAMPLES= * +PORTDATA= * + +NO_ARCH= yes + +OPTIONS_DEFINE= DOCUTILS PYGMENTS TZ SVN GIT EXAMPLES TEXTILE +OPTIONS_DEFAULT= DOCUTILS PYGMENTS TZ SVN SQLITE TEXTILE +OPTIONS_RADIO= DATABASE +OPTIONS_RADIO_DATABASE= PGSQL SQLITE MYSQL +DOCUTILS_DESC= Allow additional text markup +PYGMENTS_DESC= Use generic syntax highlighter +TEXTILE_DESC= Support for the Textile markup +TZ_DESC= Process Time Zones +SVN_DESC= Enable SVN support +GIT_DESC= Enable GIT support + +DOCUTILS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}docutils>=0.14:textproc/py-docutils@${PY_FLAVOR} +PYGMENTS_RUN_DEPENDS= ${PY_PYGMENTS} +TZ_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${PY_FLAVOR} +PGSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}psycopg2>0:databases/py-psycopg2@${PY_FLAVOR} +SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} +MYSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mysqlclient>=0:databases/py-mysqlclient@${PY_FLAVOR} +SVN_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}subversion>0:devel/py-subversion@${PY_FLAVOR} +GIT_RUN_DEPENDS= git:devel/git +TEXTILE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}textile>0:www/py-textile@${PY_FLAVOR} + +post-install-EXAMPLES-on: + @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/sample-plugins + ${FIND} ${WRKSRC}/contrib -type f -maxdepth 1 -exec ${INSTALL_DATA} {} ${STAGEDIR}${EXAMPLESDIR}/ \; + (cd ${WRKSRC}/sample-plugins && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}/sample-plugins) + +.include Index: www/trac-devel/distinfo =================================================================== --- /dev/null +++ www/trac-devel/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1609593024 +SHA256 (Trac-1.5.2.tar.gz) = dac241e8018e11374cfabe68f902d815948611481f4ecb565e4f076768547e39 +SIZE (Trac-1.5.2.tar.gz) = 5416364 Index: www/trac-devel/files/patch-trac_util_daemon.py =================================================================== --- /dev/null +++ www/trac-devel/files/patch-trac_util_daemon.py @@ -0,0 +1,23 @@ +--- trac/util/daemon.py.orig 2020-12-20 02:35:50 UTC ++++ trac/util/daemon.py +@@ -68,12 +68,14 @@ def daemonize(pidfile=None, progname=None, stdin='/dev + # The process is now daemonized, redirect standard file descriptors + for stream in sys.stdout, sys.stderr: + stream.flush() +- stdin = os.open(stdin, 'rb') +- stdout = os.open(stdout, 'ab+') +- stderr = os.open(stderr, 'ab+', 0) +- os.dup2(stdin.fileno(), sys.stdin.fileno()) +- os.dup2(stdout.fileno(), sys.stdout.fileno()) +- os.dup2(stderr.fileno(), sys.stderr.fileno()) ++ stdin = os.open(stdin, os.O_RDONLY) ++ stdout = os.open(stdout, os.O_RDWR | os.O_APPEND) ++ stderr = os.open(stderr, os.O_RDWR | os.O_APPEND) ++ os.dup2(stdin, sys.stdin.fileno()) ++ os.dup2(stdout, sys.stdout.fileno()) ++ os.dup2(stderr, sys.stderr.fileno()) ++ for fd in stdin, stdout, stderr: ++ os.close(fd) + + if pidfile: + # Register signal handlers to ensure atexit hooks are called on exit Index: www/trac-devel/files/tracd.in =================================================================== --- /dev/null +++ www/trac-devel/files/tracd.in @@ -0,0 +1,61 @@ +#!/bin/sh +# +# tracd startup +# +# $FreeBSD$ + +# PROVIDE: tracd +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Add the following lines to /etc/rc.conf to enable or configure tracd: +# tracd_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable tracd. +# tracd_listen (str): The host name or IP address to bind tracd to. +# By default tracd listens 0.0.0.0, i.e. all the +# available addresses on all interfaces. +# tracd_port (str): The port number to bind to, 80 by default. +# tracd_pidfile (str): When daemonizing, file to which to write pid +# if not to /var/run/tracd.pid. +# tracd_envdir (str): Directory of the project environments. Set to +# "/home/trac" by default. +# tracd_env (str): The project environment name while using single +# environment mode. The default is empty, meaning +# multiproject mode. +# tracd_args (str): Extra arguments passed to tracd startup +# command. Empty by default. +# + +. /etc/rc.subr + +name="tracd" +rcvar=tracd_enable + +tracd_enable=${tracd_enable:-"NO"} +tracd_listen=${tracd_listen:-"0.0.0.0"} +tracd_port=${tracd_port:-"80"} +tracd_pidfile=${tracd_pidfile:-"/var/run/tracd.pid"} +tracd_envdir=${tracd_envdir:-"/home/trac"} +tracd_env=${tracd_env:-""} +tracd_args=${tracd_args:-""} + +load_rc_config ${name} + +command_args="--daemonize --hostname=${tracd_listen} --port=${tracd_port}" +command_args="${command_args} --pidfile=${tracd_pidfile} ${tracd_args}" + +required_dirs=${tracd_envdir} +pidfile=${tracd_pidfile} + +if [ -z "${tracd_env}" ]; then + _trac_env="--env-parent-dir ${tracd_envdir}" +else + _trac_env="${tracd_envdir}/${tracd_env}" + command_args="${command_args} --single-env" +fi + +command_args="%%PREFIX%%/bin/tracd ${command_args} ${_trac_env}" +command="%%PYTHON_CMD%%" + +run_rc_command $1 Index: www/trac-devel/pkg-descr =================================================================== --- /dev/null +++ www/trac-devel/pkg-descr @@ -0,0 +1,21 @@ +Trac uses a minimalistic approach to web-based software project management. +Our mission is to help developers write great software while staying out of +the way. Trac should impose as little as possible on a team's established +development process and policies. + +All aspects of Trac have been designed with one single goal, to simplify +tracking and communication of software issues, enhancements and monitoring +overall progress. + +What is Trac? + + * An integrated system for managing software projects + * An enhanced wiki + * A flexible web-based issue tracker + * An interface to the Subversion and GIT revision control systems + +At the core of Trac lies an integrated wiki and issue/bug database. Using +wiki markup, all objects managed by Trac can directly link to other +issues/bug reports, code changesets, documentation and files. + +WWW: https://trac.edgewall.org/