Generalize binary building, add static resources, add spec files for mitmproxy, mitmdump and mitmweb

We're now ready to use the same script (more or less) to build Windows
binaries.
This commit is contained in:
Aldo Cortesi 2014-12-28 17:39:44 +13:00
parent 0cc8c44c22
commit e4f510685e
4 changed files with 138 additions and 25 deletions

32
release/mitmdump.spec Normal file
View File

@ -0,0 +1,32 @@
# -*- mode: python -*-
from glob import glob
block_cipher = None
a = Analysis(['./mitmdump'],
hiddenimports=[],
hookspath=None,
runtime_hooks=None,
excludes=None,
cipher=block_cipher,
)
a.datas = Tree(
"./libmproxy/onboarding/templates",
prefix="libmproxy/onboarding/templates"
)
a.datas += Tree(
"./libmproxy/onboarding/static",
prefix="libmproxy/onboarding/static"
)
pyz = PYZ(a.pure,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='mitmdump',
debug=False,
strip=None,
upx=True,
console=True )

32
release/mitmproxy.spec Normal file
View File

@ -0,0 +1,32 @@
# -*- mode: python -*-
from glob import glob
block_cipher = None
a = Analysis(['./mitmproxy'],
hiddenimports=[],
hookspath=None,
runtime_hooks=None,
excludes=None,
cipher=block_cipher,
)
a.datas = Tree(
"./libmproxy/onboarding/templates",
prefix="libmproxy/onboarding/templates"
)
a.datas += Tree(
"./libmproxy/onboarding/static",
prefix="libmproxy/onboarding/static"
)
pyz = PYZ(a.pure,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='mitmproxy',
debug=False,
strip=None,
upx=True,
console=True )

40
release/mitmweb.spec Normal file
View File

@ -0,0 +1,40 @@
# -*- mode: python -*-
from glob import glob
block_cipher = None
a = Analysis(['./mitmweb'],
hiddenimports=[],
hookspath=None,
runtime_hooks=None,
excludes=None,
cipher=block_cipher,
)
a.datas = Tree(
"./libmproxy/onboarding/templates",
prefix="libmproxy/onboarding/templates"
)
a.datas += Tree(
"./libmproxy/onboarding/static",
prefix="libmproxy/onboarding/static"
)
a.datas += Tree(
"./libmproxy/web/templates",
prefix="libmproxy/web/templates"
)
a.datas += Tree(
"./libmproxy/web/static",
prefix="libmproxy/web/static"
)
pyz = PYZ(a.pure,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='mitmweb',
debug=False,
strip=None,
upx=True,
console=True )

View File

@ -5,36 +5,45 @@
# A few quirks to note, which should be re-checked every release:
# - We require the latest development version of PyInstaller.
# - PyInstaller has trouble detecting the zope.interfaces package. This is
# required by Twisted, which for mysterious reasons is required by Urwid. The
# answer is to touch the __init__.py file in the zope directory. On my system:
# touch /Library/Python/2.7/site-packages/zope/__init__.py
# To run, first install netlib and mitmproxy, then run
#
# ./release/osx-binaries
#
# From the top-level mitmproxy directory.
# To run, first install netlib and mitmproxy, then change into the pyinstaller
# directory, and then run this script.
usage ()
{
echo 'Usage : ./release/osx-binaries /path/to/pyinstaller.py'
echo 'Run from the top-level mitmproxy directory'
exit
}
TMPDIR=/tmp
DST=$TMPDIR/osx-mitmproxy
MITMPROXY=~/mitmproxy/mitmproxy
PYINST_CMD="./pyinstaller.py -F --clean"
if [ "$1" = "" ]
then
usage
fi
rm -rf $TMPDIR/osx-mitmproxy*
mkdir -p $DST
rm -rf mitmproxy
rm -rf mitmdump
$PYINST_CMD $MITMPROXY/mitmproxy
$MITMPROXY/mitmproxy --version || exit 1
cp mitmproxy/dist/mitmproxy $DST
TMPDIR=./tmp
PYINST_CMD=$1" -F --clean"
$PYINST_CMD $MITMPROXY/mitmdump
$MITMPROXY/mitmdump --version || exit 1
cp mitmdump/dist/mitmdump $DST
rm -f dist/*
rm -rf $TMPDIR
cshape $MITMPROXY/doc-src $DST/doc
$PYINST_CMD ./release/mitmdump.spec
./dist/mitmdump --version || exit 1
$PYINST_CMD ./release/mitmproxy.spec
./dist/mitmproxy --version || exit 1
$PYINST_CMD ./release/mitmweb.spec
./dist/mitmweb --version || exit 1
DST=osx-mitmproxy-`./dist/mitmdump --shortversion 2>&1`
mkdir -p $TMPDIR/$DST
cp ./dist/mitmproxy $TMPDIR/$DST
cp ./dist/mitmdump $TMPDIR/$DST
cshape ./doc-src $TMPDIR/$DST/doc
VBASE=osx-mitmproxy-`$MITMPROXY/mitmdump --shortversion 2>&1`
mv $DST $TMPDIR/$VBASE
TGZDST=$TMPDIR/$VBASE.tgz
cd $TMPDIR
tar -czvf $VBASE.tgz $VBASE
tar -czvf $DST.tgz $DST