#!/bin/sh ###################################################### # Build script for Core 11.0 # # # # See .info for details # ###################################################### # run the script as root so permissions work if [ `/usr/bin/id -u` -ne 0 ]; then echo "Need root privileges. exec(ing) under sudo" >&2 exec sudo $0 $@ fi ###################################################### # Configure extension creation parameters # ###################################################### EXTNAM=dropbear VERSION=2020.80 RELEASE=$EXTNAM-$VERSION SRCNAM=$RELEASE.tar.bz2 DOWNLOAD=https://matt.ucc.asn.au/dropbear/releases/$SRCNAM TMPDIR=/tmp/$EXTNAM cd $(dirname $0) BASEDIR=$PWD # pull in required tools must be run as user SUDO_USER stored in # /this script/-dep sudo -u $SUDO_USER tce-load -w `cat ${0}-dep` sudo -u $SUDO_USER tce-load -i `cat ${0}-dep` # download source if not present if [ ! -f $SRCNAM ] then wget $DOWNLOAD fi ###################################################### # Prepare extension creation # ###################################################### # Remove dirs and files left from previous creation rm -r -f $RELEASE rm -r -f $TMPDIR $TMPDIR-doc ###################################################### # Compile extension # ###################################################### # Export variables needed for compilation case $(uname -m) in i386 | i486 | i586 | i686 | x86) export CFLAGS="-march=i486 -mtune=i686" export CXXFLAGS="-march=i486 -mtune=i686" ;; x86_64) export CFLAGS="-flto -fuse-linker-plugin -mtune=generic" export CXXFLAGS="-flto -fuse-linker-plugin -mtune=generic" ;; arm*) export CFLAGS="" export CXXFLAGS="" ;; armv6*) export CFLAGS="-march=armv6 -mcpu=arm1176jzf-s -mfpu=vfp" export CXXFLAGS="-march=armv6 -mcpu=arm1176jzf-s -mfpu=vfp" ;; armv7*) export CFLAGS="-march=armv7-a -mtune=cortex-a7 -mfpu=neon" export CXXFLAGS="-march=armv7-a -mtune=cortex-a7 -mfpu=neon" ;; aarch64) export CFLAGS="-march=armv8-a+crc -mtune=cortex-a53" export CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a53" ;; *) echo "Unrecongized machine type please update script" exit 1 ;; esac export CFLAGS="$CFLAGS -Os" export CXXFLAGS="$CXXFLAGS -Os -fno-exceptions -fno-rtti -fno-asynchronous-unwind-tables" export LDFLAGS="-Wl,-O1" # verified no pthread_cancel so drop asynchronous-unwind-tables export CFLAGS="$CFLAGS -fno-asynchronous-unwind-tables" # Unpack source in current directory tar -xf $SRCNAM # Configure it cp localoptions.h $RELEASE cd $RELEASE ./configure --prefix=/usr/local --disable-lastlog # Compile make DESTDIR=$TMPDIR PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 || exit 1 make DESTDIR=$TMPDIR PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 strip || exit 1 touch /tmp/mark make DESTDIR=$TMPDIR PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 install || exit 1 mkdir -p $TMPDIR/usr/local/share/doc/dropbear/ cp LICENSE $TMPDIR/usr/local/share/doc/dropbear/ # Delete compilation work directory cd .. rm -r -f $RELEASE # Add TC specific files chown root:staff dropbear banner chmod a+x dropbear mkdir -p $TMPDIR/usr/local/etc/dropbear cp banner $TMPDIR/usr/local/etc/dropbear mkdir -p $TMPDIR/usr/local/etc/init.d cp dropbear $TMPDIR/usr/local/etc/init.d # add ssh link so scp does not break ln -s /usr/local/bin/dropbearmulti $TMPDIR/usr/local/bin/ssh # Adjust directory access rights find $TMPDIR/ -type d | xargs chmod -v 755; # Strip executables #find $TMPDIR | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded # Move files to doc extension mkdir -p $TMPDIR-doc/usr/local/ mv $TMPDIR/usr/local/share $TMPDIR-doc/usr/local/share # Move the license back for submitqc mkdir -p $TMPDIR/usr/local/share/doc/dropbear/ mv $TMPDIR-doc/usr/local/share/doc/dropbear/LICENSE $TMPDIR/usr/local/share/doc/dropbear/ rmdir $TMPDIR-doc/usr/local/share/doc/dropbear/ $TMPDIR-doc/usr/local/share/doc/ $TMPDIR-doc/usr/local/share/ ################################################### # Create base extension in temp dir # ################################################### cd $TMPDIR/.. mksquashfs $TMPDIR $EXTNAM.tcz -noappend -processors 1 cd $TMPDIR find ./usr -not -type d | sort | sed 's/^\.//' > ../$EXTNAM.tcz.list mv ../$EXTNAM.tcz ../$EXTNAM.tcz.list . # Create md5 file md5sum $EXTNAM.tcz > $EXTNAM.tcz.md5.txt # Put them all back in the starting directory mv $EXTNAM.tcz* $BASEDIR # Cleanup temp directory rm -r -f $TMPDIR ################################################### # Create doc extension in temp dir # ################################################### cd $TMPDIR-doc/.. mksquashfs $TMPDIR-doc $EXTNAM-doc.tcz -noappend -processors 1 cd $TMPDIR-doc find ./usr -not -type d | sort | sed 's/^\.//' > ../$EXTNAM-doc.tcz.list mv ../$EXTNAM-doc.tcz ../$EXTNAM-doc.tcz.list . # Create md5 file md5sum $EXTNAM-doc.tcz > $EXTNAM-doc.tcz.md5.txt # Put them all back in the starting directory mv $EXTNAM-doc.tcz* $BASEDIR # Cleanup temp directory rm -r -f $TMPDIR-doc