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

Collapse All | Expand All

(-)sys/conf/newvers.sh (-40 / +55 lines)
Lines 39-53 Link Here
39
RELEASE="${REVISION}-${BRANCH}"
39
RELEASE="${REVISION}-${BRANCH}"
40
VERSION="${TYPE} ${RELEASE}"
40
VERSION="${TYPE} ${RELEASE}"
41
41
42
# These are here so we don't have to work in reverse later on.
43
SRCDIR=$(dirname $0)/../..
44
SYSDIR=${SRCDIR}/sys
45
42
if [ "X${PARAMFILE}" != "X" ]; then
46
if [ "X${PARAMFILE}" != "X" ]; then
43
	RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \
47
	RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \
44
		${PARAMFILE})
48
		${PARAMFILE})
45
else
49
else
46
	RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \
50
	RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \
47
		$(dirname $0)/../sys/param.h)
51
		${SYSDIR}/sys/param.h)
48
fi
52
fi
49
53
50
51
b=share/examples/etc/bsd-style-copyright
54
b=share/examples/etc/bsd-style-copyright
52
year=`date '+%Y'`
55
year=`date '+%Y'`
53
# look for copyright template
56
# look for copyright template
Lines 78-142 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
case "$d" in
91
if [ -d "${SRCDIR}/.svn" -o -d "${SYSDIR}/.svn" ]; then
91
*/sys/*)
92
	for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do
92
	SRCDIR=${d##*obj}
93
		if [ -x "${dir}/svn" ]; then
93
	if [ -n "$MACHINE" ]; then
94
			svnversion=${dir}/svnversion
94
		SRCDIR=${SRCDIR##/$MACHINE}
95
			break
96
		fi
97
	done
98
	if [ -n "$svnversion" ] ; then
99
		svnrev=" r`cd ${SYSDIR} && $svnversion`"
95
	fi
100
	fi
96
	SRCDIR=${SRCDIR%%/sys/*}
101
fi
97
102
98
	for dir in /bin /usr/bin /usr/local/bin; do
103
if [ -d "${SRCDIR}/.hg" -o -d "${SYSDIR}/.hg" ]; then
99
		if [ -d "${SRCDIR}/sys/.svn" -a -x "${dir}/svnversion" ] ; then
104
	for dir in /usr/bin ${LOCALBASE:-/usr/local}/bin; do
100
			svnversion=${dir}/svnversion
105
		if [ -x "${dir}/hg" ]; then
106
			hg=${dir}/hg
101
			break
107
			break
102
		fi
108
		fi
103
		if [ -d "${SRCDIR}/.git" -a -x "${dir}/git" ] ; then
109
	done
104
			git_cmd="${dir}/git --git-dir=${SRCDIR}/.git"
110
	if [ -n "$hg" ]; then
111
		hgrev=" `cd ${SYSDIR} && $hg tip --template '{rev}:{node|short}'`"
112
	fi
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
105
			break
125
			break
106
		fi
126
		fi
107
	done
127
	done
108
128
109
	if [ -n "$svnversion" ] ; then
129
	if [ -n "$git" ] ; then
110
		svn=" r`cd ${SRCDIR}/sys && $svnversion`"
130
		gitrev="`$git rev-parse --verify --short HEAD 2>/dev/null`"
111
	fi
131
		gitsvnrev="`$git svn find-rev $gitrev 2>/dev/null`"
112
	if [ -n "$git_cmd" ] ; then
132
		if [ -n "${gitsvnrev}" ] ; then
113
		git=`$git_cmd rev-parse --verify --short HEAD 2>/dev/null`
133
			svnrev=" r${gitsvnrev}"
114
		svn=`$git_cmd svn find-rev $git 2>/dev/null`
134
			gitrev=" ${gitrev}"
115
		if [ -n "$svn" ] ; then
116
			svn=" r${svn}"
117
			git="=${git}"
118
		else
135
		else
119
			svn=`$git_cmd log | fgrep 'git-svn-id:' | head -1 | \
136
			gitsvnid="`$git log |sed -n '/git-svn-id:/ {
120
			     sed -n 's/^.*@\([0-9][0-9]*\).*$/\1/p'`
137
			s/.*@\([[:digit:]]\{1,\}\).*/\1/p; q; }'`"
121
			if [ -n $svn ] ; then
138
			if [ -n "${gitsvnid}" ]; then
122
				svn=" r${svn}"
139
				svnrev=" r${gitsvnid}"
123
				git="+${git}"
140
				gitrev="+${gitrev}"
124
			else
141
			else
125
				git=" ${git}"
142
				gitrev=" ${gitrev}"
126
			fi
143
			fi
127
		fi
144
		fi
128
		if $git_cmd --work-tree=${SRCDIR} diff-index \
145
		if [ -n "`$git diff-index --name-only HEAD`" ]; then
129
		    --name-only HEAD | read dummy; then
146
			gitrev="${gitrev}-dirty"
130
			git="${git}-dirty"
131
		fi
147
		fi
132
	fi
148
	fi
133
	;;
149
fi
134
esac
135
150
136
cat << EOF > vers.c
151
cat << EOF > vers.c
137
$COPYRIGHT
152
$COPYRIGHT
138
#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}: ${t}"
153
#define SCCSSTR "@(#)${VERSION} #${v}${svnrev}${gitrev}${hgrev} ${t}"
139
#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"
140
#define RELSTR "${RELEASE}"
155
#define RELSTR "${RELEASE}"
141
156
142
char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR;
157
char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR;
Lines 147-150 Link Here
147
char kern_ident[] = "${i}";
162
char kern_ident[] = "${i}";
148
EOF
163
EOF
149
164
150
echo `expr ${v} + 1` > version
165
echo $((${v}+1)) >version

Return to bug 149510