From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Nov 6 19:20:08 2010 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 E5AD5106566C for ; Sat, 6 Nov 2010 19:20: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 C10328FC1A for ; Sat, 6 Nov 2010 19:20: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 oA6JK80N008290 for ; Sat, 6 Nov 2010 19:20:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id oA6JK8HS008275; Sat, 6 Nov 2010 19:20:08 GMT (envelope-from gnats) Resent-Date: Sat, 6 Nov 2010 19:20:08 GMT Resent-Message-Id: <201011061920.oA6JK8HS008275@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, Aldis Berjoza Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C64C10656AB for ; Sat, 6 Nov 2010 19:17:36 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id DE2A78FC08 for ; Sat, 6 Nov 2010 19:17:35 +0000 (UTC) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.3/8.14.3) with ESMTP id oA6JHZaw095240 for ; Sat, 6 Nov 2010 19:17:35 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.3/8.14.3/Submit) id oA6JHZ3h095239; Sat, 6 Nov 2010 19:17:35 GMT (envelope-from nobody) Message-Id: <201011061917.oA6JHZ3h095239@www.freebsd.org> Date: Sat, 6 Nov 2010 19:17:35 GMT From: Aldis Berjoza To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: ports/151993: [NEW PORT] devel/py-mercurialserver 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: Sat, 06 Nov 2010 19:20:09 -0000 >Number: 151993 >Category: ports >Synopsis: [NEW PORT] devel/py-mercurialserver >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Nov 06 19:20:08 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Aldis Berjoza >Release: >Organization: >Environment: >Description: mercurial-server gives your developers remote read/write access to centralized Mercurial repositories using SSH public key authentication; it provides convenient and fine-grained key management and access control. http://www.lshift.net/mercurial-server.html >How-To-Repeat: >Fix: Patch attached with submission follows: # 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: # # py-mercurialserver # py-mercurialserver/pkg-descr # py-mercurialserver/Makefile # py-mercurialserver/distinfo # py-mercurialserver/pkg-install # py-mercurialserver/pkg-plist # py-mercurialserver/files # py-mercurialserver/files/patch-setup.py # echo c - py-mercurialserver mkdir -p py-mercurialserver > /dev/null 2>&1 echo x - py-mercurialserver/pkg-descr sed 's/^X//' >py-mercurialserver/pkg-descr << 'd9471591743181e11630620d570326dd' Xmercurial-server gives your developers remote read/write access to centralized XMercurial repositories using SSH public key authentication; it provides Xconvenient and fine-grained key management and access control. X XAll of the repositories controlled by mercurial-server are owned by a single Xuser (the "hg" user in what follows), but many remote users can act on them, Xand different users can have different permissions. We don't use file Xpermissions to achieve that - instead, developers log in as the "hg" user Xwhen they connect to the repository host using SSH, using SSH URLs of the Xform "ssh://hg@repository-host/repository-name". A restricted shell prevents Xthem from using this access for unauthorized purposes. Developers Xare authenticated only using SSH keys; no other form of authentication is Xsupported. X XTo give a user access to the repository, place their key in an Xappropriately-named subdirectory of "/usr/lcoal/etc/mercurialserver/keys" Xand run "refresh-auth". You can then control what access they have to what Xrepositories by editing the control file X"/usr/local/etc/mercurialserver/access.conf", which can match the names of Xthese keys against a glob pattern. X XFor convenient remote control of access, you can instead (if you have the Xprivileges) make changes to a special repository called "hgadmin", which Xcontains its own "access.conf" file and "keys" directory. Changes pushed to Xthis repository take effect immediately. The two "access.conf" files are Xconcatenated, and the keys directories merged. X XWWW: http://www.lshift.net/mercurial-server.html d9471591743181e11630620d570326dd echo x - py-mercurialserver/Makefile sed 's/^X//' >py-mercurialserver/Makefile << '59a94d483630ff72b0df1bafefb78e96' X# New ports collection Makefile for: mercurialserver X# Date Created: 12 Sep 2010 X# Whom: Aldis Berjoza X# X# $FreeBSD$ X# X XPORTNAME= mercurialserver XPORTVERSION= 1.0.1 XCATEGORIES= devel python XMASTER_SITES= http://dev.lshift.net/paul/mercurial-server/ XPKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} XDISTNAME= ${SNAME}_${PORTVERSION} X XMAINTAINER= aldis@bsdroot.lv XCOMMENT= Software for hosting mercurial repositories X XRUN_DEPENDS= hg:${PORTSDIR}/devel/mercurial X XWRKSRC= ${WRKDIR}/${SNAME}_${PORTVERSION}.orig XLICENSE= GPLv2 XSNAME= mercurial-server X XHGUSER= hg XHGGROUP= hg X XUSE_PYTHON= 2.6+ XUSE_PYDISTUTILS=YES XPYDISTUTILS_PKGNAME=${SNAME} X XCONF_FILES= access.conf \ X remote-hgrc.d/access.rc \ X remote-hgrc.d/logging.rc X X.include Xpre-patch: X ${SED} -I .orig -e "s#/etc/mercurial-server/#${PREFIX}/etc/${PORTNAME}/#" ${WRKSRC}/src/init/dot-mercurial-server X Xpre-su-install: X @${SETENV} PKG_PREFIX=${PREFIX} GITUSER=${HGUSER} \ X GITGROUP=${HGGROUP} GITHOME=${HGHOME} \ X ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL X Xpost-install: X ${MKDIR} ${PREFIX}/etc/${PORTNAME}/remote-hgrc.d X ${MKDIR} ${PREFIX}/etc/${PORTNAME}/keys/users X ${MKDIR} ${PREFIX}/etc/${PORTNAME}/keys/root X.for i in ${CONF_FILES} X ${INSTALL_DATA} ${WRKSRC}/src/init/conf/${i} ${PREFIX}/etc/${PORTNAME}/${i} X.endfor X ${MV} ${PREFIX}/hg/dot-mercurial-server ${PREFIX}/hg/.mercurial-server X ${MV} ${PREFIX}/hg/hgadmin-hgrc ${PREFIX}/hg/.hgadmin-hgrc X ${RM} ${PREFIX}/hg/hginit X ${MKDIR} ${PREFIX}/hg/.ssh X ${MKDIR} ${PREFIX}/hg/repos X ${CHOWN} -R ${HGUSER}:${HGGROUP} ${PREFIX}/hg X @${ECHO_MSG} X @${ECHO_MSG} "NOTE: ${PORTNAME} has been patched to use ${PREFIX}/etc/${PORTNAME}" X @${ECHO_MSG} " instead of /etc/mercurial-server" X @${ECHO_MSG} X X.include 59a94d483630ff72b0df1bafefb78e96 echo x - py-mercurialserver/distinfo sed 's/^X//' >py-mercurialserver/distinfo << 'e9a4450dc4c2fb7ecab46613d56f0ccc' XSHA256 (mercurial-server_1.0.1.tar.gz) = 6d67b8584730883c83972d35cf77bd1b45e7d2222458c5c3ac4ae94b3ec8f1ee XSIZE (mercurial-server_1.0.1.tar.gz) = 20302 e9a4450dc4c2fb7ecab46613d56f0ccc echo x - py-mercurialserver/pkg-install sed 's/^X//' >py-mercurialserver/pkg-install << '4d980a96b1e5a7bcb9229cbe61f2df6e' X#!/bin/sh X X# $FreeBSD: ports/devel/py-gitosis/pkg-install,v 1.1 2009/09/15 08:23:25 nivit Exp $ X XPATH=/bin:/usr/bin:/usr/sbin X Xcase $2 in XPRE-INSTALL) X HGUSER=${HGUSER:-hg} X HGGROUP=${HGGROUP:-hg} X HGHOME=${HGHOME:-${PKG_PREFIX}/${HGUSER}} X UID=212 X GID=212 X X if pw group show "${HGGROUP}" 2>/dev/null; then X echo "You already have a group \"${HGGROUP}\", so I will use it." X else X if pw groupadd ${HGGROUP} -g ${GID}; then X echo "Added group \"${HGGROUP}\"." X else X echo "Adding group \"${HGGROUP}\" failed..." X exit 1 X fi X fi X X if pw user show "${HGUSER}" 2>/dev/null; then X echo "You already have a user \"${HGUSER}\", so I will use it." X else X if pw useradd ${HGUSER} -u ${UID} -g ${HGGROUP} -h - -d ${HGHOME} \ X -c "mercurial-server user" X then X echo "Added user \"${HGUSER}\"." X else X echo "Adding user \"${HGUSER}\" failed..." X exit 1 X fi X fi X X if ! [ -x ~${HGUSER} ] ; then X install -m 755 -o ${HGUSER} -g ${HGGROUP} -d ${HGHOME} X fi X ;; Xesac 4d980a96b1e5a7bcb9229cbe61f2df6e echo x - py-mercurialserver/pkg-plist sed 's/^X//' >py-mercurialserver/pkg-plist << 'bd71b141a5a4ebfa02cd12ee7ad2b579' X%%PYTHON_SITELIBDIR%%/mercurialserver/__init__.py X%%PYTHON_SITELIBDIR%%/mercurialserver/__init__.pyc X%%PYTHON_SITELIBDIR%%/mercurialserver/__init__.pyo X%%PYTHON_SITELIBDIR%%/mercurialserver/access.py X%%PYTHON_SITELIBDIR%%/mercurialserver/access.pyc X%%PYTHON_SITELIBDIR%%/mercurialserver/access.pyo X%%PYTHON_SITELIBDIR%%/mercurialserver/changes.py X%%PYTHON_SITELIBDIR%%/mercurialserver/changes.pyc X%%PYTHON_SITELIBDIR%%/mercurialserver/changes.pyo X%%PYTHON_SITELIBDIR%%/mercurialserver/config.py X%%PYTHON_SITELIBDIR%%/mercurialserver/config.pyc X%%PYTHON_SITELIBDIR%%/mercurialserver/config.pyo X%%PYTHON_SITELIBDIR%%/mercurialserver/refreshauth.py X%%PYTHON_SITELIBDIR%%/mercurialserver/refreshauth.pyc X%%PYTHON_SITELIBDIR%%/mercurialserver/refreshauth.pyo X%%PYTHON_SITELIBDIR%%/mercurialserver/ruleset.py X%%PYTHON_SITELIBDIR%%/mercurialserver/ruleset.pyc X%%PYTHON_SITELIBDIR%%/mercurialserver/ruleset.pyo X%%PYTHON_SITELIBDIR%%/mercurialserver/servelog.py X%%PYTHON_SITELIBDIR%%/mercurialserver/servelog.pyc X%%PYTHON_SITELIBDIR%%/mercurialserver/servelog.pyo Xbin/hg-ssh Xbin/refresh-auth Xetc/mercurialserver/access.conf Xetc/mercurialserver/remote-hgrc.d/access.rc Xetc/mercurialserver/remote-hgrc.d/logging.rc Xhg/.hgadmin-hgrc Xhg/.mercurial-server X X@dirrm %%PYTHON_SITELIBDIR%%/mercurialserver X X@dirrmtry hg/repos X@dirrmtry hg/.ssh X@dirrmtry hg X@dirrmtry etc/mercurialserver/remote-hgrc.d X@dirrmtry etc/mercurialserver/keys/users X@dirrmtry etc/mercurialserver/keys/root X@dirrmtry etc/mercurialserver/keys X@dirrmtry etc/mercurialserver bd71b141a5a4ebfa02cd12ee7ad2b579 echo c - py-mercurialserver/files mkdir -p py-mercurialserver/files > /dev/null 2>&1 echo x - py-mercurialserver/files/patch-setup.py sed 's/^X//' >py-mercurialserver/files/patch-setup.py << '90c3220a65cc496ab142d0bfa522d7c7' X--- ./setup.py.orig 2010-11-06 17:40:20.926497770 +0200 X+++ ./setup.py 2010-11-06 17:40:39.706412807 +0200 X@@ -13,7 +13,7 @@ X requires = ["mercurial"], # FIXME: what version? X scripts = ['src/hg-ssh', 'src/refresh-auth'], X data_files = [ X- ('init', [ X+ ('hg', [ X 'src/init/hginit', X 'src/init/dot-mercurial-server', X 'src/init/hgadmin-hgrc' 90c3220a65cc496ab142d0bfa522d7c7 exit >Release-Note: >Audit-Trail: >Unformatted: