- Update to version 01.1

- Support the alpha platform (although it is still at version 99.1)
- Install p4ftpd
- Create a non-privileged user and run p4d as the user
- Dig directories and make the port plug-and-play
- Change the configuration file's name to perforce.conf
- Do not unconditionally remove perforce.conf on deinstall
- Make almost all parameters (including directory layouts and
  user/group names) configurable via make variables
- Make the startup script support "restart"
- Take over the maintainership

Approved by:	Samuel Tardieu <sam@inf.enst.fr> (ex. MAINTAINER)
This commit is contained in:
Akinori MUSHA 2001-09-01 18:57:08 +00:00
parent ec1ecd4eb4
commit df5a274627
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=47290
48 changed files with 1290 additions and 336 deletions

View File

@ -6,39 +6,99 @@
#
PORTNAME= perforce
PORTVERSION= 00.2
PORTVERSION= ${VERSION}
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.freebsd/ \
http://www.dsmit.com/p4/ \
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.${PLATFORM}/ \
ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/doc/man/
EXTRACT_SUFX=
DISTFILES= p4 p4d p4web p4.1 p4d.1
DIST_SUBDIR= perforce
DISTFILES= ${BIN_FILES} ${SBIN_FILES} ${MAN1}
DIST_SUBDIR= perforce/${VERSION}/${ARCH}
EXTRACT_ONLY= # none
MAINTAINER= sam@inf.enst.fr
MAINTAINER= knu@FreeBSD.org
NO_PACKAGE= Restricted distribution
NO_CDROM= Restricted distribution
MAN1= p4.1 p4d.1
do-extract:
@${MKDIR} ${WRKSRC}
NO_WRKSUBDIR= yes
.include <bsd.port.pre.mk>
# These variables are all configurable.
PERFORCE_USER?= p4admin
PERFORCE_UID?= 94
PERFORCE_GROUP?= p4admin
PERFORCE_GID?= 94
PERFORCE_HOME?= ${LOCALBASE}/perforce
PERFORCE_ROOT?= ${PERFORCE_HOME}/root
PERFORCE_LOGS?= ${PERFORCE_HOME}/logs
PERFORCE_PORT?= 1666
.if ${ARCH} == i386
VERSION= 01.1
PLATFORM= freebsd
BIN_FILES= p4 p4web
SBIN_FILES= p4d p4ftpd
.elif ${ARCH} == alpha
VERSION= 99.1
PLATFORM= freebsdaxp
BIN_FILES= p4
SBIN_FILES= p4d
.else
.error "Unsupported platform, sorry."
.endif
do-build:
${SED} -e "s,@PERFORCE_ROOT@,${PERFORCE_ROOT},g" \
-e "s,@PERFORCE_LOGS@,${PERFORCE_LOGS},g" \
-e "s,@PERFORCE_USER@,${PERFORCE_USER},g" \
-e "s,@PERFORCE_PORT@,${PERFORCE_PORT},g" \
< ${FILESDIR}/perforce.conf.in > ${WRKSRC}/perforce.conf
${SED} -e "s,@PREFIX@,${PREFIX},g" \
< ${FILESDIR}/perforce.sh.in > ${WRKSRC}/perforce.sh
pre-install:
${SETENV} PKG_PREFIX=${PREFIX} \
PERFORCE_USER=${PERFORCE_USER} \
PERFORCE_UID=${PERFORCE_UID} \
PERFORCE_GROUP=${PERFORCE_GROUP} \
PERFORCE_GID=${PERFORCE_GID} \
PERFORCE_HOME=${PERFORCE_HOME} \
PERFORCE_ROOT=${PERFORCE_ROOT} \
PERFORCE_LOGS=${PERFORCE_LOGS} \
${SH} ${PKGDIR}/pkg-install ${PORTNAME} PRE-INSTALL
do-install:
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4 ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4web ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4d ${PREFIX}/sbin/
if [ ! -f ${PREFIX}/etc/perforce ]; then \
${INSTALL_DATA} ${FILESDIR}/perforce ${PREFIX}/etc/; \
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
${INSTALL_DATA} ${WRKSRC}/perforce.conf ${PREFIX}/etc/perforce.conf.default; \
if [ ! -f ${PREFIX}/etc/perforce.conf ]; then \
${CP} -p ${PREFIX}/etc/perforce.conf.default ${PREFIX}/etc/perforce.conf; \
fi
${INSTALL_SCRIPT} ${WRKSRC}/perforce.sh ${PREFIX}/etc/rc.d/
.for PERFMAN in p4 p4d
${INSTALL_MAN} ${DISTDIR}/${DIST_SUBDIR}/${PERFMAN}.1 ${PREFIX}/man/man1
.for f in ${MAN1}
${INSTALL_MAN} ${_DISTDIR}/${f} ${PREFIX}/man/man1/
.endfor
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
.include <bsd.port.mk>
post-install:
.for f in ${BIN_FILES}
${ECHO} bin/${f} >> ${TMPPLIST}
.endfor
.for f in ${SBIN_FILES}
${ECHO} sbin/${f} >> ${TMPPLIST}
.endfor
${ECHO} "@unexec /bin/rmdir ${PERFORCE_ROOT} ${PERFORCE_LOGS} ${PERFORCE_HOME} 2>/dev/null || true" >> ${TMPPLIST}
.include <bsd.port.post.mk>

View File

@ -1,5 +1,10 @@
MD5 (perforce/p4) = cd395c485cd7e0a2f80d6b972374dca6
MD5 (perforce/p4d) = 8556db22a77aa1b67542ab4712292731
MD5 (perforce/p4web) = 1a64aaa96d9088f4375cdc4a1ec2a2bb
MD5 (perforce/p4.1) = 4019bba1166429d5a7111319afa09e48
MD5 (perforce/p4d.1) = 29b1bd9838acb517f00becf1b8273592
MD5 (perforce/01.1/i386/p4) = 128d067c5feec61d7e6df74d871e3ed0
MD5 (perforce/01.1/i386/p4d) = bfbb3ed930fc66f7ce7b1da4cbfe6b61
MD5 (perforce/01.1/i386/p4ftpd) = 2d02f69be2f636c52dbdae9e1dbfe9b8
MD5 (perforce/01.1/i386/p4web) = ee5843ee0539700e8eb0e65eff5f4d74
MD5 (perforce/01.1/i386/p4.1) = 7eed553dc7b484ec3fd7a81173e531b7
MD5 (perforce/01.1/i386/p4d.1) = 50b3a5705319fa8389a8f83123f80e8f
MD5 (perforce/99.1/alpha/p4) = 7c1300a82ab03b7ede46cf8a02c48fd9
MD5 (perforce/99.1/alpha/p4d) = 8f34c41c18185011ed848aaf450cffa5
MD5 (perforce/99.1/alpha/p4.1) = 4a9d035eb5ef96342c2f701a02da40f9
MD5 (perforce/99.1/alpha/p4d.1) = a08eb04e9668ba4d0abf47f3b12c56f7

View File

@ -1,18 +0,0 @@
#
# Perforce FreeBSD configuration file
#
#
# Perforce ROOT
#
PERFORCE_ROOT="/usr/p4root"
#
# Perforce options (see man p4d)
#
PERFORCE_OPTIONS="-d -v server=1 -L /var/log/perforce"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes

View File

@ -0,0 +1,40 @@
#
# Perforce FreeBSD configuration file
#
#
# $FreeBSD$
#
# Perforce ROOT
#
PERFORCE_ROOT="@PERFORCE_ROOT@"
#
# Perforce user (it is recommended to run p4d as a non-root user)
#
PERFORCE_USER="@PERFORCE_USER@"
#
# p4d port (default: 1666)
#
PERFORCE_PORT="@PERFORCE_PORT@"
#
# p4d options (see man p4d)
#
PERFORCE_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4d.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes
#
# p4ftpd options (see p4ftpd -h)
#
PERFORCE_FTPD_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4ftpd.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_FTPD_START=yes

View File

@ -1,14 +1,38 @@
#!/bin/sh
#
# $FreeBSD$
p4d=@PREFIX@/sbin/p4d
p4ftpd=@PREFIX@/sbin/p4ftpd
case $1 in
start)
[ -f @PREFIX@/etc/perforce ] && . @PREFIX@/etc/perforce
if [ x$PERFORCE_START = xyes ]; then
echo -n ' perforce'
p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS
start)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4d -a x$PERFORCE_START = xyes ]; then
echo -n ' p4d'
su -fm $PERFORCE_USER -c "$p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS"
fi
if [ -x $p4ftpd -a x$PERFORCE_FTPD_START = xyes ]; then
echo -n ' p4ftpd'
$p4ftpd $PERFORCE_FTPD_OPTIONS
fi
;;
stop)
killall p4d && echo -n ' perforce'
stop)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4ftpd ]; then
killall -u 0 p4ftpd >/dev/null 2>&1 && echo -n ' p4ftpd'
fi
if [ -x $p4d ]; then
killall -u $PERFORCE_USER p4d >/dev/null 2>&1 && echo -n ' p4d'
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
exit 64
;;
*) ;;
esac

View File

@ -1,7 +1,4 @@
Perforce is a commercial revision control system that can be used gratis
for developing free software (see WWW page for details).
Perforce is a commercial revision control system that can be used
gratis for developing free software. (see the WWW page for details).
WWW: http://www.perforce.com/
-- Samuel Tardieu
sam@inf.enst.fr

52
devel/p4/pkg-install Normal file
View File

@ -0,0 +1,52 @@
#! /bin/sh
#
# $FreeBSD$
PATH=/bin:/usr/sbin
PERFORCE_USER=${PERFORCE_USER:-p4admin}
PERFORCE_UID=${PERFORCE_UID:-94}
PERFORCE_GROUP=${PERFORCE_GROUP:-p4admin}
PERFORCE_GID=${PERFORCE_GID:-94}
PERFORCE_HOME=${PERFORCE_HOME:-$PKG_PREFIX/perforce}
PERFORCE_LOGDIR=${PERFORCE_LOGDIR:-$PERFORCE_HOME/log}
PERFORCE_ROOT=${PERFORCE_ROOT:-$PERFORCE_HOME/root}
case $2 in
PRE-INSTALL)
USER=${PERFORCE_USER}
GROUP=${PERFORCE_GROUP}
UID=${PERFORCE_UID}
GID=${PERFORCE_GID}
if pw group show "${GROUP}" 2>/dev/null; then
echo "You already have a group \"${GROUP}\", so I will use it."
else
if pw groupadd ${GROUP} -g ${GID}; then
echo "Added group \"${GROUP}\"."
else
echo "Adding group \"${GROUP}\" failed..."
exit 1
fi
fi
if pw user show "${USER}" 2>/dev/null; then
echo "You already have a user \"${USER}\", so I will use it."
else
if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
-d ${PERFORCE_HOME} -c "Perforce admin" -s /sbin/nologin
then
echo "Added user \"${USER}\"."
else
echo "Adding user \"${USER}\" failed..."
exit 1
fi
fi
if [ ! -d $PERFORCE_HOME ] ; then
echo hey
mkdir -p $PERFORCE_HOME $PERFORCE_LOGS $PERFORCE_ROOT
chown -R $USER:$GROUP $PERFORCE_HOME
fi
;;
esac

View File

@ -1,5 +1,4 @@
bin/p4
bin/p4web
sbin/p4d
etc/perforce
@unexec if cmp -s %D/etc/perforce.conf %D/etc/perforce.conf.default; then rm -f %D/etc/perforce.conf; fi
etc/perforce.conf.default
@exec [ ! -f %B/perforce.conf ] && cp -p %B/%f %B/perforce.conf || true
etc/rc.d/perforce.sh

View File

@ -6,39 +6,99 @@
#
PORTNAME= perforce
PORTVERSION= 00.2
PORTVERSION= ${VERSION}
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.freebsd/ \
http://www.dsmit.com/p4/ \
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.${PLATFORM}/ \
ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/doc/man/
EXTRACT_SUFX=
DISTFILES= p4 p4d p4web p4.1 p4d.1
DIST_SUBDIR= perforce
DISTFILES= ${BIN_FILES} ${SBIN_FILES} ${MAN1}
DIST_SUBDIR= perforce/${VERSION}/${ARCH}
EXTRACT_ONLY= # none
MAINTAINER= sam@inf.enst.fr
MAINTAINER= knu@FreeBSD.org
NO_PACKAGE= Restricted distribution
NO_CDROM= Restricted distribution
MAN1= p4.1 p4d.1
do-extract:
@${MKDIR} ${WRKSRC}
NO_WRKSUBDIR= yes
.include <bsd.port.pre.mk>
# These variables are all configurable.
PERFORCE_USER?= p4admin
PERFORCE_UID?= 94
PERFORCE_GROUP?= p4admin
PERFORCE_GID?= 94
PERFORCE_HOME?= ${LOCALBASE}/perforce
PERFORCE_ROOT?= ${PERFORCE_HOME}/root
PERFORCE_LOGS?= ${PERFORCE_HOME}/logs
PERFORCE_PORT?= 1666
.if ${ARCH} == i386
VERSION= 01.1
PLATFORM= freebsd
BIN_FILES= p4 p4web
SBIN_FILES= p4d p4ftpd
.elif ${ARCH} == alpha
VERSION= 99.1
PLATFORM= freebsdaxp
BIN_FILES= p4
SBIN_FILES= p4d
.else
.error "Unsupported platform, sorry."
.endif
do-build:
${SED} -e "s,@PERFORCE_ROOT@,${PERFORCE_ROOT},g" \
-e "s,@PERFORCE_LOGS@,${PERFORCE_LOGS},g" \
-e "s,@PERFORCE_USER@,${PERFORCE_USER},g" \
-e "s,@PERFORCE_PORT@,${PERFORCE_PORT},g" \
< ${FILESDIR}/perforce.conf.in > ${WRKSRC}/perforce.conf
${SED} -e "s,@PREFIX@,${PREFIX},g" \
< ${FILESDIR}/perforce.sh.in > ${WRKSRC}/perforce.sh
pre-install:
${SETENV} PKG_PREFIX=${PREFIX} \
PERFORCE_USER=${PERFORCE_USER} \
PERFORCE_UID=${PERFORCE_UID} \
PERFORCE_GROUP=${PERFORCE_GROUP} \
PERFORCE_GID=${PERFORCE_GID} \
PERFORCE_HOME=${PERFORCE_HOME} \
PERFORCE_ROOT=${PERFORCE_ROOT} \
PERFORCE_LOGS=${PERFORCE_LOGS} \
${SH} ${PKGDIR}/pkg-install ${PORTNAME} PRE-INSTALL
do-install:
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4 ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4web ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4d ${PREFIX}/sbin/
if [ ! -f ${PREFIX}/etc/perforce ]; then \
${INSTALL_DATA} ${FILESDIR}/perforce ${PREFIX}/etc/; \
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
${INSTALL_DATA} ${WRKSRC}/perforce.conf ${PREFIX}/etc/perforce.conf.default; \
if [ ! -f ${PREFIX}/etc/perforce.conf ]; then \
${CP} -p ${PREFIX}/etc/perforce.conf.default ${PREFIX}/etc/perforce.conf; \
fi
${INSTALL_SCRIPT} ${WRKSRC}/perforce.sh ${PREFIX}/etc/rc.d/
.for PERFMAN in p4 p4d
${INSTALL_MAN} ${DISTDIR}/${DIST_SUBDIR}/${PERFMAN}.1 ${PREFIX}/man/man1
.for f in ${MAN1}
${INSTALL_MAN} ${_DISTDIR}/${f} ${PREFIX}/man/man1/
.endfor
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
.include <bsd.port.mk>
post-install:
.for f in ${BIN_FILES}
${ECHO} bin/${f} >> ${TMPPLIST}
.endfor
.for f in ${SBIN_FILES}
${ECHO} sbin/${f} >> ${TMPPLIST}
.endfor
${ECHO} "@unexec /bin/rmdir ${PERFORCE_ROOT} ${PERFORCE_LOGS} ${PERFORCE_HOME} 2>/dev/null || true" >> ${TMPPLIST}
.include <bsd.port.post.mk>

View File

