#!/bin/bash # Usage: ./build_static_dropbear # or # bash build_static_dropbear # Description: Download newest stable dropbear release and # compiles static binaries (client, server and scp) # Author: Patrick Neumann (patrick@neumannsland.de) # Platform: Debian or Raspbian GNU/Linux (tested: 9.5) # Version: 1.0 # Date: 06.07.2018 # License: GPL3 # Warranty: This program is distributed WITHOUT ANY WARRANTY # autodetect arch: ARCH="$( /bin/uname --machine )" # autodetect release or do it manualy: RELEASE="$( /usr/bin/curl --silent https://matt.ucc.asn.au/dropbear/dropbear.html \ | /bin/grep --extended-regexp "Latest is [[:digit:]]{4}\.[[:digit:]]{1,3}" \ | /bin/grep --extended-regexp --only-matching "[[:digit:]]{4}\.[[:digit:]]{1,3}" )" #RELEASE="2018.76" /usr/bin/test -n "${RELEASE}" || ( echo "Release detection failed - please edit script manually" ; exit 1 ) # dependencies (static libs): if [ ! -f /usr/share/build-essential/list ] ; then /usr/bin/sudo /usr/bin/apt install build-essential --assume-yes ; fi if [ ! -f /usr/lib/*-linux-gnu*/libc.a ] ; then /usr/bin/sudo /usr/bin/apt install libc6-dev --assume-yes ; fi if [ ! -f /usr/lib/*-linux-gnu*/zlib.a ] ; then /usr/bin/sudo /usr/bin/apt install zlib1g-dev --assume-yes ; fi # downloading... /usr/bin/wget https://matt.ucc.asn.au/dropbear/releases/dropbear-${RELEASE}.tar.bz2 # extracting... /bin/tar xjf dropbear-${RELEASE}.tar.bz2 # compiling and stripping... cd dropbear-${RELEASE} ./configure --enable-static \ --disable-syslog \ --disable-lastlog \ --disable-utmp \ --disable-utmpx \ --disable-wtmp \ --disable-wtmpx /usr/bin/make PROGRAMS="dropbear dbclient scp" /usr/bin/make strip # rename binary: BINARY1="dbclient-${ARCH}-${RELEASE}" /bin/mv dbclient "${BINARY1}" BINARY2="scp-${ARCH}-${RELEASE}" /bin/mv scp "${BINARY2}" BINARY3="dropbear-${ARCH}-${RELEASE}" /bin/mv dropbear "${BINARY3}" # final instructions: echo echo "Ready to copy:" echo echo " cp $PWD/${BINARY1} /media/POLICE/" echo " cp $PWD/${BINARY2} /media/POLICE/" echo " cp $PWD/${BINARY3} /media/POLICE/" echo exit 0