| 1 | #!/bin/sh - |
| 2 | # |
| 3 | # Copyright (c) 1984, 1986, 1990, 1993 |
| 4 | # The Regents of the University of California. All rights reserved. |
| 5 | # |
| 6 | # Redistribution and use in source and binary forms, with or without |
| 7 | # modification, are permitted provided that the following conditions |
| 8 | # are met: |
| 9 | # 1. Redistributions of source code must retain the above copyright |
| 10 | # notice, this list of conditions and the following disclaimer. |
| 11 | # 2. Redistributions in binary form must reproduce the above copyright |
| 12 | # notice, this list of conditions and the following disclaimer in the |
| 13 | # documentation and/or other materials provided with the distribution. |
| 14 | # 3. All advertising materials mentioning features or use of this software |
| 15 | # must display the following acknowledgement: |
| 16 | # This product includes software developed by the University of |
| 17 | # California, Berkeley and its contributors. |
| 18 | # 4. Neither the name of the University nor the names of its contributors |
| 19 | # may be used to endorse or promote products derived from this software |
| 20 | # without specific prior written permission. |
| 21 | # |
| 22 | # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
| 23 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| 25 | # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
| 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| 28 | # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| 29 | # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| 30 | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| 31 | # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| 32 | # SUCH DAMAGE. |
| 33 | # |
| 34 | # @(#)newvers.sh 8.1 (Berkeley) 4/20/94 |
| 35 | # $FreeBSD: src/sys/conf/newvers.sh,v 1.44.2.30 2003/04/04 07:02:46 murray Exp $ |
| 36 | # $DragonFly: src/sys/conf/newvers.sh,v 1.23 2008/07/14 04:01:44 dillon Exp $ |
| 37 | |
| 38 | # The directory where the source resides |
| 39 | # |
| 40 | SRCDIR=$1 |
| 41 | if [ "${SRCDIR}" = "" ]; then |
| 42 | SRCDIR=$(dirname $0)/../.. |
| 43 | fi |
| 44 | |
| 45 | # Set the branch |
| 46 | # |
| 47 | BRANCH="RELEASE_2_6" |
| 48 | |
| 49 | TYPE="DragonFly" |
| 50 | |
| 51 | # The SHORTTAG is inclusive of the BLAH_X_Y version (if any) |
| 52 | # |
| 53 | if [ -z "${SHORTTAG}" ]; then |
| 54 | SHORTTAG=${BRANCH} |
| 55 | fi |
| 56 | |
| 57 | # Figure out the revision and subversion, if any. If the tag is in |
| 58 | # the form NAME_X_Y the revision is extracted from X and Y and the branch |
| 59 | # tag is truncated to just NAME. Otherwise we are on the HEAD branch and |
| 60 | # we are either HEAD or PREVIEW and the programmed revision is used. |
| 61 | # |
| 62 | # If we are on a branch-tag we must also figure out the sub-version. The |
| 63 | # sub-version is extracted from the 'subvers-${SHORTTAG}' file. This file |
| 64 | # typically only exists within branches. |
| 65 | # |
| 66 | REVISION=${BRANCH#*_} |
| 67 | BRANCH=${BRANCH%%_*} |
| 68 | |
| 69 | if [ "${REVISION}" != "${BRANCH}" ]; then |
| 70 | REVISION=$(echo $REVISION | sed -e 's/_/./g') |
| 71 | fi |
| 72 | |
| 73 | if [ -f ${SRCDIR}/sys/conf/subvers-${SHORTTAG} ]; then |
| 74 | SUBVER=$(tail -1 ${SRCDIR}/sys/conf/subvers-${SHORTTAG} | awk '{ print $1; }') |
| 75 | if [ "X${SUBVER}" != "X" ]; then |
| 76 | REVISION="${REVISION}.${SUBVER}" |
| 77 | break |
| 78 | fi |
| 79 | fi |
| 80 | |
| 81 | # obtain git commit name, like "v2.3.2.449.g84e97*" |
| 82 | GITREV=$(${SRCDIR}/tools/gitrev.sh 2>/dev/null || true) |
| 83 | |
| 84 | RELEASE="${REVISION}-${BRANCH}" |
| 85 | VERSION="${TYPE} ${RELEASE}" |
| 86 | [ -n "$GITREV" ] && VERSION="${TYPE} ${GITREV}-${BRANCH}" |
| 87 | |
| 88 | if [ "X${PARAMFILE}" != "X" ]; then |
| 89 | RELDATE=$(awk '/__DragonFly_version.*propagated to newvers/ {print $3}' \ |
| 90 | ${PARAMFILE}) |
| 91 | else |
| 92 | RELDATE=$(awk '/__DragonFly_version.*propagated to newvers/ {print $3}' \ |
| 93 | ${SRCDIR}/sys/sys/param.h) |
| 94 | fi |
| 95 | |
| 96 | |
| 97 | year=`date '+%Y'` |
| 98 | # look for copyright template |
| 99 | if [ -r ${SRCDIR}/share/examples/etc/bsd-style-copyright ]; then |
| 100 | COPYRIGHT=`sed \ |
| 101 | -e "s/\[year\]/$year/" \ |
| 102 | -e 's/\[your name\]\.*/The DragonFly Project/' \ |
| 103 | -e '/\[id for your version control system, if any\]/d' \ |
| 104 | ${SRCDIR}/share/examples/etc/bsd-style-copyright` |
| 105 | fi |
| 106 | |
| 107 | # no copyright found, use a dummy |
| 108 | if [ X"$COPYRIGHT" = X ]; then |
| 109 | COPYRIGHT="/* |
| 110 | * Copyright (c) $year The DragonFly Project |
| 111 | * All rights reserved. |
| 112 | * |
| 113 | */" |
| 114 | fi |
| 115 | |
| 116 | # add newline |
| 117 | COPYRIGHT="$COPYRIGHT |
| 118 | " |
| 119 | |
| 120 | LC_ALL=C; export LC_ALL |
| 121 | if [ ! -r version ] |
| 122 | then |
| 123 | echo 0 > version |
| 124 | fi |
| 125 | |
| 126 | touch version |
| 127 | v=`cat version` u=${USER-root} d=`pwd` h=`hostname` t=`date` |
| 128 | if [ "$v" = "" ]; then |
| 129 | v=1 |
| 130 | fi |
| 131 | i=`make -V KERN_IDENT` |
| 132 | cat << EOF > vers.c |
| 133 | $COPYRIGHT |
| 134 | char version[] = "${VERSION} #${v}: ${t}\\n ${u}@${h}:${d}\\n"; |
| 135 | char ostype[] = "${TYPE}"; |
| 136 | char osrelease[] = "${RELEASE}"; |
| 137 | int osreldate = ${RELDATE}; |
| 138 | char kern_ident[] = "${i}"; |
| 139 | EOF |
| 140 | |
| 141 | echo `expr ${v} + 1` > version |
| 142 | |
| 143 | if [ "${BRANCH}" = "DEVELOPMENT" ]; then |
| 144 | SBRANCH=DEV |
| 145 | fi |
| 146 | if [ "${BRANCH}" = "RELEASE" ]; then |
| 147 | SBRANCH=REL |
| 148 | fi |
| 149 | |
| 150 | stamp=`date +%Y%m%d` |
| 151 | echo DragonFly-${MACHINE}-${stamp}-${SBRANCH}-${GITREV} > vers.txt |