@ -1,5 +1,10 @@
MD5 (perforce/p4) = cd395c485cd7e0a2f80d6b972374dca6
MD5 (perforce/p4d) = 8556db22a77aa1b67542ab4712292731
MD5 (perforce/p4web) = 1a64aaa96d9088f4375cdc4a1ec2a2bb
MD5 (perforce/p4.1) = 4019bba1166429d5a7111319afa09e48
MD5 (perforce/p4d.1) = 29b1bd9838acb517f00becf1b8273592
MD5 (perforce/01.1/i386/p4) = 128d067c5feec61d7e6df74d871e3ed0
MD5 (perforce/01.1/i386/p4d) = bfbb3ed930fc66f7ce7b1da4cbfe6b61
MD5 (perforce/01.1/i386/p4ftpd) = 2d02f69be2f636c52dbdae9e1dbfe9b8
MD5 (perforce/01.1/i386/p4web) = ee5843ee0539700e8eb0e65eff5f4d74
MD5 (perforce/01.1/i386/p4.1) = 7eed553dc7b484ec3fd7a81173e531b7
MD5 (perforce/01.1/i386/p4d.1) = 50b3a5705319fa8389a8f83123f80e8f
MD5 (perforce/99.1/alpha/p4) = 7c1300a82ab03b7ede46cf8a02c48fd9
MD5 (perforce/99.1/alpha/p4d) = 8f34c41c18185011ed848aaf450cffa5
MD5 (perforce/99.1/alpha/p4.1) = 4a9d035eb5ef96342c2f701a02da40f9
MD5 (perforce/99.1/alpha/p4d.1) = a08eb04e9668ba4d0abf47f3b12c56f7

View File

@ -1,18 +0,0 @@
#
# Perforce FreeBSD configuration file
#
#
# Perforce ROOT
#
PERFORCE_ROOT="/usr/p4root"
#
# Perforce options (see man p4d)
#
PERFORCE_OPTIONS="-d -v server=1 -L /var/log/perforce"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes

View File

@ -0,0 +1,40 @@
#
# Perforce FreeBSD configuration file
#
#
# $FreeBSD$
#
# Perforce ROOT
#
PERFORCE_ROOT="@PERFORCE_ROOT@"
#
# Perforce user (it is recommended to run p4d as a non-root user)
#
PERFORCE_USER="@PERFORCE_USER@"
#
# p4d port (default: 1666)
#
PERFORCE_PORT="@PERFORCE_PORT@"
#
# p4d options (see man p4d)
#
PERFORCE_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4d.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes
#
# p4ftpd options (see p4ftpd -h)
#
PERFORCE_FTPD_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4ftpd.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_FTPD_START=yes

View File

@ -1,14 +1,38 @@
#!/bin/sh
#
# $FreeBSD$
p4d=@PREFIX@/sbin/p4d
p4ftpd=@PREFIX@/sbin/p4ftpd
case $1 in
start)
[ -f @PREFIX@/etc/perforce ] && . @PREFIX@/etc/perforce
if [ x$PERFORCE_START = xyes ]; then
echo -n ' perforce'
p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS
start)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4d -a x$PERFORCE_START = xyes ]; then
echo -n ' p4d'
su -fm $PERFORCE_USER -c "$p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS"
fi
if [ -x $p4ftpd -a x$PERFORCE_FTPD_START = xyes ]; then
echo -n ' p4ftpd'
$p4ftpd $PERFORCE_FTPD_OPTIONS
fi
;;
stop)
killall p4d && echo -n ' perforce'
stop)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4ftpd ]; then
killall -u 0 p4ftpd >/dev/null 2>&1 && echo -n ' p4ftpd'
fi
if [ -x $p4d ]; then
killall -u $PERFORCE_USER p4d >/dev/null 2>&1 && echo -n ' p4d'
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
exit 64
;;
*) ;;
esac

View File

@ -1,7 +1,4 @@
Perforce is a commercial revision control system that can be used gratis
for developing free software (see WWW page for details).
Perforce is a commercial revision control system that can be used
gratis for developing free software. (see the WWW page for details).
WWW: http://www.perforce.com/
-- Samuel Tardieu
sam@inf.enst.fr

52
devel/p4d/pkg-install Normal file
View File

@ -0,0 +1,52 @@
#! /bin/sh
#
# $FreeBSD$
PATH=/bin:/usr/sbin
PERFORCE_USER=${PERFORCE_USER:-p4admin}
PERFORCE_UID=${PERFORCE_UID:-94}
PERFORCE_GROUP=${PERFORCE_GROUP:-p4admin}
PERFORCE_GID=${PERFORCE_GID:-94}
PERFORCE_HOME=${PERFORCE_HOME:-$PKG_PREFIX/perforce}
PERFORCE_LOGDIR=${PERFORCE_LOGDIR:-$PERFORCE_HOME/log}
PERFORCE_ROOT=${PERFORCE_ROOT:-$PERFORCE_HOME/root}
case $2 in
PRE-INSTALL)
USER=${PERFORCE_USER}
GROUP=${PERFORCE_GROUP}
UID=${PERFORCE_UID}
GID=${PERFORCE_GID}
if pw group show "${GROUP}" 2>/dev/null; then
echo "You already have a group \"${GROUP}\", so I will use it."
else
if pw groupadd ${GROUP} -g ${GID}; then
echo "Added group \"${GROUP}\"."
else
echo "Adding group \"${GROUP}\" failed..."
exit 1
fi
fi
if pw user show "${USER}" 2>/dev/null; then
echo "You already have a user \"${USER}\", so I will use it."
else
if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
-d ${PERFORCE_HOME} -c "Perforce admin" -s /sbin/nologin
then
echo "Added user \"${USER}\"."
else
echo "Adding user \"${USER}\" failed..."
exit 1
fi
fi
if [ ! -d $PERFORCE_HOME ] ; then
echo hey
mkdir -p $PERFORCE_HOME $PERFORCE_LOGS $PERFORCE_ROOT
chown -R $USER:$GROUP $PERFORCE_HOME
fi
;;
esac

View File

@ -1,5 +1,4 @@
bin/p4
bin/p4web
sbin/p4d
etc/perforce
@unexec if cmp -s %D/etc/perforce.conf %D/etc/perforce.conf.default; then rm -f %D/etc/perforce.conf; fi
etc/perforce.conf.default
@exec [ ! -f %B/perforce.conf ] && cp -p %B/%f %B/perforce.conf || true
etc/rc.d/perforce.sh

View File

@ -6,39 +6,99 @@
#
PORTNAME= perforce
PORTVERSION= 00.2
PORTVERSION= ${VERSION}
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.freebsd/ \
http://www.dsmit.com/p4/ \
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.${PLATFORM}/ \
ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/doc/man/
EXTRACT_SUFX=
DISTFILES= p4 p4d p4web p4.1 p4d.1
DIST_SUBDIR= perforce
DISTFILES= ${BIN_FILES} ${SBIN_FILES} ${MAN1}
DIST_SUBDIR= perforce/${VERSION}/${ARCH}
EXTRACT_ONLY= # none
MAINTAINER= sam@inf.enst.fr
MAINTAINER= knu@FreeBSD.org
NO_PACKAGE= Restricted distribution
NO_CDROM= Restricted distribution
MAN1= p4.1 p4d.1
do-extract:
@${MKDIR} ${WRKSRC}
NO_WRKSUBDIR= yes
.include <bsd.port.pre.mk>
# These variables are all configurable.
PERFORCE_USER?= p4admin
PERFORCE_UID?= 94
PERFORCE_GROUP?= p4admin
PERFORCE_GID?= 94
PERFORCE_HOME?= ${LOCALBASE}/perforce
PERFORCE_ROOT?= ${PERFORCE_HOME}/root
PERFORCE_LOGS?= ${PERFORCE_HOME}/logs
PERFORCE_PORT?= 1666
.if ${ARCH} == i386
VERSION= 01.1
PLATFORM= freebsd
BIN_FILES= p4 p4web
SBIN_FILES= p4d p4ftpd
.elif ${ARCH} == alpha
VERSION= 99.1
PLATFORM= freebsdaxp
BIN_FILES= p4
SBIN_FILES= p4d
.else
.error "Unsupported platform, sorry."
.endif
do-build:
${SED} -e "s,@PERFORCE_ROOT@,${PERFORCE_ROOT},g" \
-e "s,@PERFORCE_LOGS@,${PERFORCE_LOGS},g" \
-e "s,@PERFORCE_USER@,${PERFORCE_USER},g" \
-e "s,@PERFORCE_PORT@,${PERFORCE_PORT},g" \
< ${FILESDIR}/perforce.conf.in > ${WRKSRC}/perforce.conf
${SED} -e "s,@PREFIX@,${PREFIX},g" \
< ${FILESDIR}/perforce.sh.in > ${WRKSRC}/perforce.sh
pre-install:
${SETENV} PKG_PREFIX=${PREFIX} \
PERFORCE_USER=${PERFORCE_USER} \
PERFORCE_UID=${PERFORCE_UID} \
PERFORCE_GROUP=${PERFORCE_GROUP} \
PERFORCE_GID=${PERFORCE_GID} \
PERFORCE_HOME=${PERFORCE_HOME} \
PERFORCE_ROOT=${PERFORCE_ROOT} \
PERFORCE_LOGS=${PERFORCE_LOGS} \
${SH} ${PKGDIR}/pkg-install ${PORTNAME} PRE-INSTALL
do-install:
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4 ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4web ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4d ${PREFIX}/sbin/
if [ ! -f ${PREFIX}/etc/perforce ]; then \
${INSTALL_DATA} ${FILESDIR}/perforce ${PREFIX}/etc/; \
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
${INSTALL_DATA} ${WRKSRC}/perforce.conf ${PREFIX}/etc/perforce.conf.default; \
if [ ! -f ${PREFIX}/etc/perforce.conf ]; then \
${CP} -p ${PREFIX}/etc/perforce.conf.default ${PREFIX}/etc/perforce.conf; \
fi
${INSTALL_SCRIPT} ${WRKSRC}/perforce.sh ${PREFIX}/etc/rc.d/
.for PERFMAN in p4 p4d
${INSTALL_MAN} ${DISTDIR}/${DIST_SUBDIR}/${PERFMAN}.1 ${PREFIX}/man/man1
.for f in ${MAN1}
${INSTALL_MAN} ${_DISTDIR}/${f} ${PREFIX}/man/man1/
.endfor
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
.include <bsd.port.mk>
post-install:
.for f in ${BIN_FILES}
${ECHO} bin/${f} >> ${TMPPLIST}
.endfor
.for f in ${SBIN_FILES}
${ECHO} sbin/${f} >> ${TMPPLIST}
.endfor
${ECHO} "@unexec /bin/rmdir ${PERFORCE_ROOT} ${PERFORCE_LOGS} ${PERFORCE_HOME} 2>/dev/null || true" >> ${TMPPLIST}
.include <bsd.port.post.mk>

