Date: Sun, 28 Jan 2007 17:43:28 GMT From: Scot Hetzel<swhetzel@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/108483: net/cvsup-mirror: fails to start cvsupd after first update. Message-ID: <200701281743.l0SHhSTu062951@www.freebsd.org> Resent-Message-ID: <200701281750.l0SHoNPT067273@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 108483 >Category: ports >Synopsis: net/cvsup-mirror: fails to start cvsupd after first update. >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Jan 28 17:50:23 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Scot Hetzel >Release: 7.0-CURRENT >Organization: >Environment: FreeBSD hp010 7.0-CURRENT FreeBSD 7.0-CURRENT #2: Sat Jan 27 12:10:38 CST 2007 swhetzel@hp010:/usr/src/7x/sys-patched/amd64/compile/GENERIC.debug amd64 >Description: When the net/cvsup-mirror port is installed on a system with OSVERSION >= 600101, the update.sh script is unable to start PREFIX/etc/rc.d/cvsupd.sh script, as it doesn't exist. Instead the cvsupd.sh script is named cvsupd on systems with OSVERSION >= 600101. >How-To-Repeat: Install the port, add cvsupd_enable="YES" to /etc/rc.conf, then run PREFIX/etc/cvsup/update.sh. >Fix: Apply the attached patch. Patch attached with submission follows: Index: Makefile =================================================================== RCS file: /home/ncvs/ports/net/cvsup-mirror/Makefile,v retrieving revision 1.23 diff -u -r1.23 Makefile --- Makefile 2 Jan 2006 10:05:11 -0000 1.23 +++ Makefile 28 Jan 2007 17:23:24 -0000 @@ -7,7 +7,7 @@ PORTNAME= cvsup-mirror PORTVERSION= 1.3 -PORTREVISION= 5 +PORTREVISION= 6 CATEGORIES= net DISTFILES= @@ -23,10 +23,19 @@ SCRIPTS_ENV= USA_RESIDENT=${USA_RESIDENT} USE_RC_SUBR= cvsupd.sh +SUB_FILES= update.sh base=${PREFIX}/etc/cvsup distrib=${base}/sup.client/distrib +.include <bsd.port.pre.mk> + +.if (${OSVERSION} >= 700007 || ( ${OSVERSION} < 700000 && ${OSVERSION} >= 600101)) +SUB_LIST+= CVSUPD="cvsupd" +.else +SUB_LIST+= CVSUPD="cvsupd.sh" +.endif + do-extract: @test -d ${WRKSRC} || ${MKDIR} ${WRKSRC} @@ -35,7 +44,7 @@ @test -d ${distrib} || ${MKDIR} ${distrib} @${INSTALL_DATA} ${WRKSRC}/config.sh ${base} @${INSTALL_DATA} ${WRKSRC}/cvsupd.access ${base} - @${INSTALL_SCRIPT} ${FILESDIR}/update.sh ${base} + @${INSTALL_SCRIPT} ${WRKSRC}/update.sh ${base} @${INSTALL_DATA} ${FILESDIR}/supfile ${base} @${INSTALL_DATA} ${FILESDIR}/refuse.self ${distrib} @${CP} /dev/null ${base}/.start_server @@ -43,4 +52,4 @@ post-install: @PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL -.include <bsd.port.mk> +.include <bsd.port.post.mk> Index: files/update.sh =================================================================== RCS file: files/update.sh diff -N files/update.sh --- files/update.sh 2 Jan 2006 10:05:11 -0000 1.18 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,59 +0,0 @@ -#! /bin/sh - -if ! PREFIX=$(expr $0 : "\(/.*\)/etc/cvsup/update\.sh\$"); then - echo "$0: Cannot determine the PREFIX" >&2 - exit 1 -fi - -export PREFIX -export CVSUP_ARGS="$*" -export PATH=/bin:/usr/bin:${PREFIX}/bin - -lock=/var/spool/lock/cvsup.lock -log=/var/log/cvsup.log - -umask 22 - -exec >>${log} 2>&1 - -# Do the update - -date "+CVSup update begins at %Y-%m-%d %T" - -# The rest of this is executed while holding the lock file, to ensure that -# multiple instances won't collide with one another. - -lockf -t 0 ${lock} /bin/sh << 'E*O*F' - -base=${PREFIX}/etc/cvsup -rundir=/var/tmp -cd ${rundir} || exit -. ${base}/config.sh || exit - -colldir=sup.client -startup=${PREFIX}/etc/rc.d -eval chome=~${cuser} -cmd="exec env HOME=${chome} cvsup" -options="-1gL 1 -b ${base} -c ${colldir} ${CVSUP_ARGS}" - -umask 2 -ok=yes - -echo "Updating from ${host}" -su -f -m ${cuser} -c \ - "${cmd} ${options} -h ${host} ${base}/supfile" || ok=no - -if [ ${ok} = yes ]; then - if [ -f ${base}/.start_server ]; then - if [ -x ${startup}/cvsupd.sh ]; then - echo -n "Starting the server:" - /bin/sh ${startup}/cvsupd.sh start - echo "." - fi - rm -f ${base}/.start_server - fi -fi - -E*O*F - -date "+CVSup update ends at %Y-%m-%d %T" Index: files/update.sh.in =================================================================== RCS file: files/update.sh.in diff -N files/update.sh.in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/update.sh.in 28 Jan 2007 17:10:18 -0000 @@ -0,0 +1,59 @@ +#! /bin/sh + +if ! PREFIX=$(expr $0 : "\(/.*\)/etc/cvsup/update\.sh\$"); then + echo "$0: Cannot determine the PREFIX" >&2 + exit 1 +fi + +export PREFIX +export CVSUP_ARGS="$*" +export PATH=/bin:/usr/bin:${PREFIX}/bin + +lock=/var/spool/lock/cvsup.lock +log=/var/log/cvsup.log + +umask 22 + +exec >>${log} 2>&1 + +# Do the update + +date "+CVSup update begins at %Y-%m-%d %T" + +# The rest of this is executed while holding the lock file, to ensure that +# multiple instances won't collide with one another. + +lockf -t 0 ${lock} /bin/sh << 'E*O*F' + +base=${PREFIX}/etc/cvsup +rundir=/var/tmp +cd ${rundir} || exit +. ${base}/config.sh || exit + +colldir=sup.client +startup=${PREFIX}/etc/rc.d +eval chome=~${cuser} +cmd="exec env HOME=${chome} cvsup" +options="-1gL 1 -b ${base} -c ${colldir} ${CVSUP_ARGS}" + +umask 2 +ok=yes + +echo "Updating from ${host}" +su -f -m ${cuser} -c \ + "${cmd} ${options} -h ${host} ${base}/supfile" || ok=no + +if [ ${ok} = yes ]; then + if [ -f ${base}/.start_server ]; then + if [ -x ${startup}/%%CVSUPD%% ]; then + echo -n "Starting the server:" + /bin/sh ${startup}/%%CVSUPD%% start + echo "." + fi + rm -f ${base}/.start_server + fi +fi + +E*O*F + +date "+CVSup update ends at %Y-%m-%d %T" >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200701281743.l0SHhSTu062951>