forked from openntpd-portable/openntpd-portable
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate.sh
executable file
·75 lines (67 loc) · 1.99 KB
/
update.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/sh
set -e
openbsd_branch=`cat OPENBSD_BRANCH`
openntpd_version=`cat VERSION`
# pull in latest upstream code
echo "pulling upstream openbsd source"
if [ ! -d openbsd ]; then
if [ -z "$OPENNTPD_GIT" ]; then
git clone https://github.com/openntpd-portable/openntpd-openbsd.git openbsd
else
git clone $OPENNTPD_GIT/openbsd
fi
fi
(cd openbsd
git fetch
git checkout $openbsd_branch
git pull --rebase)
# setup source paths
dir=`pwd`
patches=$dir/patches
etc_src=$dir/openbsd/src/etc
libc_inc=$dir/openbsd/src/include
libc_src=$dir/openbsd/src/lib/libc
arc4random_src=$dir/openbsd/src/lib/libcrypto/arc4random
libutil_src=$dir/openbsd/src/lib/libutil
ntpd_src=$dir/openbsd/src/usr.sbin/ntpd
do_cp_libc() {
sed "/DEF_WEAK/d" < "$1" > "$2"/`basename "$1"`
}
CP_LIBC='do_cp_libc'
CP='cp -p'
PATCH='patch -p0 -s'
$CP $etc_src/ntpd.conf ./
sed '/DECLS/d' $libc_inc/md5.h > include/md5.h
sed '/DECLS/d' $libc_inc/sha2.h > include/sha2_openbsd.h
$CP $libutil_src/imsg.h include/
$CP $libutil_src/imsg.c compat/
$CP $libutil_src/imsg-buffer.c compat/
(cd compat; $PATCH < $patches/patch-imsg.c)
for i in explicit_bzero.c strlcpy.c strlcat.c; do
$CP_LIBC $libc_src/string/$i compat
done
$CP_LIBC $libc_src/stdlib/reallocarray.c compat
$CP_LIBC $libc_src/stdlib/recallocarray.c compat
$CP_LIBC $libc_src/stdlib/strtonum.c compat
$CP_LIBC $libc_src/crypt/arc4random.c compat
$CP_LIBC $libc_src/crypt/arc4random_uniform.c compat
$CP_LIBC $libc_src/crypt/chacha_private.h compat
$CP_LIBC $libc_src/hash/md5.c compat
$CP_LIBC $libc_src/hash/sha2.c compat
for i in $arc4random_src/getentropy_*.c; do
sed -e 's/openssl\/sha.h/sha2.h/' < $i > compat/`basename $i`
done
$CP $arc4random_src/arc4random_*.h compat
for i in client.c config.c constraint.c control.c log.c ntp.c ntp.h \
ntp_dns.c ntp_msg.c ntpd.c ntpd.h parse.y sensors.c server.c util.c \
ntpctl.8 ntpd.8 ntpd.conf.5 ; do
file=`basename $i`
echo Copying $file
$CP $ntpd_src/$i src
done
(cd src
for i in ../patches/*.patch; do
echo Patching $i
$PATCH -p4 < $i
done
)