View File

@ -1,5 +1,10 @@
MD5 (perforce/p4) = cd395c485cd7e0a2f80d6b972374dca6
MD5 (perforce/p4d) = 8556db22a77aa1b67542ab4712292731
MD5 (perforce/p4web) = 1a64aaa96d9088f4375cdc4a1ec2a2bb
MD5 (perforce/p4.1) = 4019bba1166429d5a7111319afa09e48
MD5 (perforce/p4d.1) = 29b1bd9838acb517f00becf1b8273592
MD5 (perforce/01.1/i386/p4) = 128d067c5feec61d7e6df74d871e3ed0
MD5 (perforce/01.1/i386/p4d) = bfbb3ed930fc66f7ce7b1da4cbfe6b61
MD5 (perforce/01.1/i386/p4ftpd) = 2d02f69be2f636c52dbdae9e1dbfe9b8
MD5 (perforce/01.1/i386/p4web) = ee5843ee0539700e8eb0e65eff5f4d74
MD5 (perforce/01.1/i386/p4.1) = 7eed553dc7b484ec3fd7a81173e531b7
MD5 (perforce/01.1/i386/p4d.1) = 50b3a5705319fa8389a8f83123f80e8f
MD5 (perforce/99.1/alpha/p4) = 7c1300a82ab03b7ede46cf8a02c48fd9
MD5 (perforce/99.1/alpha/p4d) = 8f34c41c18185011ed848aaf450cffa5
MD5 (perforce/99.1/alpha/p4.1) = 4a9d035eb5ef96342c2f701a02da40f9
MD5 (perforce/99.1/alpha/p4d.1) = a08eb04e9668ba4d0abf47f3b12c56f7

View File

@ -1,18 +0,0 @@
#
# Perforce FreeBSD configuration file
#
#
# Perforce ROOT
#
PERFORCE_ROOT="/usr/p4root"
#
# Perforce options (see man p4d)
#
PERFORCE_OPTIONS="-d -v server=1 -L /var/log/perforce"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes

View File

@ -0,0 +1,40 @@
#
# Perforce FreeBSD configuration file
#
#
# $FreeBSD$
#
# Perforce ROOT
#
PERFORCE_ROOT="@PERFORCE_ROOT@"
#
# Perforce user (it is recommended to run p4d as a non-root user)
#
PERFORCE_USER="@PERFORCE_USER@"
#
# p4d port (default: 1666)
#
PERFORCE_PORT="@PERFORCE_PORT@"
#
# p4d options (see man p4d)
#
PERFORCE_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4d.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes
#
# p4ftpd options (see p4ftpd -h)
#
PERFORCE_FTPD_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4ftpd.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_FTPD_START=yes

View File

@ -1,14 +1,38 @@
#!/bin/sh
#
# $FreeBSD$
p4d=@PREFIX@/sbin/p4d
p4ftpd=@PREFIX@/sbin/p4ftpd
case $1 in
start)
[ -f @PREFIX@/etc/perforce ] && . @PREFIX@/etc/perforce
if [ x$PERFORCE_START = xyes ]; then
echo -n ' perforce'
p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS
start)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4d -a x$PERFORCE_START = xyes ]; then
echo -n ' p4d'
su -fm $PERFORCE_USER -c "$p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS"
fi
if [ -x $p4ftpd -a x$PERFORCE_FTPD_START = xyes ]; then
echo -n ' p4ftpd'
$p4ftpd $PERFORCE_FTPD_OPTIONS
fi
;;
stop)
killall p4d && echo -n ' perforce'
stop)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4ftpd ]; then
killall -u 0 p4ftpd >/dev/null 2>&1 && echo -n ' p4ftpd'
fi
if [ -x $p4d ]; then
killall -u $PERFORCE_USER p4d >/dev/null 2>&1 && echo -n ' p4d'
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
exit 64
;;
*) ;;
esac

View File

@ -1,7 +1,4 @@
Perforce is a commercial revision control system that can be used gratis
for developing free software (see WWW page for details).
Perforce is a commercial revision control system that can be used
gratis for developing free software. (see the WWW page for details).
WWW: http://www.perforce.com/
-- Samuel Tardieu
sam@inf.enst.fr

52
devel/p4ftpd/pkg-install Normal file
View File

@ -0,0 +1,52 @@
#! /bin/sh
#
# $FreeBSD$
PATH=/bin:/usr/sbin
PERFORCE_USER=${PERFORCE_USER:-p4admin}
PERFORCE_UID=${PERFORCE_UID:-94}
PERFORCE_GROUP=${PERFORCE_GROUP:-p4admin}
PERFORCE_GID=${PERFORCE_GID:-94}
PERFORCE_HOME=${PERFORCE_HOME:-$PKG_PREFIX/perforce}
PERFORCE_LOGDIR=${PERFORCE_LOGDIR:-$PERFORCE_HOME/log}
PERFORCE_ROOT=${PERFORCE_ROOT:-$PERFORCE_HOME/root}
case $2 in
PRE-INSTALL)
USER=${PERFORCE_USER}
GROUP=${PERFORCE_GROUP}
UID=${PERFORCE_UID}
GID=${PERFORCE_GID}
if pw group show "${GROUP}" 2>/dev/null; then
echo "You already have a group \"${GROUP}\", so I will use it."
else
if pw groupadd ${GROUP} -g ${GID}; then
echo "Added group \"${GROUP}\"."
else
echo "Adding group \"${GROUP}\" failed..."
exit 1
fi
fi
if pw user show "${USER}" 2>/dev/null; then
echo "You already have a user \"${USER}\", so I will use it."
else
if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
-d ${PERFORCE_HOME} -c "Perforce admin" -s /sbin/nologin
then
echo "Added user \"${USER}\"."
else
echo "Adding user \"${USER}\" failed..."
exit 1
fi
fi
if [ ! -d $PERFORCE_HOME ] ; then
echo hey
mkdir -p $PERFORCE_HOME $PERFORCE_LOGS $PERFORCE_ROOT
chown -R $USER:$GROUP $PERFORCE_HOME
fi
;;
esac

View File

@ -1,5 +1,4 @@
bin/p4
bin/p4web
sbin/p4d
etc/perforce
@unexec if cmp -s %D/etc/perforce.conf %D/etc/perforce.conf.default; then rm -f %D/etc/perforce.conf; fi
etc/perforce.conf.default
@exec [ ! -f %B/perforce.conf ] && cp -p %B/%f %B/perforce.conf || true
etc/rc.d/perforce.sh

