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