Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Nov 2010 19:17:35 GMT
From:      Aldis Berjoza <aldis@bsdroot.lv>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/151993: [NEW PORT] devel/py-mercurialserver
Message-ID:  <201011061917.oA6JHZ3h095239@www.freebsd.org>
Resent-Message-ID: <201011061920.oA6JK8HS008275@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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 <aldis@bsdroot.lv>
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 <bsd.port.pre.mk>
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 <bsd.port.post.mk>
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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011061917.oA6JHZ3h095239>