View File

@ -6,39 +6,99 @@
#
PORTNAME= perforce
PORTVERSION= 00.2
PORTVERSION= ${VERSION}
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.freebsd/ \
http://www.dsmit.com/p4/ \
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.${PLATFORM}/ \
ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/doc/man/
EXTRACT_SUFX=
DISTFILES= p4 p4d p4web p4.1 p4d.1
DIST_SUBDIR= perforce
DISTFILES= ${BIN_FILES} ${SBIN_FILES} ${MAN1}
DIST_SUBDIR= perforce/${VERSION}/${ARCH}
EXTRACT_ONLY= # none
MAINTAINER= sam@inf.enst.fr
MAINTAINER= knu@FreeBSD.org
NO_PACKAGE= Restricted distribution
NO_CDROM= Restricted distribution
MAN1= p4.1 p4d.1
do-extract:
@${MKDIR} ${WRKSRC}
NO_WRKSUBDIR= yes
.include <bsd.port.pre.mk>
# These variables are all configurable.
PERFORCE_USER?= p4admin
PERFORCE_UID?= 94
PERFORCE_GROUP?= p4admin
PERFORCE_GID?= 94
PERFORCE_HOME?= ${LOCALBASE}/perforce
PERFORCE_ROOT?= ${PERFORCE_HOME}/root
PERFORCE_LOGS?= ${PERFORCE_HOME}/logs
PERFORCE_PORT?= 1666
.if ${ARCH} == i386
VERSION= 01.1
PLATFORM= freebsd
BIN_FILES= p4 p4web
SBIN_FILES= p4d p4ftpd
.elif ${ARCH} == alpha
VERSION= 99.1
PLATFORM= freebsdaxp
BIN_FILES= p4
SBIN_FILES= p4d
.else
.error "Unsupported platform, sorry."
.endif
do-build:
${SED} -e "s,@PERFORCE_ROOT@,${PERFORCE_ROOT},g" \
-e "s,@PERFORCE_LOGS@,${PERFORCE_LOGS},g" \
-e "s,@PERFORCE_USER@,${PERFORCE_USER},g" \
-e "s,@PERFORCE_PORT@,${PERFORCE_PORT},g" \
< ${FILESDIR}/perforce.conf.in > ${WRKSRC}/perforce.conf
${SED} -e "s,@PREFIX@,${PREFIX},g" \
< ${FILESDIR}/perforce.sh.in > ${WRKSRC}/perforce.sh
pre-install:
${SETENV} PKG_PREFIX=${PREFIX} \
PERFORCE_USER=${PERFORCE_USER} \
PERFORCE_UID=${PERFORCE_UID} \
PERFORCE_GROUP=${PERFORCE_GROUP} \
PERFORCE_GID=${PERFORCE_GID} \
PERFORCE_HOME=${PERFORCE_HOME} \
PERFORCE_ROOT=${PERFORCE_ROOT} \
PERFORCE_LOGS=${PERFORCE_LOGS} \
${SH} ${PKGDIR}/pkg-install ${PORTNAME} PRE-INSTALL
do-install:
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4 ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4web ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4d ${PREFIX}/sbin/
if [ ! -f ${PREFIX}/etc/perforce ]; then \
${INSTALL_DATA} ${FILESDIR}/perforce ${PREFIX}/etc/; \
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
${INSTALL_DATA} ${WRKSRC}/perforce.conf ${PREFIX}/etc/perforce.conf.default; \
if [ ! -f ${PREFIX}/etc/perforce.conf ]; then \
${CP} -p ${PREFIX}/etc/perforce.conf.default ${PREFIX}/etc/perforce.conf; \
fi
${INSTALL_SCRIPT} ${WRKSRC}/perforce.sh ${PREFIX}/etc/rc.d/
.for PERFMAN in p4 p4d
${INSTALL_MAN} ${DISTDIR}/${DIST_SUBDIR}/${PERFMAN}.1 ${PREFIX}/man/man1
.for f in ${MAN1}
${INSTALL_MAN} ${_DISTDIR}/${f} ${PREFIX}/man/man1/
.endfor
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
.include <bsd.port.mk>
post-install:
.for f in ${BIN_FILES}
${ECHO} bin/${f} >> ${TMPPLIST}
.endfor
.for f in ${SBIN_FILES}
${ECHO} sbin/${f} >> ${TMPPLIST}
.endfor
${ECHO} "@unexec /bin/rmdir ${PERFORCE_ROOT} ${PERFORCE_LOGS} ${PERFORCE_HOME} 2>/dev/null || true" >> ${TMPPLIST}
.include <bsd.port.post.mk>

View File

@ -1,5 +1,10 @@
MD5 (perforce/p4) = cd395c485cd7e0a2f80d6b972374dca6
MD5 (perforce/p4d) = 8556db22a77aa1b67542ab4712292731
MD5 (perforce/p4web) = 1a64aaa96d9088f4375cdc4a1ec2a2bb
MD5 (perforce/p4.1) = 4019bba1166429d5a7111319afa09e48
MD5 (perforce/p4d.1) = 29b1bd9838acb517f00becf1b8273592
MD5 (perforce/01.1/i386/p4) = 128d067c5feec61d7e6df74d871e3ed0
MD5 (perforce/01.1/i386/p4d) = bfbb3ed930fc66f7ce7b1da4cbfe6b61
MD5 (perforce/01.1/i386/p4ftpd) = 2d02f69be2f636c52dbdae9e1dbfe9b8
MD5 (perforce/01.1/i386/p4web) = ee5843ee0539700e8eb0e65eff5f4d74
MD5 (perforce/01.1/i386/p4.1) = 7eed553dc7b484ec3fd7a81173e531b7
MD5 (perforce/01.1/i386/p4d.1) = 50b3a5705319fa8389a8f83123f80e8f
MD5 (perforce/99.1/alpha/p4) = 7c1300a82ab03b7ede46cf8a02c48fd9
MD5 (perforce/99.1/alpha/p4d) = 8f34c41c18185011ed848aaf450cffa5
MD5 (perforce/99.1/alpha/p4.1) = 4a9d035eb5ef96342c2f701a02da40f9
MD5 (perforce/99.1/alpha/p4d.1) = a08eb04e9668ba4d0abf47f3b12c56f7

View File

@ -1,18 +0,0 @@
#
# Perforce FreeBSD configuration file
#
#
# Perforce ROOT
#
PERFORCE_ROOT="/usr/p4root"
#
# Perforce options (see man p4d)
#
PERFORCE_OPTIONS="-d -v server=1 -L /var/log/perforce"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes

View File

@ -0,0 +1,40 @@
#
# Perforce FreeBSD configuration file
#
#
# $FreeBSD$
#
# Perforce ROOT
#
PERFORCE_ROOT="@PERFORCE_ROOT@"
#
# Perforce user (it is recommended to run p4d as a non-root user)
#
PERFORCE_USER="@PERFORCE_USER@"
#
# p4d port (default: 1666)
#
PERFORCE_PORT="@PERFORCE_PORT@"
#
# p4d options (see man p4d)
#
PERFORCE_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4d.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes
#
# p4ftpd options (see p4ftpd -h)
#
PERFORCE_FTPD_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4ftpd.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_FTPD_START=yes

View File

@ -1,14 +1,38 @@
#!/bin/sh
#
# $FreeBSD$
p4d=@PREFIX@/sbin/p4d
p4ftpd=@PREFIX@/sbin/p4ftpd
case $1 in
start)
[ -f @PREFIX@/etc/perforce ] && . @PREFIX@/etc/perforce
if [ x$PERFORCE_START = xyes ]; then
echo -n ' perforce'
p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS
start)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4d -a x$PERFORCE_START = xyes ]; then
echo -n ' p4d'
su -fm $PERFORCE_USER -c "$p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS"
fi
if [ -x $p4ftpd -a x$PERFORCE_FTPD_START = xyes ]; then
echo -n ' p4ftpd'
$p4ftpd $PERFORCE_FTPD_OPTIONS
fi
;;
stop)
killall p4d && echo -n ' perforce'
stop)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4ftpd ]; then
killall -u 0 p4ftpd >/dev/null 2>&1 && echo -n ' p4ftpd'
fi
if [ -x $p4d ]; then
killall -u $PERFORCE_USER p4d >/dev/null 2>&1 && echo -n ' p4d'
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
exit 64
;;
*) ;;
esac

