ports/159260: [NEW PORT] devel/gitolite: An access control layer on top of git

milki milki at cibo.no-ip.org
Fri Jul 29 01:30:19 UTC 2011


The following reply was made to PR ports/159260; it has been noted by GNATS.

From: milki <milki at cibo.no-ip.org>
To: bug-followup at 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 <milki at rescomp.berkeley.edu>=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 at 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 <bsd.port.pre.mk>=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 <bsd.port.post.mk>=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 at di=
 rrm %%DATADIR%%/conf=0AX at dirrm %%DATADIR%%/hooks/gitolite-admin=0AX at dirrm %=
 %DATADIR%%/hooks/common=0AX at dirrm %%DATADIR%%/hooks=0AX at dirrm %%DATADIR%%=
 =0AX at 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 <<EOF | cut -c9- > $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--



More information about the freebsd-ports-bugs mailing list