qira/bdistrib.sh
2014-07-31 11:47:11 -07:00

97 lines
2.7 KiB
Bash
Executable File

#!/bin/bash -e
rm -rf distrib/
mkdir -p distrib/qira
QEMU_SOURCE=1
QEMU_BINARIES=1
VERSION=$(cat VERSION)
echo "packaging version $VERSION"
# VERSION is required to build the python thing
echo "copying docs"
cp -av VERSION README distrib/qira/
# requires objdump
# writable /tmp
# aim for a 2mb distributable
# 100kb for the python, 100kb for the web, 200kb for the ida plugin(static), 1mb for qira-qemu
# +the meteor install size
# consider smaller packaging for the python
# hmm can we package as a .deb for ubuntu?
# perhaps instead of this bundle we just install meteor
# curl https://install.meteor.com | /bin/sh
# or preship this file in the tarball?
# the advantage of this over the bundle is it ships mongo
echo "copying webapp"
cp -R web distrib/qira/
rm -rf distrib/qira/web/.meteor/local
rm -f distrib/qira/web/qira.html # this doesn't work to change, so don't allow the user to
#mrt bundle ../bin/qira_web.tar.gz
cp -R webstatic distrib/qira/
# sudo apt-get install python-pip
# sudo pip install pymongo
echo "copying middleware"
mkdir -p distrib/qira/middleware
cp -av middleware/*.py distrib/qira/middleware/
# built for ida 6.6
# perhaps build for older IDA as well, ie 6.1
# and mac + windows
# fairly standard deps + libcrypto, libssl, libz and libida
mkdir -p distrib/qira/ida/bin
echo "copying ida plugin"
cp -av ida/bin/* distrib/qira/ida/bin/
if [ $QEMU_SOURCE ]; then
#echo "copying qemu_mods for building qemu from source"
cp -Rav qemu_mods distrib/qira/
cp -av qemu_build.sh distrib/qira/
fi
if [ $QEMU_BINARIES ]; then
# fairly standard deps + librt, libglib, libpcre
echo "copying qemu"
mkdir -p distrib/qira/qemu
for arch in "i386" "arm" "x86_64" "ppc"; do
cp "qemu/qira-$arch" "distrib/qira/qemu/qira-$arch"
strip "distrib/qira/qemu/qira-$arch"
#upx -9 "distrib/qira/qemu/qira-$arch"
done
fi
echo "copying qiradb"
mkdir -p distrib/qira/qiradb
cp -Rav qiradb/* distrib/qira/qiradb/
# package up the python, hopefully this includes pymongo driver
# hmm, it doesn't, user will need to install
#cd bin
#rm -rf qira_middleware
#mkdir -p qira_middleware
#cd qira_middleware
#~/build/PyInstaller-2.1/pyinstaller.py ../../scripts/qira_middleware.py
#cd dist/qira_middleware
#tar zcvf ../../../qira_middleware.tar.gz *
#cd ../../
#cd ../../
# *** startup ***
# the meteor and the middleware should always be running(fix the hang bug)
# launch both in upscript with qira-server in one window. make the teardown nice
# then you run qira-i386 <binary>, we need to hack in the -singlestep arg
echo "copying binaries"
cp -av install.sh qira fetchlibs.sh distrib/qira/
echo "making archive"
cd distrib/
tar cvf qira-$VERSION.tar qira
xz qira-$VERSION.tar
cd ../