View File

@ -1,7 +1,4 @@
Perforce is a commercial revision control system that can be used gratis
for developing free software (see WWW page for details).
Perforce is a commercial revision control system that can be used
gratis for developing free software. (see the WWW page for details).
WWW: http://www.perforce.com/
-- Samuel Tardieu
sam@inf.enst.fr

52
devel/p4p/pkg-install Normal file
View File

@ -0,0 +1,52 @@
#! /bin/sh
#
# $FreeBSD$
PATH=/bin:/usr/sbin
PERFORCE_USER=${PERFORCE_USER:-p4admin}
PERFORCE_UID=${PERFORCE_UID:-94}
PERFORCE_GROUP=${PERFORCE_GROUP:-p4admin}
PERFORCE_GID=${PERFORCE_GID:-94}
PERFORCE_HOME=${PERFORCE_HOME:-$PKG_PREFIX/perforce}
PERFORCE_LOGDIR=${PERFORCE_LOGDIR:-$PERFORCE_HOME/log}
PERFORCE_ROOT=${PERFORCE_ROOT:-$PERFORCE_HOME/root}
case $2 in
PRE-INSTALL)
USER=${PERFORCE_USER}
GROUP=${PERFORCE_GROUP}
UID=${PERFORCE_UID}
GID=${PERFORCE_GID}
if pw group show "${GROUP}" 2>/dev/null; then
echo "You already have a group \"${GROUP}\", so I will use it."
else
if pw groupadd ${GROUP} -g ${GID}; then
echo "Added group \"${GROUP}\"."
else
echo "Adding group \"${GROUP}\" failed..."
exit 1
fi
fi
if pw user show "${USER}" 2>/dev/null; then
echo "You already have a user \"${USER}\", so I will use it."
else
if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
-d ${PERFORCE_HOME} -c "Perforce admin" -s /sbin/nologin
then
echo "Added user \"${USER}\"."
else
echo "Adding user \"${USER}\" failed..."
exit 1
fi
fi
if [ ! -d $PERFORCE_HOME ] ; then
echo hey
mkdir -p $PERFORCE_HOME $PERFORCE_LOGS $PERFORCE_ROOT
chown -R $USER:$GROUP $PERFORCE_HOME
fi
;;
esac

View File

@ -1,5 +1,4 @@
bin/p4
bin/p4web
sbin/p4d
etc/perforce
@unexec if cmp -s %D/etc/perforce.conf %D/etc/perforce.conf.default; then rm -f %D/etc/perforce.conf; fi
etc/perforce.conf.default
@exec [ ! -f %B/perforce.conf ] && cp -p %B/%f %B/perforce.conf || true
etc/rc.d/perforce.sh

View File

@ -6,39 +6,99 @@
#
PORTNAME= perforce
PORTVERSION= 00.2
PORTVERSION= ${VERSION}
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.freebsd/ \
http://www.dsmit.com/p4/ \
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.${PLATFORM}/ \
ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/doc/man/
EXTRACT_SUFX=
DISTFILES= p4 p4d p4web p4.1 p4d.1
DIST_SUBDIR= perforce
DISTFILES= ${BIN_FILES} ${SBIN_FILES} ${MAN1}
DIST_SUBDIR= perforce/${VERSION}/${ARCH}
EXTRACT_ONLY= # none
MAINTAINER= sam@inf.enst.fr
MAINTAINER= knu@FreeBSD.org
NO_PACKAGE= Restricted distribution
NO_CDROM= Restricted distribution
MAN1= p4.1 p4d.1
do-extract:
@${MKDIR} ${WRKSRC}
NO_WRKSUBDIR= yes
.include <bsd.port.pre.mk>
# These variables are all configurable.
PERFORCE_USER?= p4admin
PERFORCE_UID?= 94
PERFORCE_GROUP?= p4admin
PERFORCE_GID?= 94
PERFORCE_HOME?= ${LOCALBASE}/perforce
PERFORCE_ROOT?= ${PERFORCE_HOME}/root
PERFORCE_LOGS?= ${PERFORCE_HOME}/logs
PERFORCE_PORT?= 1666
.if ${ARCH} == i386
VERSION= 01.1
PLATFORM= freebsd
BIN_FILES= p4 p4web
SBIN_FILES= p4d p4ftpd
.elif ${ARCH} == alpha
VERSION= 99.1
PLATFORM= freebsdaxp
BIN_FILES= p4
SBIN_FILES= p4d
.else
.error "Unsupported platform, sorry."
.endif
do-build:
${SED} -e "s,@PERFORCE_ROOT@,${PERFORCE_ROOT},g" \
-e "s,@PERFORCE_LOGS@,${PERFORCE_LOGS},g" \
-e "s,@PERFORCE_USER@,${PERFORCE_USER},g" \
-e "s,@PERFORCE_PORT@,${PERFORCE_PORT},g" \
< ${FILESDIR}/perforce.conf.in > ${WRKSRC}/perforce.conf
${SED} -e "s,@PREFIX@,${PREFIX},g" \
< ${FILESDIR}/perforce.sh.in > ${WRKSRC}/perforce.sh
pre-install:
${SETENV} PKG_PREFIX=${PREFIX} \
PERFORCE_USER=${PERFORCE_USER} \
PERFORCE_UID=${PERFORCE_UID} \
PERFORCE_GROUP=${PERFORCE_GROUP} \
PERFORCE_GID=${PERFORCE_GID} \
PERFORCE_HOME=${PERFORCE_HOME} \
PERFORCE_ROOT=${PERFORCE_ROOT} \
PERFORCE_LOGS=${PERFORCE_LOGS} \
${SH} ${PKGDIR}/pkg-install ${PORTNAME} PRE-INSTALL
do-install:
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4 ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4web ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4d ${PREFIX}/sbin/
if [ ! -f ${PREFIX}/etc/perforce ]; then \
${INSTALL_DATA} ${FILESDIR}/perforce ${PREFIX}/etc/; \
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
${INSTALL_DATA} ${WRKSRC}/perforce.conf ${PREFIX}/etc/perforce.conf.default; \
if [ ! -f ${PREFIX}/etc/perforce.conf ]; then \
${CP} -p ${PREFIX}/etc/perforce.conf.default ${PREFIX}/etc/perforce.conf; \
fi
${INSTALL_SCRIPT} ${WRKSRC}/perforce.sh ${PREFIX}/etc/rc.d/
.for PERFMAN in p4 p4d
${INSTALL_MAN} ${DISTDIR}/${DIST_SUBDIR}/${PERFMAN}.1 ${PREFIX}/man/man1
.for f in ${MAN1}
${INSTALL_MAN} ${_DISTDIR}/${f} ${PREFIX}/man/man1/
.endfor
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
.include <bsd.port.mk>
post-install:
.for f in ${BIN_FILES}
${ECHO} bin/${f} >> ${TMPPLIST}
.endfor
.for f in ${SBIN_FILES}
${ECHO} sbin/${f} >> ${TMPPLIST}
.endfor
${ECHO} "@unexec /bin/rmdir ${PERFORCE_ROOT} ${PERFORCE_LOGS} ${PERFORCE_HOME} 2>/dev/null || true" >> ${TMPPLIST}
.include <bsd.port.post.mk>

View File

@ -1,5 +1,10 @@
MD5 (perforce/p4) = cd395c485cd7e0a2f80d6b972374dca6
MD5 (perforce/p4d) = 8556db22a77aa1b67542ab4712292731
MD5 (perforce/p4web) = 1a64aaa96d9088f4375cdc4a1ec2a2bb
MD5 (perforce/p4.1) = 4019bba1166429d5a7111319afa09e48
MD5 (perforce/p4d.1) = 29b1bd9838acb517f00becf1b8273592
MD5 (perforce/01.1/i386/p4) = 128d067c5feec61d7e6df74d871e3ed0
MD5 (perforce/01.1/i386/p4d) = bfbb3ed930fc66f7ce7b1da4cbfe6b61
MD5 (perforce/01.1/i386/p4ftpd) = 2d02f69be2f636c52dbdae9e1dbfe9b8
MD5 (perforce/01.1/i386/p4web) = ee5843ee0539700e8eb0e65eff5f4d74
MD5 (perforce/01.1/i386/p4.1) = 7eed553dc7b484ec3fd7a81173e531b7
MD5 (perforce/01.1/i386/p4d.1) = 50b3a5705319fa8389a8f83123f80e8f
MD5 (perforce/99.1/alpha/p4) = 7c1300a82ab03b7ede46cf8a02c48fd9
MD5 (perforce/99.1/alpha/p4d) = 8f34c41c18185011ed848aaf450cffa5
MD5 (perforce/99.1/alpha/p4.1) = 4a9d035eb5ef96342c2f701a02da40f9
MD5 (perforce/99.1/alpha/p4d.1) = a08eb04e9668ba4d0abf47f3b12c56f7

