#!/bin/echo Try "scripts/mkroot.sh dropbear"

# Example overlay file, adding dropbear (which requires zlib)

echo === download source

download a4d316c404ff54ca545ea71a27af7dbc29817088 \
  http://downloads.sf.net/libpng/zlib-1.2.8.tar.gz

download 820ec2b8c869edbcf5ad1138777fc0f54349505c \
  https://matt.ucc.asn.au/dropbear/releases/dropbear-2019.78.tar.bz2

echo === Native build static zlib

setupfor zlib
# They keep checking in broken generated files.
rm -f Makefile zconf.h &&
CC=${CROSS_COMPILE}cc LD=${CROSS_COMPILE}ld AS=${CROSS_COMPILE}as ./configure &&
make -j $(nproc) || exit 1

# do _not_ cleanup zlib, we need the files we just built for dropbear
cd ..

echo === $HOST Native build static dropbear

setupfor dropbear
# Repeat after me: "autoconf is useless"
echo 'echo "$@"' > config.sub &&
ZLIB="$(echo ../zlib*)" &&
CFLAGS="-I $ZLIB -O2" LDFLAGS="-L $ZLIB" ./configure --enable-static \
  --disable-wtmp --host=${CROSS_BASE%-} &&
sed -i 's@/usr/bin/dbclient@ssh@' options.h &&
sed -i 's@\(#define NON_INETD_MODE\) 1@\1 0@' default_options.h &&
make -j $(nproc) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 &&
${CROSS_COMPILE}strip dropbearmulti &&
mkdir -p "$ROOT"/{bin,etc/{rc,dropbear},var/log} &&
touch "$ROOT"/var/log/lastlog &&
cp dropbearmulti "$ROOT"/bin || exit 1
for i in "$ROOT"/bin/{ssh,dropbear,scp,dropbearkey}
do
  ln -s dropbearmulti $i || exit 1
done
cleanup

rm -rf zlib-*

# user root password root, user guest no password
echo -e 'root:$1$939UTPzb$/PfVYAsF2Hqi/AQ3UBjbK/:::::::\nguest::::::::' > "$ROOT"/etc/shadow &&
chmod 600 "$ROOT"/etc/shadow &&

echo 'netcat -p 22 -L dropbear -iRB &' > "$ROOT"/etc/rc/dropbear &&

# file to run on host to ssh into guest
echo 'ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" ${1:+$1@}127.0.0.1 -p 2222' > "$OUTPUT"/ssh2dropbear.sh &&
chmod +x "$OUTPUT"/ssh2dropbear.sh

# Forward 127.0.0.1:2222 into qemu instance
QEMU_MORE="-nic user,hostfwd=tcp:127.0.0.1:2222-:22"
