From 061051efd4159faaa043c0da7b5aeba21e7429d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Tue, 27 Aug 2013 14:49:45 -0300 Subject: Add build scripts for OSX bundles --- pkg/osx/build_bundle.sh | 123 +++++++++++++++++++++++++++++++++++++ pkg/osx/build_bundle_from_linux.sh | 84 +++++++++++++++++++++++++ 2 files changed, 207 insertions(+) create mode 100755 pkg/osx/build_bundle.sh create mode 100644 pkg/osx/build_bundle_from_linux.sh (limited to 'pkg/osx') diff --git a/pkg/osx/build_bundle.sh b/pkg/osx/build_bundle.sh new file mode 100755 index 00000000..a13746bf --- /dev/null +++ b/pkg/osx/build_bundle.sh @@ -0,0 +1,123 @@ +REPOS_ROOT=$1 +VERSION=$2 +TEMPLATE_BUNDLE=$3 +JOINT_CHANGELOG=$4 +DEST=$5 + +# clean template + +rm $TEMPLATE_BUNDLE/CHANGELOG.txt +rm $TEMPLATE_BUNDLE/relnotes.txt +rm -rf $TEMPLATE_BUNDLE/Bitmask.app/Contentes/MacOS/apps/leap +rm $TEMPLATE_BUNDLE/Bitmask.app/Contentes/MacOS/lib/leap/{common,keymanager,soledad,mail} + +# checkout VERSION in all repos + +for i in {leap_client,leap_pycommon,soledad,keymanager,leap_mail} + do + cd $REPOS_ROOT/$i + git checkout $VERSION + done + +# make ui in client + +cd $REPOS_ROOT/leap_client +make + +# cp client + +cp -r $REPOS_ROOT/leap_client/src/leap $TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/apps/leap + +# setup sdist client + +cd $REPOS_ROOT/leap_client +python setup.py sdist + +# extract $VERSION and copy _version.py to TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/apps/leap/bitmask/_version.py + +cd dist +rm -rf leap.bitmask-$VERSION +tar xzf leap.bitmask-$VERSION.tar.gz +cp leap.bitmask-$VERSION/src/leap/bitmask/_version.py $TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/apps/leap/bitmask/_version.py +cp leap.bitmask-$VERSION/src/leap/bitmask/util/reqs.txt $TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/apps/leap/bitmask/util/reqs.txt + +# cp common, soledad(client and common), mail and keymanager in TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/lib/leap/ + +LEAP_LIB=$TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/lib/leap/ + +cp -r $REPOS_ROOT/leap_pycommon/src/leap/common $LEAP_LIB +cp -r $REPOS_ROOT/soledad/common/src/leap/soledad $LEAP_LIB +cp -r $REPOS_ROOT/soledad/client/src/leap/soledad/client $LEAP_LIB/soledad +cp -r $REPOS_ROOT/leap_mail/src/leap/mail $LEAP_LIB +cp -r $REPOS_ROOT/keymanager/src/leap/keymanager $LEAP_LIB + +# cp leap_client launcher to TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/Bitmask + +BITMASK_BIN=$TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/Bitmask + +cd $REPOS_ROOT/leap_client_launcher/build/ +make +cp src/launcher $BITMASK_BIN + +# cp launcher.py to TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/apps/ + +cd $REPOS_ROOT/leap_client_launcher/src/ +cp launcher.py $TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/apps/ + +# install_name_tool it + +install_name_tool -change libboost_python.dylib lib/libboost_python.dylib $BITMASK_BIN +install_name_tool -change libboost_filesystem.dylib lib/libboost_filesystem.dylib $BITMASK_BIN +install_name_tool -change libboost_system.dylib lib/libboost_system.dylib $BITMASK_BIN + +# cp relnotes to TEMPLATE_BUNDLE + +cp $REPOS_ROOT/leap_client/relnotes.txt $TEMPLATE_BUNDLE + +# cp joint_chglog to TEMPLATE_BUNDLE + +cp $JOINT_CHANGELOG $TEMPLATE_BUNDLE/CHANGELOG.txt + +# cp LICENSE to TEMPLATE_BUNDLE + +cp $REPOS_ROOT/leap_client/LICENSE $TEMPLATE_BUNDLE/LICENSE.txt + +# clean pyc$ + +cd $TEMPLATE_BUNDLE +for i in $(find . | grep pyc$); + do + rm $i + done + +# create dmg + +TMP=/tmp/Bitmask +VOLUME_NAME=Bitmask +DMG_FILE=Bitmask-OSX-$VERSION.dmg + +rm -rf $TMP +mkdir -p $TMP +cp -R $TEMPLATE_BUNDLE/* $TMP +cp $REPOS_ROOT/leap_assets/mac/bitmask.icns $TMP/.VolumeIcon.icns +SetFile -c icnC $TMP/.VolumeIcon.icns +hdiutil create -srcfolder $TMP -volname $VOLUME_NAME -format UDRW -ov $DEST/raw-$DMG_FILE + +rm -rf $TMP +mkdir -p $TMP +hdiutil attach $DEST/raw-$DMG_FILE -mountpoint $TMP + +SetFile -a C $TMP +hdiutil detach $TMP + +rm -rf $TMP +rm -f $DEST/$DMG_FILE +hdiutil convert $DEST/raw-$DMG_FILE -format UDZO -o $DEST/$DMG_FILE +rm -f $DEST/raw-$DMG_FILE + +# go back to develop in all repos +for i in {leap_client,leap_pycommon,soledad,keymanager,leap_mail} + do + cd $REPOS_ROOT/$i + git checkout develop + done diff --git a/pkg/osx/build_bundle_from_linux.sh b/pkg/osx/build_bundle_from_linux.sh new file mode 100644 index 00000000..c98e1b7a --- /dev/null +++ b/pkg/osx/build_bundle_from_linux.sh @@ -0,0 +1,84 @@ +REPOS_ROOT=$1 +VERSION=$2 +TEMPLATE_BUNDLE=$3 +JOINT_CHANGELOG=$4 +DEST=$5 + +# clean template + +rm $TEMPLATE_BUNDLE/CHANGELOG.txt +rm $TEMPLATE_BUNDLE/relnotes.txt +rm -rf $TEMPLATE_BUNDLE/Bitmask.app/Contentes/MacOS/apps/leap +rm $TEMPLATE_BUNDLE/Bitmask.app/Contentes/MacOS/lib/leap/{common,keymanager,soledad,mail} + +# checkout VERSION in all repos + +for i in {leap_client,leap_pycommon,soledad,keymanager,leap_mail} + do + cd $REPOS_ROOT/$i + git checkout $VERSION + done + +# make ui in client + +cd $REPOS_ROOT/leap_client +make + +# cp client + +cp -r $REPOS_ROOT/leap_client/src/leap $TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/apps/leap + +# setup sdist client + +cd $REPOS_ROOT/leap_client +python setup.py sdist + +# extract $VERSION and copy _version.py to TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/apps/leap/bitmask/_version.py + +cd dist +rm -rf leap.bitmask-$VERSION +tar xzf leap.bitmask-$VERSION.tar.gz +cp leap.bitmask-$VERSION/src/leap/bitmask/_version.py $TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/apps/leap/bitmask/_version.py +cp leap.bitmask-$VERSION/src/leap/bitmask/util/reqs.txt $TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/apps/leap/bitmask/util/reqs.txt + +# cp common, soledad(client and common), mail and keymanager in TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/lib/leap/ + +LEAP_LIB=$TEMPLATE_BUNDLE/Bitmask.app/Contents/MacOS/lib/leap/ + +cp -r $REPOS_ROOT/leap_pycommon/src/leap/common $LEAP_LIB +cp -r $REPOS_ROOT/soledad/common/src/leap/soledad $LEAP_LIB +cp -r $REPOS_ROOT/soledad/client/src/leap/soledad/client $LEAP_LIB/soledad +cp -r $REPOS_ROOT/leap_mail/src/leap/mail $LEAP_LIB +cp -r $REPOS_ROOT/keymanager/src/leap/keymanager $LEAP_LIB + +# cp relnotes to TEMPLATE_BUNDLE + +cp $REPOS_ROOT/leap_client/relnotes.txt $TEMPLATE_BUNDLE + +# cp joint_chglog to TEMPLATE_BUNDLE + +cp $JOINT_CHANGELOG $TEMPLATE_BUNDLE/CHANGELOG.txt + +# cp LICENSE to TEMPLATE_BUNDLE + +cp $REPOS_ROOT/leap_client/LICENSE $TEMPLATE_BUNDLE/LICENSE.txt + +# clean pyc$ + +cd $TEMPLATE_BUNDLE +for i in $(find . | grep pyc$); + do + rm $i + done + +# create dmg + +genisoimage -D -V "Bitmask" -no-pad -r -apple -o raw-Bitmask-OSX-$VERSION.dmg $TEMPLATE_BUNDLE +dmg dmg raw-Bitmask-OSX-$VERSION.dmg Bitmask-OSX-$VERSION.dmg + +# go back to develop in all repos +for i in {leap_client,leap_pycommon,soledad,keymanager,leap_mail} + do + cd $REPOS_ROOT/$i + git checkout develop + done -- cgit v1.2.3