View File

@ -1,18 +0,0 @@
#
# Perforce FreeBSD configuration file
#
#
# Perforce ROOT
#
PERFORCE_ROOT="/usr/p4root"
#
# Perforce options (see man p4d)
#
PERFORCE_OPTIONS="-d -v server=1 -L /var/log/perforce"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes

View File

@ -0,0 +1,40 @@
#
# Perforce FreeBSD configuration file
#
#
# $FreeBSD$
#
# Perforce ROOT
#
PERFORCE_ROOT="@PERFORCE_ROOT@"
#
# Perforce user (it is recommended to run p4d as a non-root user)
#
PERFORCE_USER="@PERFORCE_USER@"
#
# p4d port (default: 1666)
#
PERFORCE_PORT="@PERFORCE_PORT@"
#
# p4d options (see man p4d)
#
PERFORCE_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4d.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes
#
# p4ftpd options (see p4ftpd -h)
#
PERFORCE_FTPD_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4ftpd.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_FTPD_START=yes

View File

@ -1,14 +1,38 @@
#!/bin/sh
#
# $FreeBSD$
p4d=@PREFIX@/sbin/p4d
p4ftpd=@PREFIX@/sbin/p4ftpd
case $1 in
start)
[ -f @PREFIX@/etc/perforce ] && . @PREFIX@/etc/perforce
if [ x$PERFORCE_START = xyes ]; then
echo -n ' perforce'
p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS
start)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4d -a x$PERFORCE_START = xyes ]; then
echo -n ' p4d'
su -fm $PERFORCE_USER -c "$p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS"
fi
if [ -x $p4ftpd -a x$PERFORCE_FTPD_START = xyes ]; then
echo -n ' p4ftpd'
$p4ftpd $PERFORCE_FTPD_OPTIONS
fi
;;
stop)
killall p4d && echo -n ' perforce'
stop)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4ftpd ]; then
killall -u 0 p4ftpd >/dev/null 2>&1 && echo -n ' p4ftpd'
fi
if [ -x $p4d ]; then
killall -u $PERFORCE_USER p4d >/dev/null 2>&1 && echo -n ' p4d'
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
exit 64
;;
*) ;;
esac

View File

@ -1,7 +1,4 @@
Perforce is a commercial revision control system that can be used gratis
for developing free software (see WWW page for details).
Perforce is a commercial revision control system that can be used
gratis for developing free software. (see the WWW page for details).
WWW: http://www.perforce.com/
-- Samuel Tardieu
sam@inf.enst.fr

52
devel/p4web/pkg-install Normal file
View File

@ -0,0 +1,52 @@
#! /bin/sh
#
# $FreeBSD$
PATH=/bin:/usr/sbin
PERFORCE_USER=${PERFORCE_USER:-p4admin}
PERFORCE_UID=${PERFORCE_UID:-94}
PERFORCE_GROUP=${PERFORCE_GROUP:-p4admin}
PERFORCE_GID=${PERFORCE_GID:-94}
PERFORCE_HOME=${PERFORCE_HOME:-$PKG_PREFIX/perforce}
PERFORCE_LOGDIR=${PERFORCE_LOGDIR:-$PERFORCE_HOME/log}
PERFORCE_ROOT=${PERFORCE_ROOT:-$PERFORCE_HOME/root}
case $2 in
PRE-INSTALL)
USER=${PERFORCE_USER}
GROUP=${PERFORCE_GROUP}
UID=${PERFORCE_UID}
GID=${PERFORCE_GID}
if pw group show "${GROUP}" 2>/dev/null; then
echo "You already have a group \"${GROUP}\", so I will use it."
else
if pw groupadd ${GROUP} -g ${GID}; then
echo "Added group \"${GROUP}\"."
else
echo "Adding group \"${GROUP}\" failed..."
exit 1
fi
fi
if pw user show "${USER}" 2>/dev/null; then
echo "You already have a user \"${USER}\", so I will use it."
else
if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
-d ${PERFORCE_HOME} -c "Perforce admin" -s /sbin/nologin
then
echo "Added user \"${USER}\"."
else
echo "Adding user \"${USER}\" failed..."
exit 1
fi
fi
if [ ! -d $PERFORCE_HOME ] ; then
echo hey
mkdir -p $PERFORCE_HOME $PERFORCE_LOGS $PERFORCE_ROOT
chown -R $USER:$GROUP $PERFORCE_HOME
fi
;;
esac

View File

@ -1,5 +1,4 @@
bin/p4
bin/p4web
sbin/p4d
etc/perforce
@unexec if cmp -s %D/etc/perforce.conf %D/etc/perforce.conf.default; then rm -f %D/etc/perforce.conf; fi
etc/perforce.conf.default
@exec [ ! -f %B/perforce.conf ] && cp -p %B/%f %B/perforce.conf || true
etc/rc.d/perforce.sh

View File

