From 2fed9a35cd84419449ae91dea512266bd5609122 Mon Sep 17 00:00:00 2001 From: Dilawar Singh <dilawars@ncbs.res.in> Date: Sun, 26 Jun 2016 14:40:01 +0530 Subject: [PATCH] Added packaging script for mac. --- packaging_scripts/HOWTO_MAC.md | 18 ++ .../build_dmg_image_using_brew.sh | 177 +++++++++++ .../build_dmg_without_package_managers.sh | 293 ++++++++++++++++++ packaging_scripts/build_using_xcode.sh | 14 + packaging_scripts/cmake_sanity_check.py | 87 ++++++ packaging_scripts/moose_icon_64x64.png | Bin 0 -> 3575 bytes packaging_scripts/moose_icon_large.png | Bin 0 -> 58871 bytes packaging_scripts/release_dmg_file.sh | 106 +++++++ 8 files changed, 695 insertions(+) create mode 100644 packaging_scripts/HOWTO_MAC.md create mode 100755 packaging_scripts/build_dmg_image_using_brew.sh create mode 100755 packaging_scripts/build_dmg_without_package_managers.sh create mode 100755 packaging_scripts/build_using_xcode.sh create mode 100755 packaging_scripts/cmake_sanity_check.py create mode 100644 packaging_scripts/moose_icon_64x64.png create mode 100644 packaging_scripts/moose_icon_large.png create mode 100755 packaging_scripts/release_dmg_file.sh diff --git a/packaging_scripts/HOWTO_MAC.md b/packaging_scripts/HOWTO_MAC.md new file mode 100644 index 00000000..79d1d93e --- /dev/null +++ b/packaging_scripts/HOWTO_MAC.md @@ -0,0 +1,18 @@ +This document describes how to create DMG package on MAC OSX. + +1. Run `./build_dmg_image_using_brew.sh` + +- This script create an empty dmg file. +- Mount it on /Volume/Moose_3.0.2 +- Install brew in it with prefix /Volumes/Moose_3.0.2 and `brew install moose` + with given prefix. +- It also adds an `moosegui` script which launches gui and also setup PYTHONPATH + in ~/.bash_profile. + +2. Run `./release_dmg_file.sh` + +- Copy the dmg created in step 1 and mount it. +- Remove unneccessay files `brew uninstall cmake gcc`. This saves us approx 400 + MB. +- Create another dmg file from folder and compress it. +- Compress this dmg file and test it on some MAC. diff --git a/packaging_scripts/build_dmg_image_using_brew.sh b/packaging_scripts/build_dmg_image_using_brew.sh new file mode 100755 index 00000000..bf0b350b --- /dev/null +++ b/packaging_scripts/build_dmg_image_using_brew.sh @@ -0,0 +1,177 @@ +#!/bin/bash + +echo "||NOTICE +If you are using this script on MacOSX 10.11.2, be careful about the following +error: + illegal instruction: 4 +I could get everything working fine on MacOSX- 10.8 +" + +set -x +set -e + +CURRDIR=`pwd` + +# Unset any enviroment PYTHONPATH. They can confuse us. +unset PYTHONPATH +PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin +export HOMEBREW_BUILD_FROM_SOURCE=YES + +## This is not needed. Forgot why I put it here in first place. +#CFLAGS+=-march=native + +APPNAME="Moose" +VERSION="3.0.2" +MAC_NAME=`sw_vers -productVersion` +PKGNAME="${APPNAME}_${VERSION}" + +VOLNAME="${PKGNAME}" + +### SAFETY +set +e +echo "|| Detaching possibly attached disk" +hdiutil detach /Volumes/${PKGNAME} +set -e + +DMGFILELABEL="${PKGNAME}" +THISDIR=`pwd` + +# create the temp DMG file +STAGING_DIR=_Install +DMG_TMP="${PKGNAME}-${MAC_NAME}_BREWED.dmg" +mkdir -p ${STAGING_DIR} + +if [ ! -f "${DMG_TMP}" ]; then + ## NOTE: When building MOOGLI, size should be at least 1 GB. + hdiutil create -srcfolder "${STAGING_DIR}" -volname "${PKGNAME}" \ + -format UDRW -size 1.5G "${DMG_TMP}" +else + echo "DMG file $DMG_TMP exists. Mounting ..." +fi + +# TODO +# mount it and save the device +DEVICE=$(hdiutil attach -readwrite -noverify "${DMG_TMP}" | \ + egrep '^/dev/' | sed 1q | awk '{print $1}') + +############################# EXIT gacefully ################################ +# Traps etc +# ALWAYS DETACH THE DEVICE BEFORE EXITING... +function detach_device +{ + hdiutil detach "${DEVICE}" + exit +} +trap detach_device SIGINT SIGTERM SIGKILL + +sleep 1 + +echo "Install whatever you want now" +BREW_PREFIX="/Volumes/${VOLNAME}" +BREW=$BREW_PREFIX/bin/brew +export PATH=${BREW_PREFIX}/bin:$PATH +( + cd $BREW_PREFIX + if [ ! -f $BREW_PREFIX/bin/brew ]; then + curl -L https://github.com/Homebrew/homebrew/tarball/master | \ + tar xz --strip 1 -C $BREW_PREFIX + else + echo "[I] Brew exists. Not installing" + fi + echo "Copying moose.rb and moogli.rb" + cp $CURRDIR/../macosx/*.rb $BREW_PREFIX/Library/Formula/ + + # This even works without python. + ## NOTE: DO NOT install matplotlib using brew unless also installing python + ## using brew. Since we are going to uninstall later, use pip to install + ## matplotlib and numpy. + $BREW -v install homebrew/python/matplotlib --with-pyqt + $BREW -v install homebrew/python/numpy + $BREW link --overwrite matplotlib + $BREW -v install homebrew/science/hdf5 + $BREW -v install moose --with-gui | tee "$CURRDIR/__brew_moose_log__" + # Set home of Qt4, openscenegraph etc. + # Install python-gobject + $BREW -v install gobject-introspection --env=std --with-head + export QT_HOME=$BREW_PREFIX + export OSG_HOME=$BREW_PREFIX + export PYQT_HOME=$BREW_PREFIX + $BREW -v install moogli | tee "$CURRDIR/__brew_moogli__log__" + # Lets not depends on system level libraries. Install all dependencies. + $BREW_PREFIX/bin/pip install suds-jurko --upgrade + $BREW_PREFIX/bin/pip install networkx + # Do not use pip to install matplotlib. It does not work. + + ## Tests + set -e + export PYTHONPATH=$BREW_PREFIX/lib/python2.7/site-packages + python -c 'import moose' + python -c 'import moogli' + python -c 'import matplotlib' + $BREW_PREFIX/bin/python -c 'import six' + set +e + + # Also write script to launch the moosegui. + MOOSEPATH=${BREW_PREFIX}/lib/python2.7/site-packages + cat > $BREW_PREFIX/moosegui <<EOF +#!/bin/bash +touch \$HOME/.bash_profile +source \$HOME/.bash_profile +if [[ "\${PYTHONPATH}" == *"${MOOSEPATH}"* ]]; then + echo "[INFO] PYTHONPATH aleady contains ${MOOSEPATH}" +else + # Also write to .bash_profile, so that we can use it. + echo "[INFO] Adding ${MOOSEPATH} to PYTHONPATH" + echo "export PYTHONPATH=${MOOSEPATH}:\$PYTHONPATH" >> \$HOME/.bash_profile + source \$HOME/.bash_profile +fi +# make sure that for current runtime, we have correct path. +export PYTHONPATH=${MOOSEPATH}:\$PYTHONPATH +exec ${BREW_PREFIX}/bin/moosegui +EOF + chmod a+x $BREW_PREFIX/moosegui +) + +################ COPY THE .app ########################################## +## DO NOT USE APP BUNDLE. +## Use simple shell script to launch moose. +###echo "|| Copying the APP to directory" +####cp -rpf "${APPNAME}.app" "$BREW_PREFIX" +###APPEXE="${APPNAME}.app/Contents/MacOS/${APPNAME}" +###mkdir -p `dirname $APPEXE` +#### create the executable. +###cat > ${APPEXE} <<-EOF +####!/bin/bash +###${BREW_PREFIX}/bin/moosegui +###EOF +###chmod +x ${APPEXE} + +################ INSTALL THE ICON ######################################## +DMG_BACKGROUND_IMG="${CURRDIR}/moose_icon_large.png" +# Check the background image DPI and convert it if it isn't 72x72 +_BACKGROUND_IMAGE_DPI_H=`sips -g dpiHeight ${DMG_BACKGROUND_IMG} | grep -Eo '[0-9]+\.[0-9]+'` +_BACKGROUND_IMAGE_DPI_W=`sips -g dpiWidth ${DMG_BACKGROUND_IMG} | grep -Eo '[0-9]+\.[0-9]+'` + +if [ $(echo " $_BACKGROUND_IMAGE_DPI_H != 72.0 " | bc) -eq 1 -o $(echo " $_BACKGROUND_IMAGE_DPI_W != 72.0 " | bc) -eq 1 ]; then + echo "WARNING: The background image's DPI is not 72." + echo "This will result in distorted backgrounds on Mac OS X 10.7+." + echo "I will convert it to 72 DPI for you." + _DMG_BACKGROUND_TMP="${DMG_BACKGROUND_IMG%.*}"_dpifix."${DMG_BACKGROUND_IMG##*.}" + sips -s dpiWidth 72 -s dpiHeight 72 ${DMG_BACKGROUND_IMG} --out ${_DMG_BACKGROUND_TMP} + DMG_BACKGROUND_IMG="${_DMG_BACKGROUND_TMP}" +fi + +echo "TODO. Now resize and compress using hdiutil" +echo "|| use: hdiutil convert a.dmg -format UDBZ -o b.dmg" + +#### TODO: Resize the harddisk and compress it for distribution if tests are OK. +##set +e +##DISKSIZE=`du -sh /Volumes/"${VOLNAME}"` +##echo "Overall disk size is $DISKSIZE" +##echo "|| Blowing up brew cache" +##rm -rf `${BREW_PREFIX}/bin/brew --cache` +## +##DISKSIZE=`du -sh /Volumes/"${VOLNAME}"` + +## Finally detach the device +detach_device diff --git a/packaging_scripts/build_dmg_without_package_managers.sh b/packaging_scripts/build_dmg_without_package_managers.sh new file mode 100755 index 00000000..d729d42a --- /dev/null +++ b/packaging_scripts/build_dmg_without_package_managers.sh @@ -0,0 +1,293 @@ +#!/bin/bash + +echo "||NOTICE +If you are using this script on MacOSX 10.11.2, be careful about the following +error: + illegal instruction: 4 +I could get everything working fine on MacOSX- 10.8 +" + +set -x +set -e + +CURRDIR=`pwd` + +# Unset any enviroment PYTHONPATH. They can confuse us. +unset PYTHONPATH + +echo "|WARN| Unsetting PATH" +unset PATH +export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin + +APPNAME="Moose" +VERSION="3.0.2" +MAC_NAME=`sw_vers -productVersion` +PKGNAME="${APPNAME}_${VERSION}" + +VOLNAME="${PKGNAME}" + +### SAFETY +set +e +echo "|| Detaching possibly attached disk" +hdiutil detach /Volumes/${PKGNAME} +set -e + +DMGFILELABEL="${PKGNAME}" +THISDIR=`pwd` + +# create the temp DMG file +STAGING_DIR=_Install +DMG_TMP="${PKGNAME}-${MAC_NAME}_LOCAL.dmg" +mkdir -p ${STAGING_DIR} + +SIZE=1G +echo "|| Creating dmg file of $SIZE size" +if [ ! -f "${DMG_TMP}" ]; then + hdiutil create -srcfolder "${STAGING_DIR}" -volname "${PKGNAME}" \ + -format UDRW -size $SIZE "${DMG_TMP}" +else + echo "DMG file $DMG_TMP exists. Mounting ..." +fi + +# TODO +# mount it and save the device +DEVICE=$(hdiutil attach -readwrite -noverify "${DMG_TMP}" | \ + egrep '^/dev/' | sed 1q | awk '{print $1}') + +############################# EXIT gacefully ################################ +# Traps etc +# ALWAYS DETACH THE DEVICE BEFORE EXITING... +function detach_device +{ + hdiutil detach "${DEVICE}" + exit +} +trap detach_device SIGINT SIGTERM SIGKILL + +sleep 1 + +echo "Install whatever you want now" +PORT_PREFIX="/Volumes/${VOLNAME}" +PYTHONPREFIX=$PORT_PREFIX/pymodules +export PATH=${PORT_PREFIX}/bin:$PATH +( + WORKDIR=$CURRDIR/_work + mkdir -p $WORKDIR + cd $PORT_PREFIX + ## NOTICE: Try to build using Xcode. + + # 1. Get cmake and install it to cmake/bin + CMAKE_BIN=$PORT_PREFIX/cmake/bin/cmake + if [ -f $CMAKE_BIN ]; then + echo "|| cmake is available at $CMAKE_BIN " + else + echo "No $CMAKE_BIN found. Building one" + cd $WORKDIR + curl -O https://cmake.org/files/v3.3/cmake-3.3.2.tar.gz + tar xvf cmake-3.3.2.tar.gz + cd cmake-3.3.2 || ls -l + ./bootstrap + ./configure --prefix=$PORT_PREFIX/cmake + make -j3 + make install + cd $PORT_PREFIX + fi + + # 2. Install moose-full using cmake. + MOOSE_PREFIX=$PORT_PREFIX/moose + export PYTHONPATH=$PYTHONPREFIX/lib/python2.7/site-packages + if python -c 'import moose'; then + echo "|STATUS| MOOSE is installed and could be imported" + else + cd $WORKDIR + if [ ! -d moose-full ]; then + echo "Cloning moose-full" + git clone --depth 1 https://github.com/BhallaLab/moose-full + fi + set -e + cd moose-full + mkdir -p _build && cd _build + $CMAKE_BIN -DCMAKE_INSTALL_PREFIX=$MOOSE_PREFIX .. + make -j3 + # Override the install step. + cd ../moose-core/python + python setup.py install --prefix=$PYTHONPREFIX + python -c 'import moose' + set +e + cd $WORKDIR + cd .. + fi + + # 3. Let's get Qt4 + QTPREFIX=$PORT_PREFIX/qt4.8 + mkdir -p $QTPREFIX + ( + mkdir -p $QTPREFIX/bin/ + if [ ! -f $QTPREFIX/bin/qmake ]; then + echo "|| Trying to install qt" + cd $WORKDIR + QTDIR="qt" + if [ ! -d "$QTDIR" ]; then + git clone --depth 1 https://github.com/qtproject/qt + else + echo "|| qt is already downloaded." + #cd qt && git clean -fxd && cd .. + fi + cd $QTDIR + # Delete all license files so qt it does not prompt us to accept + # license. + ./configure -opensource -stl -no-qt3support \ + -confirm-license -nomake examples -nomake demos \ + -prefix $QTPREFIX + make -j3 + make install + else + echo "||| Qt seems to be installed. Here are the list of libs" + ls -lh "$QTPREFIX/lib" + fi + ) + + # 4. Install SIP + SIPPREFIX=$PORT_PREFIX/sip + mkdir -p $SIPPREFIX + if python -c 'import sip'; then + echo "|| SIP is installed" + else + ( + cd $WORKDIR + # Thought of trying this version as it is indicated to work with pyqt4. + SIPHEAD=4.17 + if [ ! -f sip-$SIPHEAD.tar.gz ] ; then + rm -f sip-$SIPHEAD.tar.gz + echo "|| Downloading SIP" + curl -L -O "https://sourceforge.net/projects/pyqt/files/sip/sip-4.15.5/sip-4.15.5.tar.gz" + else + echo "|| SIP is already downloaded and unarchived" + fi + + tar xvf sip-$SIPHEAD.tar.gz + + cd sip-$SIPHEAD + echo "|| installing sip" + python configure.py -b $SIPPREFIX/bin \ + -d $PYTHONPATH \ + -e $SIPPREFIX/include \ + -v $SIPPREFIX/include/sip + make + ( cd siplib && python -c 'import sip' ) + make install + ) + fi + + # 5. Install PyQt4. + + ( + if python -c 'from PyQt4 import pyqtconfig'; then + echo "|| PyQt4 already installed" + exit 1 + fi + + cd $WORKDIR + QTVERSION="4.11.4" + if [ ! -d PyQt-mac-gpl-$QTVERSION ]; then + echo "|| Downloading PyQt4" + curl -L -O "https://www.sourceforge.net/projects/pyqt/files/PyQt4/PyQt-$QTVERSION/PyQt-mac-gpl-$QTVERSION.tar.gz" + tar xvf PyQt-mac-gpl-$QTVERSION.tar.gz + else + echo "|| Already PyQt4 downloaded" + fi + cd PyQt-mac-gpl-$QTVERSION + export PATH=$QTPREFIX/bin:$PATH:$SIPPREFIX/bin + echo "||| sip: `which sip`" + #--sip-incdir=$SIPPREFIX/include \ + python configure.py --confirm-license \ + -b $PYTHONPREFIX/bin \ + -d $PYTHONPATH \ + -v $PYQT4PREFIX/sip + make -j3 + make install + ) + + # Install osg + OSGPREFIX=$PORT_PREFIX/osg + ( + if [ -f $OSGPREFIX/lib/libosg.dylib ]; then + echo "||| Looks like osg is installed. Heres the libraries" + ls $OSGPREFIX/lib + #exit + fi + cd $WORKDIR + OSG_VERSION=3.2.3 + if [ ! -f OpenSceneGraph-$OSG_VERSION.zip ]; then + echo "|| Downloading OSG - $OSG_VERSION" + curl -O http://trac.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.2.3.zip + else + echo "||| OSG $OSG_VERSION is already downloaded" + fi + if [ ! -d OpenSceneGraph-$OSG_VERSION ]; then + echo "|||| Unzipping " + unzip OpenSceneGraph-$OSG_VERSION.zip + fi + cd OpenSceneGraph-$OSG_VERSION + mkdir -p _build + cd _build + export QTDIR=$QTPREFIX + $CMAKE_BIN -DDESIRED_QT_VERSION=4 -DCMAKE_INSTALL_PREFIX=$OSGPREFIX .. + make -j4 + make install + ) + + # Now finally moogli. + MOOGLI_PREFIX=$PORT_PREFIX/moogli + ( + export DYLD_FALLBACK_FRAMEWORK_PATH=$QTPREFIX/lib + export DYLD_LIBRARY_PATH=$OSGPREFIX/lib + if python -c 'import moogli'; then + echo "Seems like moogli is already installed" + exit + fi + + cd $WORKDIR + if [ ! -d moogli ]; then + git clone --depth 1 --branch macosx https://github.com/BhallaLab/moogli + else + echo "||| moogli is already downloaded" + fi + cd moogli + export QT_HOME=$QTPREFIX + export OSG_HOME=$OSGPREFIX + export PYQT_HOME=$PYTHONPATH/PyQt4 + ( CFLAGS="-m64" CXXFLAGS="" OPT="" ARCHFLAGS="-arch x86_64" python setup.py build ) + if python -c 'import moogli'; then + CFLAGS="-m64" CXXFLAGS="" OPT="" ARCHFLAGS="-arch x86_64" \ + python setup.py install --prefix=$PYTHONPATH + # Also copy the _moogli.so, to be sure. distutils behaves oddly. + cp moogli/core/_moogli.so $PYTHONPATH/moogli/core/_moogli.so + else + echo "|| Loading of module is failing." + fi + ) + + ##||| Install startup scripts. + MOOSEPATH=${PORT_PREFIX}/lib/python2.7/site-packages + cat > $PORT_PREFIX/moosegui <<EOF +#!/bin/bash +touch \$HOME/.bash_profile +source \$HOME/.bash_profile +if [[ "\${PYTHONPATH}" == *"${MOOSEPATH}"* ]]; then + echo "[INFO] PYTHONPATH aleady contains ${MOOSEPATH}" +else + # Also write to .bash_profile, so that we can use it. + echo "[INFO] Adding ${MOOSEPATH} to PYTHONPATH" + echo "export PYTHONPATH=${MOOSEPATH}:\$PYTHONPATH" >> \$HOME/.bash_profile + source \$HOME/.bash_profile +fi +# make sure that for current runtime, we have correct path. +export PYTHONPATH=${MOOSEPATH}:\$PYTHONPATH +exec ${PORT_PREFIX}/bin/moosegui +EOF + chmod a+x $PORT_PREFIX/moosegui +) + +## Finally detach the device +detach_device diff --git a/packaging_scripts/build_using_xcode.sh b/packaging_scripts/build_using_xcode.sh new file mode 100755 index 00000000..311c7562 --- /dev/null +++ b/packaging_scripts/build_using_xcode.sh @@ -0,0 +1,14 @@ +#!/bin/bash +( + mkdir -p _build_macosx_ + cd _build_macosx_ + PROJECT=Moose.xcodeproj + cmake -G "Xcode" .. + xcodebuild -list + xcodebuild clean -project $PROJECT -configuration Release -alltargets + xcodebuild archive -project $PROJECT -configuration Release \ + -scheme moose.bin \ + -archivePath Moose.xcarhive + xcodebuild -exportArchive -archivePath Moose.xcarhive -exportPath Moose \ + -exportFormat pkg +) diff --git a/packaging_scripts/cmake_sanity_check.py b/packaging_scripts/cmake_sanity_check.py new file mode 100755 index 00000000..e39e6d8a --- /dev/null +++ b/packaging_scripts/cmake_sanity_check.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python +"""cmake_sanity_check.py: Check if Cmake files are ok. + +Last modified: Sat Jan 18, 2014 05:01PM + +""" + +__author__ = "Dilawar Singh" +__copyright__ = "Copyright 2013, Dilawar Singh and NCBS Bangalore" +__credits__ = ["NCBS Bangalore"] +__license__ = "GNU GPL" +__version__ = "1.0.0" +__maintainer__ = "Dilawar Singh" +__email__ = "dilawars@ncbs.res.in" +__status__ = "Development" + +import sys +import os +import re +from collections import defaultdict + +makefiles = {} +cmakefiles = {} +makedirs = set() +cmakedirs = set() + +def check(d): + searchMakefiles(d) + checkMissingCMake() + checkSrcs() + +def checkMissingCMake(): + if (makedirs - cmakedirs): + print("[Failed] Test 1") + print("Following directories have Makefile but not a CMakeFiles.txt file.") + print("%s" % "\t\n".join(makedirs - cmakedirs)) + +def searchMakefiles(d): + for d, subd, fs in os.walk(d): + if "CMakeLists.txt" in fs: + cmakedirs.add(d) + cmakefiles[d] = fs + if "Makefile" in fs: + makedirs.add(d) + makefiles[d] = fs + else: pass + +def checkSrcs(): + objPat = re.compile(r"\w+\.o") + srcPat = re.compile(r"\w+\.cpp") + srcs = [] + csrcs = [] + for d in makefiles: + with open(os.path.join(d, "Makefile"), "r") as f: + txt = f.read() + srcs = objPat.findall(txt) + try: + with open(os.path.join(d, "CMakeLists.txt"), "r") as f: + txt = f.read() + csrcs = srcPat.findall(txt) + except: + print("Dir {} does not have CMakeLists.txt".format(d)) + csrcs = [] + #print("[TEST 2] Checking if CMake is creating extra objects") + for csr in csrcs: + objName = csr.replace(".cpp", ".o") + if objName in srcs: + pass + else: + #print(" Failed: In dir {}, CMake is creating extra object {}".format(d, objName)) + + pass + print("[TEST 3] Checking if CMake is missing some objects") + for obj in srcs: + srcName = obj.replace(".o", ".cpp") + if srcName in csrcs: pass + else: + print(" Failed: In dir {}, CMake is missing object {}".format(d, + srcName)) + +def main(): + dir = sys.argv[1] + check(dir) + + +if __name__ == '__main__': + main() diff --git a/packaging_scripts/moose_icon_64x64.png b/packaging_scripts/moose_icon_64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..270f5aa4fe31501e11b8e47b7777a43334309d6c GIT binary patch literal 3575 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 literal 0 HcmV?d00001 diff --git a/packaging_scripts/moose_icon_large.png b/packaging_scripts/moose_icon_large.png new file mode 100644 index 0000000000000000000000000000000000000000..ab8a1f041a97b9ed4bff0e0e34b41e10ecb795d0 GIT binary patch literal 58871 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 literal 0 HcmV?d00001 diff --git a/packaging_scripts/release_dmg_file.sh b/packaging_scripts/release_dmg_file.sh new file mode 100755 index 00000000..a3ad35dd --- /dev/null +++ b/packaging_scripts/release_dmg_file.sh @@ -0,0 +1,106 @@ +#!/bin/bash +set -x + +BREW_PREFIX=/Volumes/Moose_3.0.2 +function test_installation +{ + echo "||||||||| TEST STEP" + export PYTHONPATH=$BREW_PREFIX/lib/python2.7/site-packages + python -c 'import moose' + python -c 'import moogli' + python -c 'import matplotlib; import numpy' + python -c 'import networkx as nx' +} + +LABEL=Moose_3.0.2 + +# Not all build dependencies are required at runtime. Lets just disable them. +DMGFILE="$1" +if [ ! $DMGFILE ]; then + echo "USAGE: $0 dmg_file" + exit +fi + +TEMPDMG="$DMGFILE"_temp.dmg +rm -f $TEMPDMG +cp $DMGFILE $TEMPDMG + +echo "|| Detaching dmg file" +hdiutil detach /Volumes/$LABEL + +echo "|| Mouting DMG file" +hdiutil attach $TEMPDMG + +( + echo "Removing the temp files" + cd /Volumes/$LABEL + du -sh /Volumes/$LABEL + # One command in each line, else if one fails everyoone fails. + ./bin/brew uninstall cmake + ./bin/brew uninstall gcc + ./bin/brew uninstall python + ./bin/brew uninstall wget + ./bin/brew uninstall pkg-config + ./bin/brew uninstall sqlite + + rm -rf include + test_installation + rm -rf Frameworks + test_installation + rm -rf Library + test_installation + rm -rf etc + test_installation + rm -rf var + test_installation + ( + cd Cellar/qt/4.8* + rm -rf *.app + rm -rf bin + rm -rf tests + rm -rf plugins + rm -rf mkspecs + rm -rf translations + rm -rf Frameworks + ) + test_installation + + # Delete all folders named include and share and doc + find . -type d -name "include" -print0 | xargs -0 -I d rm -rf d + test_installation + find . -type d -name "share" -print0 | xargs -0 -I d rm -rf d + test_installation + find . -type d -name "doc" -print0 | xargs -0 -I d rm -rf d + test_installation + find . -type d -name "tests" -not -path "*/networkx/*" -print0 | xargs -0 -I d rm -rf d + test_installation + + # Remove all *.a + find . -name "*.a" -exec rm -rf \{} \; + find . -name "*.html" -exec rm -rf \{} \; + find . -name "*.pdf" -exec rm -rf \{} \; + find . -name "*.md" -exec rm -rf \{} \; + test_installation + + # Adding license. + curl -O https://gnu.org/licenses/gpl.txt + mv gpl.txt LICENSE.txt + + du -sh /Volumes/$LABEL +) + +# Create another image from this folder. +OUTFILE="$DMGFILE"_RW.dmg +rm -f $OUTFILE +hdiutil create -volname $LABEL -srcfolder /Volumes/$LABEL \ + -ov -format UDRW "$OUTFILE" + +ls -lh *.dmg + +echo "|| Detaching .." +hdiutil detach /Volumes/$LABEL + +echo "|| Compressing " +rm -f "$LABEL"_OSX.dmg +hdiutil convert "$OUTFILE" -format UDBZ -o "$LABEL"_OSX.dmg + -- GitLab