4798ffa9e1
Approved by: roberto, delphij Security: VuXML: 0d0f3050-1f69-11e5-9ba9-d050996490d0 Security: http://bugs.ntp.org/show_bug.cgi?id=2853 Security: https://www.kb.cert.org/vuls/id/668167 Security: http://support.ntp.org/bin/view/Main/SecurityNotice#June_2015_NTP_Security_Vulnerabi
189 lines
4.7 KiB
Bash
Executable File
189 lines
4.7 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
# This "bootstrap" script performs various pre-autoreconf actions
|
|
# that are required after pulling fresh sources from the repository.
|
|
#
|
|
# --force is supported and will be passed to autoreconf
|
|
#
|
|
# NOTE: THE NTP VERSION NUMBER COMES FROM packageinfo.sh
|
|
#
|
|
# all other instances of it anywhere in the source base have propagated
|
|
# from this one source.
|
|
#
|
|
# To use the raw sources from the repository, you must have the following
|
|
# tools available to you:
|
|
#
|
|
# 1. Autoconf and Automake.
|
|
#
|
|
# 2. lynx. This is used to extract the COPYRIGHT file extracted from
|
|
# the html documentation.
|
|
#
|
|
# *** The following are no longer needed for simple builds from the repo
|
|
# 3. AutoGen. The repository does *not* contain the files generated from
|
|
# the option definition files and it does not contain the libopts
|
|
# tear-off/redistributable library.
|
|
#
|
|
# Note: AutoGen needs GNU Guile.
|
|
#
|
|
# 4. gunzip. The tear-off library is a gzipped tarball.
|
|
|
|
set -e
|
|
|
|
(cd sntp && ../scripts/build/genver) || {
|
|
echo scripts/build/genver failed ; exit 1; }
|
|
|
|
# autoreconf says:
|
|
# The environment variables AUTOCONF, AUTOHEADER, AUTOMAKE, ACLOCAL,
|
|
# AUTOPOINT, LIBTOOLIZE, M4 are honored.
|
|
|
|
AUTORECONF=${AUTORECONF:-autoreconf}
|
|
|
|
# case `hostname` in
|
|
# pogo.udel.edu)
|
|
# if fgrep -q 4.2.4 sntp/m4/version.m4; then
|
|
# AUTOCONF=autoconf-2.59
|
|
# AUTOHEADER=autoheader-2.59
|
|
# AUTOMAKE=automake-1.9
|
|
# ACLOCAL=aclocal-1.9
|
|
# export AUTOCONF AUTOHEADER AUTOMAKE ACLOCAL
|
|
# fi
|
|
# ;;
|
|
# esac
|
|
|
|
## Old way
|
|
# 20060629: HMS: Let's try checking in libopts and the autogen-generated files
|
|
## The copy for ntp...
|
|
#rm -rf libopts*
|
|
#gunzip -c $(autoopts-config --libsrc) | (
|
|
# tar -xvf -
|
|
# mv libopts-*.*.* libopts )
|
|
|
|
## The copy for sntp...
|
|
#rm -rf sntp/libopts*
|
|
#gunzip -c $(autoopts-config --libsrc) | (
|
|
# cd sntp
|
|
# tar -xvf -
|
|
# mv libopts-*.*.* libopts )
|
|
|
|
## EOOld way
|
|
|
|
## Unity test runners
|
|
# the ruby generator must be older than the test files.
|
|
# the test files must be older than the runner files.
|
|
|
|
runner_files=`find [B-Za-z]* -type f -name 'run-*' -print | fgrep -v /SCCS/`
|
|
l=
|
|
lt=
|
|
lr=
|
|
for f in ${runner_files}
|
|
do
|
|
fb=`echo $f | sed -e 's/run-//'`
|
|
lt="$lt $fb"
|
|
lr="$lr $f" # Yes, lr and runner_files are eventually the same
|
|
done
|
|
touch $lt
|
|
echo "Touching <$lt>"
|
|
sleep 1
|
|
touch $lr
|
|
echo "Touching <$lr>"
|
|
|
|
## EOUnity test runners
|
|
|
|
## AutoGen stuff
|
|
|
|
def_files=`find [B-Za-z]* -type f -name '*.def' -print | fgrep -v /SCCS/`
|
|
prog_opt_files=`grep -l '^prog.name' $def_files`
|
|
|
|
# touch the stuff generated by the opt files
|
|
|
|
l=
|
|
lh=
|
|
li=
|
|
for f in ${prog_opt_files}
|
|
do
|
|
f=`echo $f | sed -e 's/-opts.def//' -e 's/.def//'`
|
|
dfi=`dirname $f`
|
|
dfi=`echo $dfi | sed -e 's:$:/invoke-*:'`
|
|
for i in `ls -1 $f* $dfi`
|
|
do
|
|
case "$i" in
|
|
*invoke-*)
|
|
li="$li $i"
|
|
;;
|
|
*.c|*.h|*.[1-9]*man|*.[1-9]*mdoc|*.man.in|*.mdoc.in|*-opts|*.texi|*.menu)
|
|
l="$l $i"
|
|
;;
|
|
*.html)
|
|
lh="$lh $i"
|
|
;;
|
|
esac
|
|
done
|
|
done
|
|
case "$l" in
|
|
'') ;;
|
|
*) touch $l
|
|
echo "Touching <$l>"
|
|
sleep 1
|
|
;;
|
|
esac
|
|
case "$li" in
|
|
'') ;;
|
|
*) touch $li
|
|
echo "Touching <$li>"
|
|
sleep 1
|
|
;;
|
|
esac
|
|
case "$lh" in
|
|
'') ;;
|
|
*) touch $lh
|
|
echo "Touching <$lh>"
|
|
;;
|
|
esac
|
|
|
|
## EOAutoGen stuff
|
|
|
|
## Yacc/bison files
|
|
|
|
# Yacc/bison files ntp_parser.[ch] so we don't require the tool if
|
|
# ntp_parser.y hasn't been updated. At the same time, keyword-gen-utd
|
|
# and ntp_keyword.h which are derived from ntp_parser.h and
|
|
# keyword-gen.c.
|
|
|
|
touch ntpd/ntp_parser.[ch] ntpd/keyword-gen-utd ntpd/ntp_keyword.h
|
|
|
|
## EOYacc/bison files
|
|
|
|
cp bincheck.mf sntp/
|
|
cp depsver.mf sntp/
|
|
|
|
${AUTORECONF} -i -v "$@"
|
|
|
|
# Because some systems do not support 'test a -nt b'
|
|
case `ls -1tr config.h.in aclocal.m4 | tail -1` in
|
|
aclocal.m4) touch config.h.in ;;
|
|
esac
|
|
case `ls -1tr sntp/config.h.in sntp/aclocal.m4 | tail -1` in
|
|
sntp/aclocal.m4) touch sntp/config.h.in ;;
|
|
esac
|
|
case `ls -1tr sntp/libevent/config.h.in sntp/libevent/aclocal.m4 | tail -1` in
|
|
sntp/libevent/aclocal.m4) touch sntp/libevent/config.h.in ;;
|
|
esac
|
|
|
|
# DH: 20110118: Due to our workaround for the AM_COND_IF bug that was
|
|
# triggering the buggy recursive autoreconf, we can once again use a
|
|
# single autoreconf invocation. See
|
|
# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7860
|
|
# DH: 20101120: We are back to a single copy of libopts, and
|
|
# once again it seems we need to run autoreconf in sntp after
|
|
# the top-level run to get a correct sntp/libopts/Makefile.in.
|
|
# To reduce redundancy, the top-level autoreconf uses --no-recursive.
|
|
#
|
|
# HMS: 20060618: Now that we use separate copies of libopts
|
|
# we should only need the previous line.
|
|
#
|
|
## HMS: 20060615: the next line seems to be needed to make sure
|
|
## we get the correct srcdir path in sntp/libopts/Makefile.in
|
|
#rm -rf sntp/autom4te.cache
|
|
#
|
|
# (cd sntp && ${AUTORECONF} -i -v "$@")
|