@ -6,39 +6,99 @@
#
PORTNAME= perforce
PORTVERSION= 00.2
PORTVERSION= ${VERSION}
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.freebsd/ \
http://www.dsmit.com/p4/ \
MASTER_SITES= ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/bin.${PLATFORM}/ \
ftp://ftp.perforce.com/pub/perforce/r${PORTVERSION}/doc/man/
EXTRACT_SUFX=
DISTFILES= p4 p4d p4web p4.1 p4d.1
DIST_SUBDIR= perforce
DISTFILES= ${BIN_FILES} ${SBIN_FILES} ${MAN1}
DIST_SUBDIR= perforce/${VERSION}/${ARCH}
EXTRACT_ONLY= # none
MAINTAINER= sam@inf.enst.fr
MAINTAINER= knu@FreeBSD.org
NO_PACKAGE= Restricted distribution
NO_CDROM= Restricted distribution
MAN1= p4.1 p4d.1
do-extract:
@${MKDIR} ${WRKSRC}
NO_WRKSUBDIR= yes
.include <bsd.port.pre.mk>
# These variables are all configurable.
PERFORCE_USER?= p4admin
PERFORCE_UID?= 94
PERFORCE_GROUP?= p4admin
PERFORCE_GID?= 94
PERFORCE_HOME?= ${LOCALBASE}/perforce
PERFORCE_ROOT?= ${PERFORCE_HOME}/root
PERFORCE_LOGS?= ${PERFORCE_HOME}/logs
PERFORCE_PORT?= 1666
.if ${ARCH} == i386
VERSION= 01.1
PLATFORM= freebsd
BIN_FILES= p4 p4web
SBIN_FILES= p4d p4ftpd
.elif ${ARCH} == alpha
VERSION= 99.1
PLATFORM= freebsdaxp
BIN_FILES= p4
SBIN_FILES= p4d
.else
.error "Unsupported platform, sorry."
.endif
do-build:
${SED} -e "s,@PERFORCE_ROOT@,${PERFORCE_ROOT},g" \
-e "s,@PERFORCE_LOGS@,${PERFORCE_LOGS},g" \
-e "s,@PERFORCE_USER@,${PERFORCE_USER},g" \
-e "s,@PERFORCE_PORT@,${PERFORCE_PORT},g" \
< ${FILESDIR}/perforce.conf.in > ${WRKSRC}/perforce.conf
${SED} -e "s,@PREFIX@,${PREFIX},g" \
< ${FILESDIR}/perforce.sh.in > ${WRKSRC}/perforce.sh
pre-install:
${SETENV} PKG_PREFIX=${PREFIX} \
PERFORCE_USER=${PERFORCE_USER} \
PERFORCE_UID=${PERFORCE_UID} \
PERFORCE_GROUP=${PERFORCE_GROUP} \
PERFORCE_GID=${PERFORCE_GID} \
PERFORCE_HOME=${PERFORCE_HOME} \
PERFORCE_ROOT=${PERFORCE_ROOT} \
PERFORCE_LOGS=${PERFORCE_LOGS} \
${SH} ${PKGDIR}/pkg-install ${PORTNAME} PRE-INSTALL
do-install:
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4 ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4web ${PREFIX}/bin/
${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4d ${PREFIX}/sbin/
if [ ! -f ${PREFIX}/etc/perforce ]; then \
${INSTALL_DATA} ${FILESDIR}/perforce ${PREFIX}/etc/; \
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
${INSTALL_DATA} ${WRKSRC}/perforce.conf ${PREFIX}/etc/perforce.conf.default; \
if [ ! -f ${PREFIX}/etc/perforce.conf ]; then \
${CP} -p ${PREFIX}/etc/perforce.conf.default ${PREFIX}/etc/perforce.conf; \
fi
${INSTALL_SCRIPT} ${WRKSRC}/perforce.sh ${PREFIX}/etc/rc.d/
.for PERFMAN in p4 p4d
${INSTALL_MAN} ${DISTDIR}/${DIST_SUBDIR}/${PERFMAN}.1 ${PREFIX}/man/man1
.for f in ${MAN1}
${INSTALL_MAN} ${_DISTDIR}/${f} ${PREFIX}/man/man1/
.endfor
.for f in ${BIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/bin/
.endfor
.for f in ${SBIN_FILES}
${INSTALL_PROGRAM} ${_DISTDIR}/${f} ${PREFIX}/sbin/
.endfor
.include <bsd.port.mk>
post-install:
.for f in ${BIN_FILES}
${ECHO} bin/${f} >> ${TMPPLIST}
.endfor
.for f in ${SBIN_FILES}
${ECHO} sbin/${f} >> ${TMPPLIST}
.endfor
${ECHO} "@unexec /bin/rmdir ${PERFORCE_ROOT} ${PERFORCE_LOGS} ${PERFORCE_HOME} 2>/dev/null || true" >> ${TMPPLIST}
.include <bsd.port.post.mk>

View File

@ -1,5 +1,10 @@
MD5 (perforce/p4) = cd395c485cd7e0a2f80d6b972374dca6
MD5 (perforce/p4d) = 8556db22a77aa1b67542ab4712292731
MD5 (perforce/p4web) = 1a64aaa96d9088f4375cdc4a1ec2a2bb
MD5 (perforce/p4.1) = 4019bba1166429d5a7111319afa09e48
MD5 (perforce/p4d.1) = 29b1bd9838acb517f00becf1b8273592
MD5 (perforce/01.1/i386/p4) = 128d067c5feec61d7e6df74d871e3ed0
MD5 (perforce/01.1/i386/p4d) = bfbb3ed930fc66f7ce7b1da4cbfe6b61
MD5 (perforce/01.1/i386/p4ftpd) = 2d02f69be2f636c52dbdae9e1dbfe9b8
MD5 (perforce/01.1/i386/p4web) = ee5843ee0539700e8eb0e65eff5f4d74
MD5 (perforce/01.1/i386/p4.1) = 7eed553dc7b484ec3fd7a81173e531b7
MD5 (perforce/01.1/i386/p4d.1) = 50b3a5705319fa8389a8f83123f80e8f
MD5 (perforce/99.1/alpha/p4) = 7c1300a82ab03b7ede46cf8a02c48fd9
MD5 (perforce/99.1/alpha/p4d) = 8f34c41c18185011ed848aaf450cffa5
MD5 (perforce/99.1/alpha/p4.1) = 4a9d035eb5ef96342c2f701a02da40f9
MD5 (perforce/99.1/alpha/p4d.1) = a08eb04e9668ba4d0abf47f3b12c56f7

View File

@ -1,18 +0,0 @@
#
# Perforce FreeBSD configuration file
#
#
# Perforce ROOT
#
PERFORCE_ROOT="/usr/p4root"
#
# Perforce options (see man p4d)
#
PERFORCE_OPTIONS="-d -v server=1 -L /var/log/perforce"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes

View File

@ -0,0 +1,40 @@
#
# Perforce FreeBSD configuration file
#
#
# $FreeBSD$
#
# Perforce ROOT
#
PERFORCE_ROOT="@PERFORCE_ROOT@"
#
# Perforce user (it is recommended to run p4d as a non-root user)
#
PERFORCE_USER="@PERFORCE_USER@"
#
# p4d port (default: 1666)
#
PERFORCE_PORT="@PERFORCE_PORT@"
#
# p4d options (see man p4d)
#
PERFORCE_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4d.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_START=yes
#
# p4ftpd options (see p4ftpd -h)
#
PERFORCE_FTPD_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L @PERFORCE_LOGS@/p4ftpd.log"
#
# Uncomment this line to have the server started automatically
#
#PERFORCE_FTPD_START=yes

View File

@ -1,14 +1,38 @@
#!/bin/sh
#
# $FreeBSD$
p4d=@PREFIX@/sbin/p4d
p4ftpd=@PREFIX@/sbin/p4ftpd
case $1 in
start)
[ -f @PREFIX@/etc/perforce ] && . @PREFIX@/etc/perforce
if [ x$PERFORCE_START = xyes ]; then
echo -n ' perforce'
p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS
start)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4d -a x$PERFORCE_START = xyes ]; then
echo -n ' p4d'
su -fm $PERFORCE_USER -c "$p4d -r $PERFORCE_ROOT $PERFORCE_OPTIONS"
fi
if [ -x $p4ftpd -a x$PERFORCE_FTPD_START = xyes ]; then
echo -n ' p4ftpd'
$p4ftpd $PERFORCE_FTPD_OPTIONS
fi
;;
stop)
killall p4d && echo -n ' perforce'
stop)
[ -f @PREFIX@/etc/perforce.conf ] && . @PREFIX@/etc/perforce.conf
if [ -x $p4ftpd ]; then
killall -u 0 p4ftpd >/dev/null 2>&1 && echo -n ' p4ftpd'
fi
if [ -x $p4d ]; then
killall -u $PERFORCE_USER p4d >/dev/null 2>&1 && echo -n ' p4d'
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
exit 64
;;
*) ;;
esac

View File

@ -1,7 +1,4 @@
Perforce is a commercial revision control system that can be used gratis
for developing free software (see WWW page for details).
Perforce is a commercial revision control system that can be used
gratis for developing free software. (see the WWW page for details).
WWW: http://www.perforce.com/
-- Samuel Tardieu
sam@inf.enst.fr

View File

@ -0,0 +1,52 @@
#! /bin/sh
#
# $FreeBSD$
PATH=/bin:/usr/sbin
PERFORCE_USER=${PERFORCE_USER:-p4admin}
PERFORCE_UID=${PERFORCE_UID:-94}
PERFORCE_GROUP=${PERFORCE_GROUP:-p4admin}
PERFORCE_GID=${PERFORCE_GID:-94}
PERFORCE_HOME=${PERFORCE_HOME:-$PKG_PREFIX/perforce}
PERFORCE_LOGDIR=${PERFORCE_LOGDIR:-$PERFORCE_HOME/log}
PERFORCE_ROOT=${PERFORCE_ROOT:-$PERFORCE_HOME/root}
case $2 in
PRE-INSTALL)
USER=${PERFORCE_USER}
GROUP=${PERFORCE_GROUP}
UID=${PERFORCE_UID}
GID=${PERFORCE_GID}
if pw group show "${GROUP}" 2>/dev/null; then
echo "You already have a group \"${GROUP}\", so I will use it."
else
if pw groupadd ${GROUP} -g ${GID}; then
echo "Added group \"${GROUP}\"."
else
echo "Adding group \"${GROUP}\" failed..."
exit 1
fi
fi
if pw user show "${USER}" 2>/dev/null; then
echo "You already have a user \"${USER}\", so I will use it."
else
if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
-d ${PERFORCE_HOME} -c "Perforce admin" -s /sbin/nologin
then
echo "Added user \"${USER}\"."
else
echo "Adding user \"${USER}\" failed..."
exit 1
fi
fi
if [ ! -d $PERFORCE_HOME ] ; then
echo hey
mkdir -p $PERFORCE_HOME $PERFORCE_LOGS $PERFORCE_ROOT
chown -R $USER:$GROUP $PERFORCE_HOME
fi
;;
esac

View File

@ -1,5 +1,4 @@
bin/p4
bin/p4web
sbin/p4d
etc/perforce
@unexec if cmp -s %D/etc/perforce.conf %D/etc/perforce.conf.default; then rm -f %D/etc/perforce.conf; fi
etc/perforce.conf.default
@exec [ ! -f %B/perforce.conf ] && cp -p %B/%f %B/perforce.conf || true
etc/rc.d/perforce.sh