View | Details | Raw Unified | Return to bug 149510 | Differences between
and this patch

Collapse All | Expand All

(-)sys/conf/newvers.sh (-38 / +61 lines)
Lines 38-44 Link Here
38
fi
38
fi
39
RELEASE="${REVISION}-${BRANCH}"
39
RELEASE="${REVISION}-${BRANCH}"
40
VERSION="${TYPE} ${RELEASE}"
40
VERSION="${TYPE} ${RELEASE}"
41
SYSDIR=$(dirname $0)/..
41
42
# These are here so we don't have to work in reverse later on.
43
SRCDIR=$(dirname $0)/../..
44
SYSDIR=${SRCDIR}/sys
42
45
43
if [ "X${PARAMFILE}" != "X" ]; then
46
if [ "X${PARAMFILE}" != "X" ]; then
44
	RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \
47
	RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \
Lines 78-134 Link Here
78
"
81
"
79
82
80
LC_ALL=C; export LC_ALL
83
LC_ALL=C; export LC_ALL
81
if [ ! -r version ]
84
if [ ! -r version ]; then
82
then
85
	echo 0 >version
83
	echo 0 > version
84
fi
86
fi
85
87
86
touch version
87
v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date`
88
v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date`
88
i=`${MAKE:-make} -V KERN_IDENT`
89
i=`${MAKE:-make} -V KERN_IDENT`
89
90
90
for dir in /bin /usr/bin /usr/local/bin; do
91
if [ -d "${SRCDIR}/.svn" -o -d "${SYSDIR}/.svn" ]; then
91
	if [ -d "${SYSDIR}/.svn" -a -x "${dir}/svnversion" ] ; then
92
	for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do
92
		svnversion=${dir}/svnversion
93
		if [ -x "${dir}/svn" ]; then
93
		break
94
			svnversion=${dir}/svnversion
95
			break
96
		fi
97
	done
98
	if [ -n "$svnversion" ] ; then
99
		svnrev=" r`cd ${SYSDIR} && $svnversion`"
94
	fi
100
	fi
95
	if [ -d "${SYSDIR}/../.git" -a -x "${dir}/git" ] ; then
101
fi
96
		git_cmd="${dir}/git --git-dir=${SYSDIR}/../.git"
102
97
		break
103
if [ -d "${SRCDIR}/.hg" -o -d "${SYSDIR}/.hg" ]; then
104
	for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do
105
		if [ -x "${dir}/hg" ]; then
106
			hg=${dir}/hg
107
			break
108
		fi
109
	done
110
	if [ -n "$hg" ]; then
111
		hgrev=" `cd ${SYSDIR} && $hg tip --template '{rev}:{node|short}'`"
98
	fi
112
	fi
99
done
113
fi
114
115
if [ -d "${SRCDIR}/.git" -o -d "${SYSDIR}/.git" ]; then
116
	for dir in /usr/bin ${LOCALBASE:-/usr/local}; do
117
		if [ -x "${dir}/git" ]; then
118
			if [ -d "${SRCDIR}/.git" ]; then
119
				git="${dir}/git --git-dir=${SRCDIR}/.git"
120
				git="${git} --work-tree=${SRCDIR}"
121
			else
122
				git="${dir}/git --git-dir=${SYSDIR}/.git"
123
				git="${git} --work-tree=${SYSDIR}"
124
			fi
125
			break
126
		fi
127
	done
100
128
101
if [ -n "$svnversion" ] ; then
129
	if [ -n "$git" ] ; then
102
    echo "$svnversion"
130
		gitrev="`$git rev-parse --verify --short HEAD 2>/dev/null`"
103
	svn=" r`cd ${SYSDIR} && $svnversion`"
131
		gitsvnrev="`$git svn find-rev $gitrev 2>/dev/null`"
104
fi
132
		if [ -n "${gitsvnrev}" ] ; then
105
133
			svnrev=" r${gitsvnrev}"
106
if [ -n "$git_cmd" ] ; then
134
			gitrev=" ${gitrev}"
107
	git=`$git_cmd rev-parse --verify --short HEAD 2>/dev/null`
108
	svn=`$git_cmd svn find-rev $git 2>/dev/null`
109
	if [ -n "$svn" ] ; then
110
		svn=" r${svn}"
111
		git="=${git}"
112
	else
113
		svn=`$git_cmd log | fgrep 'git-svn-id:' | head -1 | \
114
		     sed -n 's/^.*@\([0-9][0-9]*\).*$/\1/p'`
115
		if [ -n $svn ] ; then
116
			svn=" r${svn}"
117
			git="+${git}"
118
		else
135
		else
119
			git=" ${git}"
136
			gitsvnid="`$git log |sed -n '/git-svn-id:/ {
137
			s/.*@\([[:digit:]]\{1,\}\).*/\1/p; q; }'`"
138
			if [ -n "${gitsvnid}" ]; then
139
				svnrev=" r${gitsvnid}"
140
				gitrev="+${gitrev}"
141
			else
142
				gitrev=" ${gitrev}"
143
			fi
144
		fi
145
		if [ -n "`$git diff-index --name-only HEAD`" ]; then
146
			gitrev="${gitrev}-dirty"
120
		fi
147
		fi
121
	fi
122
	if $git_cmd --work-tree=${SYSDIR}/.. diff-index \
123
	    --name-only HEAD | read dummy; then
124
		git="${git}-dirty"
125
	fi
148
	fi
126
fi
149
fi
127
150
128
cat << EOF > vers.c
151
cat << EOF > vers.c
129
$COPYRIGHT
152
$COPYRIGHT
130
#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}: ${t}"
153
#define SCCSSTR "@(#)${VERSION} #${v}${svnrev}${gitrev}${hgrev} ${t}"
131
#define VERSTR "${VERSION} #${v}${svn}${git}: ${t}\\n    ${u}@${h}:${d}\\n"
154
#define VERSTR "${VERSION} #${v}${svnrev}${gitrev}${hgrev} ${t}\\n 	${u}@${h}:${d}\\n"
132
#define RELSTR "${RELEASE}"
155
#define RELSTR "${RELEASE}"
133
156
134
char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR;
157
char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR;
Lines 139-142 Link Here
139
char kern_ident[] = "${i}";
162
char kern_ident[] = "${i}";
140
EOF
163
EOF
141
164
142
echo `expr ${v} + 1` > version
165
echo $((${v}+1)) >version

Return to bug 149510