1#!/bin/sh
2#
3
4# This script runs through what it can of the release checklist
5# run via:  "sh tools/release_checklist.sh"
6# It assumes the current directory is the top directory of the build
7
8echo "Slony-I Release Checklist"
9
10echo "pulling version information from config.h.in"
11VERDOTTED=`egrep 'SLONY_I_VERSION_STRING.*"[0-9]+\.[0-9]+\.[0-9]+"' config.h.in | cut -d'"' -f 2`
12MAJOR=`echo $VERDOTTED | cut -d '.' -f 1`
13MINOR=`echo $VERDOTTED | cut -d '.' -f 2`
14PATCHLEVEL=`echo $VERDOTTED | cut -d '.' -f 3`
15
16echo "Slony-I version: ${VERDOTTED} - Major=${MAJOR} Minor=${MINOR} Patchlevel=${PATCHLEVEL} per config.h.in"
17
18VERCOMMA="${MAJOR},${MINOR},${PATCHLEVEL}"
19VERUNDERSCORE="${MAJOR}_${MINOR}_${PATCHLEVEL}"
20if egrep "#define SLONY_I_VERSION_STRING_DEC ${VERCOMMA}\$" config.h.in >/dev/null 2>&1; then
21   echo "SLONY_I_VERSION_STRING_DEC matches"
22else
23   echo "ERROR: SLONY_I_VERSION_STRING_DEC does not match ${VERCOMMA}"
24   grep SLONY_I_VERSION_STRING_DEC config.h.in
25fi
26
27echo "Verifying configure..."
28if egrep "^PACKAGE_VERSION='${VERDOTTED}'\$" configure >/dev/null 2>&1; then
29   echo "configure PACKAGE_VERSION matches ${VERDOTTED}"
30else
31   echo "ERROR: PACKAGE_VERSION in configure does not match ${VERDOTTED}"
32   egrep "PACKAGE_VERSION\=" configure
33fi
34
35if egrep "^PACKAGE_STRING='slony1 ${VERDOTTED}'\$" configure >/dev/null 2>&1; then
36   echo "PACKAGE_STRING in configure matches slony1 ${VERDOTTED}"
37else
38   echo "ERROR: configure PACKAGE_STRING does not match ${VERDOTTED}"
39   egrep "PACKAGE_STRING\=" configure
40fi
41
42FLIST=""
43for file in `find config -name "*.m4" -newer configure | sort`; do
44    FLIST="${FLIST} $file"
45done
46if [ x = x"$FLIST" ]; then
47    echo "autoconf has probably been run lately..."
48else
49    echo "WARNING:: The following ./configure constituents are newer than ./configure - you probably should run autoconf!"
50    echo "$FLIST" | fmt
51fi
52
53STOREDPROCVERS=`awk  -f tools/awk-for-stored-proc-vers.awk  src/backend/slony1_funcs.sql`
54
55if [ x"$STOREDPROCVERS" = x"$VERDOTTED" ]; then
56   OK=1
57   echo "Stored proc version numbers match ${VERDOTTED}"
58else
59   echo "ERROR: Stored proc versions in src/backend/slony1_funcs.sql indicates version [${STOREDPROCVERS}] (versus [${VERDOTTED}])"
60fi
61
62
63for file in `find src/slon -name "conf-file.l" -newer src/slon/conf-file.c | sort`; do
64    echo "WARNING: src/slon/conf-file.l newer than child file src/slon/conf-file.c"
65done
66
67for file in `find src/slonik -name "scan.l" -newer src/slonik/scan.c | sort`; do
68    echo "WARNING: src/slonik/scan.l newer than child file src/slonik/scan.c"
69done
70
71for file in `find src/slonik -name "parser.y" -newer src/slonik/parser.c | sort`; do
72    echo "WARNING: src/slonik/parser.y newer than child file src/slonik/parser.c"
73done
74