From owner-freebsd-bugs@FreeBSD.ORG Sun Sep 26 08:13:12 2010 Return-Path: Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D94A2106564A for ; Sun, 26 Sep 2010 08:13:11 +0000 (UTC) (envelope-from jhellenthal@gmail.com) Received: from mail-iw0-f182.google.com (mail-iw0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id 934B38FC08 for ; Sun, 26 Sep 2010 08:13:11 +0000 (UTC) Received: by iwn34 with SMTP id 34so4755070iwn.13 for ; Sun, 26 Sep 2010 01:13:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :x-enigmail-version:content-type; bh=LpA6aatbMEo7Gp8qZMEYn2pTwwaM1G6pziQ/Y5tYi6g=; b=uAe1wDbj7+yb5eWlADY6gRfWMHBOrjjuMICc7eJKJzGCaLxJ9mJwho0ioAHP/5c9mH UPeZ1NPVn6h2v/SBdsEvhUKd7tVWPF2OVILVEp3RlivOkxP25Q3AdBCBW6BiDwBBOdSz E1jCKY6jh+vJxba8LaSXBY4LcDrfN6pX7fVcY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type; b=hlKFDa+wD6ygN3i2ktr5M8llUe287J/LVLiSyi/zmy46UJCZtBFDZ89JDEwkCNQiUM Ql5w7EhABBluPYBXv6m5r7gIm0l0BpvCPzQXpmlg8BIjE1NcX4roTsRucYahGcJI51de hdlvd3ebySdw1n5VH0QvvfcSzUQv2llbdmUnY= Received: by 10.231.149.140 with SMTP id t12mr6927145ibv.100.1285488790769; Sun, 26 Sep 2010 01:13:10 -0700 (PDT) Received: from centel.dataix.local ([99.19.43.205]) by mx.google.com with ESMTPS id n20sm4640399ibe.5.2010.09.26.01.13.08 (version=SSLv3 cipher=RC4-MD5); Sun, 26 Sep 2010 01:13:09 -0700 (PDT) Sender: "J. Hellenthal" Message-ID: <4C9F0094.704@DataIX.net> Date: Sun, 26 Sep 2010 04:13:08 -0400 From: jhell User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.2.9) Gecko/20100917 Lightning/1.0b1 Thunderbird MIME-Version: 1.0 To: Anonymous References: <201009260800.o8Q80OmE026551@freefall.freebsd.org> In-Reply-To: <201009260800.o8Q80OmE026551@freefall.freebsd.org> X-Enigmail-Version: 1.1.2 Content-Type: multipart/mixed; boundary="------------040009020206000705040109" Cc: freebsd-bugs@freebsd.org Subject: Re: misc/149510: [build] [patch] CFT: sys/conf/newvers.sh: Cleanup and additions. X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Sep 2010 08:13:12 -0000 This is a multi-part message in MIME format. --------------040009020206000705040109 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 09/26/2010 04:00, Anonymous wrote: > The following reply was made to PR misc/149510; it has been noted by GNATS. > > From: Anonymous > To: jhell@DataIX.net > Cc: bug-followup@FreeBSD.org > Subject: Re: misc/149510: [build] [patch] CFT: sys/conf/newvers.sh: Cleanup and additions. > Date: Sun, 26 Sep 2010 11:44:29 +0400 > > Typo in git(1) search path: LOCALBASE vs. LOCALBASE/bin. > > - for dir in /usr/bin ${LOCALBASE:-/usr/local}; do > + for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do > > And thanks for including conf/146828. You welcome and thank you again for noticing this. Funny how that always happens to the stuff you ask to be tested ;) Anyway the edited patches are up at the previously stated URLs and attached here for pleasure. Beware same situation as before.... these get concatenated when they hit GNATS so expect to have to separate these if downloaded from the PR database. Regards, -- jhell,v --------------040009020206000705040109 Content-Type: text/plain; name="newvers.sh-head-r213132.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="newvers.sh-head-r213132.patch" Index: sys/conf/newvers.sh =================================================================== --- sys/conf/newvers.sh (revision 213142) +++ sys/conf/newvers.sh (working copy) @@ -38,7 +38,10 @@ fi RELEASE="${REVISION}-${BRANCH}" VERSION="${TYPE} ${RELEASE}" -SYSDIR=$(dirname $0)/.. + +# These are here so we don't have to work in reverse later on. +SRCDIR=$(dirname $0)/../.. +SYSDIR=${SRCDIR}/sys if [ "X${PARAMFILE}" != "X" ]; then RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \ @@ -78,57 +81,77 @@ " LC_ALL=C; export LC_ALL -if [ ! -r version ] -then - echo 0 > version +if [ ! -r version ]; then + echo 0 >version fi -touch version v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date` i=`${MAKE:-make} -V KERN_IDENT` -for dir in /bin /usr/bin /usr/local/bin; do - if [ -d "${SYSDIR}/.svn" -a -x "${dir}/svnversion" ] ; then - svnversion=${dir}/svnversion - break +if [ -d "${SRCDIR}/.svn" -o -d "${SYSDIR}/.svn" ]; then + for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do + if [ -x "${dir}/svn" ]; then + svnversion=${dir}/svnversion + break + fi + done + if [ -n "$svnversion" ] ; then + svnrev=" r`cd ${SYSDIR} && $svnversion`" fi - if [ -d "${SYSDIR}/../.git" -a -x "${dir}/git" ] ; then - git_cmd="${dir}/git --git-dir=${SYSDIR}/../.git" - break +fi + +if [ -d "${SRCDIR}/.hg" -o -d "${SYSDIR}/.hg" ]; then + for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do + if [ -x "${dir}/hg" ]; then + hg=${dir}/hg + break + fi + done + if [ -n "$hg" ]; then + hgrev=" `cd ${SYSDIR} && $hg tip --template '{rev}:{node|short}'`" fi -done +fi + +if [ -d "${SRCDIR}/.git" -o -d "${SYSDIR}/.git" ]; then + for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do + if [ -x "${dir}/git" ]; then + if [ -d "${SRCDIR}/.git" ]; then + git="${dir}/git --git-dir=${SRCDIR}/.git" + git="${git} --work-tree=${SRCDIR}" + else + git="${dir}/git --git-dir=${SYSDIR}/.git" + git="${git} --work-tree=${SYSDIR}" + fi + break + fi + done -if [ -n "$svnversion" ] ; then - echo "$svnversion" - svn=" r`cd ${SYSDIR} && $svnversion`" -fi - -if [ -n "$git_cmd" ] ; then - git=`$git_cmd rev-parse --verify --short HEAD 2>/dev/null` - svn=`$git_cmd svn find-rev $git 2>/dev/null` - if [ -n "$svn" ] ; then - svn=" r${svn}" - git="=${git}" - else - svn=`$git_cmd log | fgrep 'git-svn-id:' | head -1 | \ - sed -n 's/^.*@\([0-9][0-9]*\).*$/\1/p'` - if [ -n $svn ] ; then - svn=" r${svn}" - git="+${git}" + if [ -n "$git" ] ; then + gitrev="`$git rev-parse --verify --short HEAD 2>/dev/null`" + gitsvnrev="`$git svn find-rev $gitrev 2>/dev/null`" + if [ -n "${gitsvnrev}" ] ; then + svnrev=" r${gitsvnrev}" + gitrev=" ${gitrev}" else - git=" ${git}" + gitsvnid="`$git log |sed -n '/git-svn-id:/ { + s/.*@\([[:digit:]]\{1,\}\).*/\1/p; q; }'`" + if [ -n "${gitsvnid}" ]; then + svnrev=" r${gitsvnid}" + gitrev="+${gitrev}" + else + gitrev=" ${gitrev}" + fi + fi + if [ -n "`$git diff-index --name-only HEAD`" ]; then + gitrev="${gitrev}-dirty" fi - fi - if $git_cmd --work-tree=${SYSDIR}/.. diff-index \ - --name-only HEAD | read dummy; then - git="${git}-dirty" fi fi cat << EOF > vers.c $COPYRIGHT -#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}: ${t}" -#define VERSTR "${VERSION} #${v}${svn}${git}: ${t}\\n ${u}@${h}:${d}\\n" +#define SCCSSTR "@(#)${VERSION} #${v}${svnrev}${gitrev}${hgrev} ${t}" +#define VERSTR "${VERSION} #${v}${svnrev}${gitrev}${hgrev} ${t}\\n ${u}@${h}:${d}\\n" #define RELSTR "${RELEASE}" char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR; @@ -139,4 +162,4 @@ char kern_ident[] = "${i}"; EOF -echo `expr ${v} + 1` > version +echo $((${v}+1)) >version --------------040009020206000705040109 Content-Type: text/plain; name="newvers.sh-stable8-r213132.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="newvers.sh-stable8-r213132.patch" Index: sys/conf/newvers.sh =================================================================== --- sys/conf/newvers.sh (revision 213132) +++ sys/conf/newvers.sh (working copy) @@ -39,15 +39,18 @@ RELEASE="${REVISION}-${BRANCH}" VERSION="${TYPE} ${RELEASE}" +# These are here so we don't have to work in reverse later on. +SRCDIR=$(dirname $0)/../.. +SYSDIR=${SRCDIR}/sys + if [ "X${PARAMFILE}" != "X" ]; then RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \ ${PARAMFILE}) else RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \ - $(dirname $0)/../sys/param.h) + ${SYSDIR}/sys/param.h) fi - b=share/examples/etc/bsd-style-copyright year=`date '+%Y'` # look for copyright template @@ -78,65 +81,77 @@ " LC_ALL=C; export LC_ALL -if [ ! -r version ] -then - echo 0 > version +if [ ! -r version ]; then + echo 0 >version fi -touch version v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date` i=`${MAKE:-make} -V KERN_IDENT` -case "$d" in -*/sys/*) - SRCDIR=${d##*obj} - if [ -n "$MACHINE" ]; then - SRCDIR=${SRCDIR##/$MACHINE} +if [ -d "${SRCDIR}/.svn" -o -d "${SYSDIR}/.svn" ]; then + for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do + if [ -x "${dir}/svn" ]; then + svnversion=${dir}/svnversion + break + fi + done + if [ -n "$svnversion" ] ; then + svnrev=" r`cd ${SYSDIR} && $svnversion`" fi - SRCDIR=${SRCDIR%%/sys/*} +fi - for dir in /bin /usr/bin /usr/local/bin; do - if [ -d "${SRCDIR}/sys/.svn" -a -x "${dir}/svnversion" ] ; then - svnversion=${dir}/svnversion +if [ -d "${SRCDIR}/.hg" -o -d "${SYSDIR}/.hg" ]; then + for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do + if [ -x "${dir}/hg" ]; then + hg=${dir}/hg break fi - if [ -d "${SRCDIR}/.git" -a -x "${dir}/git" ] ; then - git_cmd="${dir}/git --git-dir=${SRCDIR}/.git" + done + if [ -n "$hg" ]; then + hgrev=" `cd ${SYSDIR} && $hg tip --template '{rev}:{node|short}'`" + fi +fi + +if [ -d "${SRCDIR}/.git" -o -d "${SYSDIR}/.git" ]; then + for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do + if [ -x "${dir}/git" ]; then + if [ -d "${SRCDIR}/.git" ]; then + git="${dir}/git --git-dir=${SRCDIR}/.git" + git="${git} --work-tree=${SRCDIR}" + else + git="${dir}/git --git-dir=${SYSDIR}/.git" + git="${git} --work-tree=${SYSDIR}" + fi break fi done - if [ -n "$svnversion" ] ; then - svn=" r`cd ${SRCDIR}/sys && $svnversion`" - fi - if [ -n "$git_cmd" ] ; then - git=`$git_cmd rev-parse --verify --short HEAD 2>/dev/null` - svn=`$git_cmd svn find-rev $git 2>/dev/null` - if [ -n "$svn" ] ; then - svn=" r${svn}" - git="=${git}" + if [ -n "$git" ] ; then + gitrev="`$git rev-parse --verify --short HEAD 2>/dev/null`" + gitsvnrev="`$git svn find-rev $gitrev 2>/dev/null`" + if [ -n "${gitsvnrev}" ] ; then + svnrev=" r${gitsvnrev}" + gitrev=" ${gitrev}" else - svn=`$git_cmd log | fgrep 'git-svn-id:' | head -1 | \ - sed -n 's/^.*@\([0-9][0-9]*\).*$/\1/p'` - if [ -n $svn ] ; then - svn=" r${svn}" - git="+${git}" + gitsvnid="`$git log |sed -n '/git-svn-id:/ { + s/.*@\([[:digit:]]\{1,\}\).*/\1/p; q; }'`" + if [ -n "${gitsvnid}" ]; then + svnrev=" r${gitsvnid}" + gitrev="+${gitrev}" else - git=" ${git}" + gitrev=" ${gitrev}" fi fi - if $git_cmd --work-tree=${SRCDIR} diff-index \ - --name-only HEAD | read dummy; then - git="${git}-dirty" + if [ -n "`$git diff-index --name-only HEAD`" ]; then + gitrev="${gitrev}-dirty" fi fi - ;; -esac +fi cat << EOF > vers.c $COPYRIGHT -#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}: ${t}" -#define VERSTR "${VERSION} #${v}${svn}${git}: ${t}\\n ${u}@${h}:${d}\\n" +#define SCCSSTR "@(#)${VERSION} #${v}${svnrev}${gitrev}${hgrev} ${t}" +#define VERSTR "${VERSION} #${v}${svnrev}${gitrev}${hgrev} ${t}\\n ${u}@${h}:${d}\\n" #define RELSTR "${RELEASE}" char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR; @@ -147,4 +162,4 @@ char kern_ident[] = "${i}"; EOF -echo `expr ${v} + 1` > version +echo $((${v}+1)) >version --------------040009020206000705040109--