From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Jul 29 01:30:19 2011 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F52E106566B for ; Fri, 29 Jul 2011 01:30:19 +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 8D1888FC12 for ; Fri, 29 Jul 2011 01:30:19 +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 p6T1UJm7042082 for ; Fri, 29 Jul 2011 01:30:19 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p6T1UJV0042081; Fri, 29 Jul 2011 01:30:19 GMT (envelope-from gnats) Date: Fri, 29 Jul 2011 01:30:19 GMT Message-Id: <201107290130.p6T1UJV0042081@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org From: milki Cc: Subject: Re: ports/159260: [NEW PORT] devel/gitolite: An access control layer on top of git X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: milki List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jul 2011 01:30:19 -0000 The following reply was made to PR ports/159260; it has been noted by GNATS. From: milki To: bug-followup@FreeBSD.org Cc: Subject: Re: ports/159260: [NEW PORT] devel/gitolite: An access control layer on top of git Date: Thu, 28 Jul 2011 18:22:56 -0700 --qMm9M+Fa2AknHoGS Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Make some fixes: "conf" files now go to DATADIR/conf hooks are executable fixed perl path in update hook Removed leftover files in FILESDIR tdb++ --qMm9M+Fa2AknHoGS Content-Type: application/x-shar Content-Disposition: attachment; filename="gitolite.shar" Content-Transfer-Encoding: quoted-printable # This is a shell archive. Save it in a file, remove anything before=0A# t= his line, and then unpack it by entering "sh file". Note, it may=0A# creat= e directories; files and directories will be owned by you and=0A# have defa= ult permissions.=0A#=0A# This archive contains:=0A#=0A# .=0A# ./Makefile=0A= # ./distinfo=0A# ./pkg-descr=0A# ./pkg-plist=0A# ./files=0A# ./files/patch-= gl-install=0A# ./files/patch-gl-setup=0A# ./files/pkg-message.in=0A#=0Aecho= c - .=0Amkdir -p . > /dev/null 2>&1=0Aecho x - ./Makefile=0Ased 's/^X//' >= ./Makefile << '464ef7c6571951809b23e262cbe26e19'=0AX# New ports collection = makefile for: gitolite=0AX# Date created: 07-28-2011=0AX# Whom: milk= i =0AX#=0AX# $FreeBSD$=0AX#=0AX=0AXPORTNAME=3D = gitolite=0AXPORTVERSION=3D 2.0.2=0AXCATEGORIES=3D devel=0AXMASTER_SITES=3D = http://milki.github.com/${PORTNAME}/=0AX=0AXMAINTAINER=3D milki@rescomp.ber= keley.edu=0AXCOMMENT=3D An access control layer on top of git=0AX=0AXLICENS= E=3D GPLv2=0AX=0AXRUN_DEPENDS=3D git>=3D0:${PORTSDIR}/devel/git=0AX=0AXUSE_= PERL5=3D yes=0AX=0AXSUB_FILES=3D pkg-message=0AX=0AXOPTIONS=3D GITUSER "Cre= ate git user as gitolite provider" On=0AX=0AX.include =0AX= =0AX.if !defined(WITHOUT_GITUSER)=0AXUSERS=3D git=0AXGROUPS=3D ${USERS}= =0AXPLIST_SUB+=3D GITUSER=3D""=0AX.else=0AXPLIST_SUB+=3D GITUSER=3D"@commen= t "=0AX.endif=0AX=0AXGLAUTHCOMMAND=3D \=0AX\#!/bin/sh\n \=0AXexec ${PREFIX}= /libexec/gitolite/gl-auth-command \"\$$@\"\n=0AX=0AXGLSETUP=3D \=0AX\#!/bin= /sh\n \=0AXexec ${PREFIX}/libexec/gitolite/gl-setup \"\$$@\"\n=0AX=0AXpost-= patch:=0AX @${ECHO} -e "${GLAUTHCOMMAND}" > ${WRKDIR}/auth-command=0AX @${E= CHO} -e "${GLSETUP}" > ${WRKDIR}/setup=0AX=0AXpre-build:=0AX.for FILE in gl= -auth-command gl-compile-conf gl-conf-convert gl-dont-panic gl-mirror-shell= gl-mirror-sync gl-query-rc gl-setup gl-setup-authkeys gl-time gl-tool sshk= eys-lint=0AX ${REINPLACE_CMD} \=0AX -Ee '1s|#!/usr/bin/perl|#!${PERL}|' \= =0AX ${WRKSRC}/src/${FILE}=0AX.endfor=0AX ${REINPLACE_CMD} \=0AX -Ee '1s|= #!/usr/bin/perl|#!${PERL}|' \=0AX ${WRKSRC}/hooks/common/update=0AX=0AXdo-= build:=0AX ${RM} ${WRKSRC}/src/gl-easy-install=0AX ${RM} ${WRKSRC}/src/gl-s= ystem-install=0AX ${REINPLACE_CMD} \=0AX -E 's%^GL_PACKAGE_CONF=3D.*%GL_PA= CKAGE_CONF=3D${DATADIR}/conf;%' \=0AX ${WRKSRC}/src/gl-setup=0AX ${REINPLA= CE_CMD} \=0AX -E "s%^#[[:blank:]]*\\\$$GL_PACKAGE_CONF[[:blank:]]*=3D.*%\$= $GL_PACKAGE_CONF =3D '${DATADIR}/conf';%" \=0AX ${WRKSRC}/conf/example.git= olite.rc=0AX ${REINPLACE_CMD} \=0AX -E "s%^#[[:blank:]]*\\\$$GL_PACKAGE_HO= OKS[[:blank:]]*=3D.*%\$$GL_PACKAGE_HOOKS =3D '${DATADIR}/hooks';%" \=0AX $= {WRKSRC}/conf/example.gitolite.rc=0AX=0AXpost-build:=0AX @${FIND} ${WRKSRC}= -name "*.bak" -delete=0AX @${FIND} ${WRKSRC} -name "*.orig" -delete=0AX=0A= Xdo-install:=0AX ${MKDIR} ${PREFIX}/libexec/gitolite=0AX ${INSTALL_SCRIPT} = ${WRKSRC}/src/* ${PREFIX}/libexec/gitolite/=0AX ${MKDIR} ${DATADIR}/conf=0A= X ${INSTALL_DATA} ${WRKSRC}/conf/* ${DATADIR}/conf=0AX ${MKDIR} ${DATADIR}/= hooks=0AX (cd ${WRKSRC}/hooks && ${COPYTREE_BIN} \* ${DATADIR}/hooks)=0AX $= {INSTALL_SCRIPT} ${WRKDIR}/auth-command ${PREFIX}/bin/gl-auth-command=0AX $= {INSTALL_SCRIPT} ${WRKDIR}/setup ${PREFIX}/bin/gl-setup=0AX=0AXpost-install= :=0AX @${CAT} ${PKGMESSAGE}=0AX=0AX.include =0A464ef7c657= 1951809b23e262cbe26e19=0Aecho x - ./distinfo=0Ased 's/^X//' >./distinfo << = 'aec8793adfd5b7c3f00e62ae41a09ac2'=0AXSHA256 (gitolite-2.0.2.tar.gz) =3D 49= d59db565d071f8f81bb11c9aff6b6fae995e0041ca458a1d3d780685c4f7f6=0AXSIZE (git= olite-2.0.2.tar.gz) =3D 225507=0Aaec8793adfd5b7c3f00e62ae41a09ac2=0Aecho x = - ./pkg-descr=0Ased 's/^X//' >./pkg-descr << '0e313719ff012ceaf97a028d51caa= 8f5'=0AXGitolite is an access control layer on top of git, which allows acc= ess control=0AXdown to the branch level, including specifying who can and c= annot rewind a=0AXgiven branch.=0AX=0AXGitolite lets you use a single user = on a server to host many git repositories=0AXand provide access to many dev= elopers, without having to give them real=0AXuserids on or shell access to = the server. Authentication is most commonly done=0AXusing sshd, but you can= also use httpd if you prefer.=0AX=0AXGitolite can restrict who can read fr= om (clone/fetch) or write to (push) a=0AXrepository. It can also restrict w= ho can push to what branch or tag, which is=0AXvery important in a corporat= e environment. =0AX=0AXWWW: https://github.com/sitaramc/gitolite=0A0e313719= ff012ceaf97a028d51caa8f5=0Aecho x - ./pkg-plist=0Ased 's/^X//' >./pkg-plist= << 'ef3e7f63841ae908ba397c2bef1fbad6'=0AXbin/gl-auth-command=0AXbin/gl-set= up=0AXlibexec/gitolite/gitolite.pm=0AXlibexec/gitolite/gitolite_env.pm=0AXl= ibexec/gitolite/gitolite_rc.pm=0AXlibexec/gitolite/gl-auth-command=0AXlibex= ec/gitolite/gl-compile-conf=0AXlibexec/gitolite/gl-conf-convert=0AXlibexec/= gitolite/gl-dont-panic=0AXlibexec/gitolite/gl-install=0AXlibexec/gitolite/g= l-mirror-shell=0AXlibexec/gitolite/gl-mirror-sync=0AXlibexec/gitolite/gl-qu= ery-rc=0AXlibexec/gitolite/gl-setup=0AXlibexec/gitolite/gl-setup-authkeys= =0AXlibexec/gitolite/gl-time=0AXlibexec/gitolite/gl-tool=0AXlibexec/gitolit= e/sshkeys-lint=0AX%%DATADIR%%/conf/example.conf=0AX%%DATADIR%%/conf/example= .gitolite.rc=0AX%%DATADIR%%/hooks/common/gitolite-hooked=0AX%%DATADIR%%/hoo= ks/common/gl-pre-git.hub-sample=0AX%%DATADIR%%/hooks/common/post-receive.mi= rrorpush=0AX%%DATADIR%%/hooks/common/update=0AX%%DATADIR%%/hooks/common/upd= ate.secondary.sample=0AX%%DATADIR%%/hooks/gitolite-admin/post-update=0AX@di= rrm %%DATADIR%%/conf=0AX@dirrm %%DATADIR%%/hooks/gitolite-admin=0AX@dirrm %= %DATADIR%%/hooks/common=0AX@dirrm %%DATADIR%%/hooks=0AX@dirrm %%DATADIR%%= =0AX@dirrm libexec/gitolite=0AX%%GITUSER%%@dirrmtry git=0Aef3e7f63841ae908b= a397c2bef1fbad6=0Aecho c - ./files=0Amkdir -p ./files > /dev/null 2>&1=0Aec= ho x - ./files/patch-gl-install=0Ased 's/^X//' >./files/patch-gl-install <<= '95a5cb5502f019e5a0dfd7e9f00d3f4a'=0AX--- src/gl-install 2011-07-26 11:16:= 41.000000000 -0700=0AX+++ src/gl-install 2011-07-28 07:30:17.000000000 -070= 0=0AX@@ -70,7 +70,7 @@=0AX =0AX # "src" and "doc" will be overwritten on ea= ch install, but not conf=0AX if ($GL_PACKAGE_HOOKS) {=0AX- system("cp -R= -p $GL_PACKAGE_HOOKS $GL_ADMINDIR");=0AX+ system("cp -f -R -p $GL_PACKA= GE_HOOKS $GL_ADMINDIR");=0AX } else {=0AX system("cp -R -p $ENV{GL_BIND= IR}/../src $ENV{GL_BINDIR}/../doc $ENV{GL_BINDIR}/../hooks $GL_ADMINDIR");= =0AX system("cp $ENV{GL_BINDIR}/../conf/VERSION = $GL_ADMINDIR/conf");=0A95a5cb5502f019e5a0dfd7e9f00d3f4a=0Aecho x - ./= files/patch-gl-setup=0Ased 's/^X//' >./files/patch-gl-setup << '2b6cf9178d4= b9da48d10a11f93aa5396'=0AX--- src/gl-setup 2011-07-26 11:16:41.000000000 -0= 700=0AX+++ src/gl-setup 2011-07-28 04:02:41.000000000 -0700=0AX@@ -107,7 +1= 07,7 @@=0AX =0AX # now we get to gitolite itself=0AX =0AX-gl-install -q=0AX= +${GL_BINDIR}/gl-install -q=0AX =0AX [ -f $GL_ADMINDIR/conf/gitolite.conf ]= || {=0AX cat < $GL_ADMINDIR/conf/gitolite.conf=0AX@@ = -121,7 +121,7 @@=0AX [ -n "$pubkey_file" ] && cp $pubkey_file $GL_ADMINDIR/= keydir=0AX =0AX touch $HOME/.ssh/authorized_keys=0AX-gl-compile-conf -q=0AX= +${GL_BINDIR}/gl-compile-conf -q=0AX =0AX # setup push-to-admin=0AX (=0AX@@= -133,4 +133,4 @@=0AX =0AX # now that the admin repo is created, you have t= o set the hooks properly; best=0AX # do it by running install again=0AX-gl-= install -q=0AX+${GL_BINDIR}/gl-install -q=0A2b6cf9178d4b9da48d10a11f93aa539= 6=0Aecho x - ./files/pkg-message.in=0Ased 's/^X//' >./files/pkg-message.in = << 'f63be51668f70461c30a5539f7c148ef'=0AX=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0AX=0AXFinal gitolite i= nstallation instructions:=0AX=0AXAny ssh user can be a gitolite provider. S= imply run the following command as=0AXthe user:=0AX=0AX%%PREFIX%%/bin/gl-se= tup /path/to/admin.ssh.key.pub=0AX=0AXThis will setup up the configuration = files for gitolite, designating where the=0AXrepositories are located and o= ther options.=0AX=0AXThe admin ssh key allows full access to the gitolite-a= dmin repository where=0AXadditional users and repositories can be configure= d.=0AX=0AXBy default, the git user is created for use by gitolite.=0AX=0AX= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=0Af63be51668f70461c30a5539f7c148ef=0Aexit=0A=0A --qMm9M+Fa2AknHoGS--