newvers.sh revision 289999
150477Speter#!/bin/sh - 22729Sdfr# 32729Sdfr# Copyright (c) 1984, 1986, 1990, 1993 42729Sdfr# The Regents of the University of California. All rights reserved. 52729Sdfr# 62729Sdfr# Redistribution and use in source and binary forms, with or without 72729Sdfr# modification, are permitted provided that the following conditions 82729Sdfr# are met: 92729Sdfr# 1. Redistributions of source code must retain the above copyright 102729Sdfr# notice, this list of conditions and the following disclaimer. 1159839Speter# 2. Redistributions in binary form must reproduce the above copyright 1259839Speter# notice, this list of conditions and the following disclaimer in the 132729Sdfr# documentation and/or other materials provided with the distribution. 142729Sdfr# 4. Neither the name of the University nor the names of its contributors 1511626Sbde# may be used to endorse or promote products derived from this software 162729Sdfr# without specific prior written permission. 172729Sdfr# 1882607Sdillon# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 1982607Sdillon# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 202729Sdfr# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2169449Salfred# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2211626Sbde# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2359839Speter# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2459839Speter# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2568024Srwatson# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 262729Sdfr# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2759839Speter# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2859839Speter# SUCH DAMAGE. 2969449Salfred# 3069449Salfred# @(#)newvers.sh 8.1 (Berkeley) 4/20/94 3169449Salfred# $FreeBSD: releng/10.2/sys/conf/newvers.sh 289999 2015-10-26 11:36:55Z glebius $ 3269449Salfred 3377461SddTYPE="FreeBSD" 3410358SjulianREVISION="10.2" 3512866SpeterBRANCH="RELEASE-p6" 3612866Speterif [ "X${BRANCH_OVERRIDE}" != "X" ]; then 3783366Sjulian BRANCH=${BRANCH_OVERRIDE} 3811626Sbdefi 3983366SjulianRELEASE="${REVISION}-${BRANCH}" 4011626SbdeVERSION="${TYPE} ${RELEASE}" 4183366Sjulian 4212866Speterif [ "X${SYSDIR}" = "X" ]; then 4311626Sbde SYSDIR=$(dirname $0)/.. 4483366Sjulianfi 4583366Sjulian 4612819Sphkif [ "X${PARAMFILE}" != "X" ]; then 4712819Sphk RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \ 4811626Sbde ${PARAMFILE}) 4911626Sbdeelse 5012819Sphk RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \ 5112866Speter ${SYSDIR}/sys/param.h) 5259828Speterfi 5311626Sbde 5411626Sbdeb=share/examples/etc/bsd-style-copyright 5512819Sphkyear=$(sed -Ee '/^Copyright .* The FreeBSD Project/!d;s/^.*1992-([0-9]*) .*$/\1/g' ${SYSDIR}/../COPYRIGHT) 5659839Speter# look for copyright template 5759839Speterfor bsd_copyright in ../$b ../../$b ../../../$b /usr/src/$b /usr/$b 5859839Speterdo 5959839Speter if [ -r "$bsd_copyright" ]; then 602729Sdfr COPYRIGHT=`sed \ 6159839Speter -e "s/\[year\]/1992-$year/" \ 6259839Speter -e 's/\[your name here\]\.* /The FreeBSD Project./' \ 6359839Speter -e 's/\[your name\]\.*/The FreeBSD Project./' \ 6459839Speter -e '/\[id for your version control system, if any\]/d' \ 6559839Speter $bsd_copyright` 6659839Speter break 6759839Speter fi 6859839Speterdone 6959839Speter 7059839Speter# no copyright found, use a dummy 7159839Speterif [ X"$COPYRIGHT" = X ]; then 7259839Speter COPYRIGHT="/*- 7359839Speter * Copyright (c) 1992-$year The FreeBSD Project. 7459839Speter * All rights reserved. 7559839Speter * 7659839Speter */" 7759839Speterfi 7859839Speter 7959839Speter# add newline 8059839SpeterCOPYRIGHT="$COPYRIGHT 8159839Speter" 8259839Speter 8359839SpeterLC_ALL=C; export LC_ALL 8459839Speterif [ ! -r version ] 8559839Speterthen 8659839Speter echo 0 > version 8759839Speterfi 8859839Speter 8959839Spetertouch version 9059839Speterv=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date` 9159839Speteri=`${MAKE:-make} -V KERN_IDENT` 9259839Spetercompiler_v=$($(${MAKE:-make} -V CC) -v 2>&1 | grep 'version') 9359839Speter 9459839Speterfor dir in /usr/bin /usr/local/bin; do 9559839Speter if [ ! -z "${svnversion}" ] ; then 9659839Speter break 9759839Speter fi 9859839Speter if [ -x "${dir}/svnversion" ] && [ -z ${svnversion} ] ; then 9959839Speter # Run svnversion from ${dir} on this script; if return code 10059839Speter # is not zero, the checkout might not be compatible with the 10159839Speter # svnversion being used. 10259839Speter ${dir}/svnversion $(realpath ${0}) >/dev/null 2>&1 10359839Speter if [ $? -eq 0 ]; then 10459839Speter svnversion=${dir}/svnversion 10559839Speter break 10659839Speter fi 10759839Speter fi 10859839Speterdone 10959839Speter 11059839Speterif [ -z "${svnversion}" ] && [ -x /usr/bin/svnliteversion ] ; then 11159839Speter /usr/bin/svnliteversion $(realpath ${0}) >/dev/null 2>&1 11259839Speter if [ $? -eq 0 ]; then 11359839Speter svnversion=/usr/bin/svnliteversion 11459839Speter else 11559839Speter svnversion= 11659839Speter fi 11759839Speterfi 11859839Speter 11959839Speterfor dir in /usr/bin /usr/local/bin; do 12059839Speter if [ -x "${dir}/p4" ] && [ -z ${p4_cmd} ] ; then 12159839Speter p4_cmd=${dir}/p4 12259839Speter fi 12359839Speterdone 12459839Speterif [ -d "${SYSDIR}/../.git" ] ; then 12559839Speter for dir in /usr/bin /usr/local/bin; do 12659839Speter if [ -x "${dir}/git" ] ; then 12759839Speter git_cmd="${dir}/git --git-dir=${SYSDIR}/../.git" 12859839Speter break 12959839Speter fi 13059839Speter done 13159839Speterfi 13259839Speter 13359839Speterif [ -d "${SYSDIR}/../.hg" ] ; then 13459839Speter for dir in /usr/bin /usr/local/bin; do 13559839Speter if [ -x "${dir}/hg" ] ; then 13659839Speter hg_cmd="${dir}/hg -R ${SYSDIR}/.." 13759839Speter break 13859839Speter fi 13959839Speter done 14059839Speterfi 14159839Speter 14259839Speterif [ -n "$svnversion" ] ; then 14359839Speter svn=`cd ${SYSDIR} && $svnversion 2>/dev/null` 14459839Speter case "$svn" in 14559839Speter [0-9]*) svn=" r${svn}" ;; 14659839Speter *) unset svn ;; 14759839Speter esac 14859839Speterfi 14959839Speter 15059839Speterif [ -n "$git_cmd" ] ; then 15159839Speter git=`$git_cmd rev-parse --verify --short HEAD 2>/dev/null` 15259839Speter svn=`$git_cmd svn find-rev $git 2>/dev/null` 15359839Speter if [ -n "$svn" ] ; then 15477461Sdd svn=" r${svn}" 15577461Sdd git="=${git}" 15659839Speter else 15759839Speter svn=`$git_cmd log | fgrep 'git-svn-id:' | head -1 | \ 15859839Speter sed -n 's/^.*@\([0-9][0-9]*\).*$/\1/p'` 15959839Speter if [ -z "$svn" ] ; then 16059839Speter svn=`$git_cmd log --format='format:%N' | \ 16159839Speter grep '^svn ' | head -1 | \ 16259839Speter sed -n 's/^.*revision=\([0-9][0-9]*\).*$/\1/p'` 16359839Speter fi 16459839Speter if [ -n "$svn" ] ; then 16559839Speter svn=" r${svn}" 16659839Speter git="+${git}" 16759839Speter else 16859839Speter git=" ${git}" 16959839Speter fi 17059839Speter fi 17169449Salfred git_b=`$git_cmd rev-parse --abbrev-ref HEAD` 1722729Sdfr if [ -n "$git_b" ] ; then 1732729Sdfr git="${git}(${git_b})" 1742729Sdfr fi 17583413Smr if $git_cmd --work-tree=${SYSDIR}/.. diff-index \ 17683413Smr --name-only HEAD | read dummy; then 17783413Smr git="${git}-dirty" 17883413Smr fi 17983413Smrfi 18083413Smr 18183413Smrif [ -n "$p4_cmd" ] ; then 18283413Smr p4version=`cd ${SYSDIR} && $p4_cmd changes -m1 "./...#have" 2>&1 | \ 18383413Smr awk '{ print $2 }'` 18483413Smr case "$p4version" in 18583413Smr [0-9]*) 18659839Speter p4version=" ${p4version}" 18759839Speter p4opened=`cd ${SYSDIR} && $p4_cmd opened ./... 2>&1` 18859839Speter case "$p4opened" in 18959839Speter File*) ;; 1902729Sdfr //*) p4version="${p4version}+edit" ;; 1912729Sdfr esac 19259839Speter ;; 1932729Sdfr *) unset p4version ;; 1942729Sdfr esac 1952729Sdfrfi 1962729Sdfr 1972729Sdfrif [ -n "$hg_cmd" ] ; then 1982729Sdfr hg=`$hg_cmd id 2>/dev/null` 1992729Sdfr svn=`$hg_cmd svn info 2>/dev/null | \ 2002729Sdfr awk -F': ' '/Revision/ { print $2 }'` 2012729Sdfr if [ -n "$svn" ] ; then 2022729Sdfr svn=" r${svn}" 2032729Sdfr fi 2042729Sdfr if [ -n "$hg" ] ; then 20569449Salfred hg=" ${hg}" 2062729Sdfr fi 2072729Sdfrfi 20869449Salfred 20969449Salfredcat << EOF > vers.c 21069449Salfred$COPYRIGHT 21169449Salfred#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}${hg}${p4version}: ${t}" 21269449Salfred#define VERSTR "${VERSION} #${v}${svn}${git}${hg}${p4version}: ${t}\\n ${u}@${h}:${d}\\n" 21369449Salfred#define RELSTR "${RELEASE}" 21469449Salfred 21569449Salfredchar sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR; 21669449Salfredchar version[sizeof(VERSTR) > 256 ? sizeof(VERSTR) : 256] = VERSTR; 21769449Salfredchar compiler_version[] = "${compiler_v}"; 21869449Salfredchar ostype[] = "${TYPE}"; 21969449Salfredchar osrelease[sizeof(RELSTR) > 32 ? sizeof(RELSTR) : 32] = RELSTR; 22069449Salfredint osreldate = ${RELDATE}; 22169449Salfredchar kern_ident[] = "${i}"; 22269449SalfredEOF 22369449Salfred 22469449Salfredecho $((v + 1)) > version 22569449Salfred