chiark / gitweb /
Update toolhead naming
[cura.git] / package.sh
index 4d1132b7fc0cbc0d270cb9d439e750a3c6d69491..98bed0485ce2f17f895b33baa5dc5b3eb823669b 100755 (executable)
@@ -22,15 +22,27 @@ BUILD_TARGET=${1:-none}
 ##Do we need to create the final archive
 ARCHIVE_FOR_DISTRIBUTION=1
 ##Which version name are we appending to the final archive
-export BUILD_NAME=15.01-RC8
-TARGET_DIR=Cura-${BUILD_NAME}-${BUILD_TARGET}
+
+
+##Version
+version_file="./Cura/version"
+while IFS= read -r line
+do
+    export BUILD_VERSION="$line"
+done <"$version_file"
+TARGET_DIR=Cura-${BUILD_VERSION}-${BUILD_TARGET}
+
+##Git commit
+GIT_HASH=$(git rev-parse --short=4 HEAD)
+
+export FULL_VERSION=${BUILD_VERSION}-${GIT_HASH}
 
 ##Which versions of external programs to use
-WIN_PORTABLE_PY_VERSION=2.7.2.1
+WIN_PORTABLE_PY_VERSION=2.7.6.1
 
 ##Which CuraEngine to use
 if [ -z ${CURA_ENGINE_REPO:-} ] ; then
-       CURA_ENGINE_REPO="git@github.com:Ultimaker/CuraEngine.git"
+       CURA_ENGINE_REPO="https://code.alephobjects.com/diffusion/CE/curaengine.git"
 fi
 
 #############################
@@ -63,7 +75,7 @@ function extract
 {
        echo "Extracting $*"
        echo "7z x -y $*" >> log.txt
-       7z x -y $* >> log.txt
+       $EXTRACT x -y $* >> log.txt
        if [ $? != 0 ]; then
         echo "Failed to extract $*"
         exit 1
@@ -106,6 +118,12 @@ else
        MAKE=make
 fi
 
+if [ -z `which 7za` ]; then
+       EXTRACT=7z
+else
+       EXTRACT=7za
+fi
+
 # Change working directory to the directory the script is in
 # http://stackoverflow.com/a/246128
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@@ -116,7 +134,7 @@ checkTool curl "curl: http://curl.haxx.se/"
 if [ $BUILD_TARGET = "win32" ]; then
        checkTool avr-gcc "avr-gcc: http://winavr.sourceforge.net/ "
        #Check if we have 7zip, needed to extract and packup a bunch of packages for windows.
-       checkTool 7z "7zip: http://www.7-zip.org/"
+       checkTool $EXTRACT "7zip: http://www.7-zip.org/"
        checkTool $MAKE "mingw: http://www.mingw.org/"
 fi
 #For building under MacOS we need gnutar instead of tar
@@ -130,79 +148,16 @@ fi
 # Build the required firmwares
 #############################
 
-if [ -d "C:/arduino-1.0.3" ]; then
-       ARDUINO_PATH=C:/arduino-1.0.3
-       ARDUINO_VERSION=103
-elif [ -d "/Applications/Arduino.app/Contents/Resources/Java" ]; then
-       ARDUINO_PATH=/Applications/Arduino.app/Contents/Resources/Java
-       ARDUINO_VERSION=105
-else
-       ARDUINO_PATH=/usr/share/arduino
-       ARDUINO_VERSION=105
-fi
-
-if [ ! -d "$ARDUINO_PATH" ]; then
-  echo "Arduino path '$ARDUINO_PATH' doesn't exist"
-  exit 1
-fi
-
+gitClone "https://github.com/Ultimaker/cura-binary-data" _cura_binary_data
 
-#Build the Ultimaker Original firmwares.
-gitClone git@github.com:Ultimaker/Marlin.git _UltimakerMarlin
-cd _UltimakerMarlin/Marlin
-git checkout Marlin_v1
-$MAKE -j 3 HARDWARE_MOTHERBOARD=7 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_250000 DEFINES="'VERSION_BASE=\"Ultimaker:_${BUILD_NAME}\"' 'VERSION_PROFILE=\"250000_single\"' BAUDRATE=250000 TEMP_SENSOR_1=0 EXTRUDERS=1"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=7 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_115200 DEFINES="'VERSION_BASE=\"Ultimaker:_${BUILD_NAME}\"' 'VERSION_PROFILE=\"115200_single\"' BAUDRATE=115200 TEMP_SENSOR_1=0 EXTRUDERS=1"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=7 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_Dual_250000 DEFINES="'VERSION_BASE=\"Ultimaker:_${BUILD_NAME}\"' 'VERSION_PROFILE=\"250000_dual\"' BAUDRATE=250000 TEMP_SENSOR_1=-1 EXTRUDERS=2"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=7 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_Dual_115200 DEFINES="'VERSION_BASE=\"Ultimaker:_${BUILD_NAME}\"' 'VERSION_PROFILE=\"115200_dual\"' BAUDRATE=115200 TEMP_SENSOR_1=-1 EXTRUDERS=2"
-git checkout Marlin_UM_HeatedBedUpgrade
-$MAKE -j 3 HARDWARE_MOTHERBOARD=7 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_HBK_250000 DEFINES="'VERSION_BASE=\"Ultimaker:_${BUILD_NAME}\"' 'VERSION_PROFILE=\"250000_single_HB\"' BAUDRATE=250000 TEMP_SENSOR_1=0 EXTRUDERS=1"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=7 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_HBK_115200 DEFINES="'VERSION_BASE=\"Ultimaker:_${BUILD_NAME}\"' 'VERSION_PROFILE=\"115200_single_HB\"' BAUDRATE=115200 TEMP_SENSOR_1=0 EXTRUDERS=1"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=7 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_HBK_Dual_250000 DEFINES="'VERSION_BASE=\"Ultimaker:_${BUILD_NAME}\"' 'VERSION_PROFILE=\"250000_dual_HB\"' BAUDRATE=250000 TEMP_SENSOR_1=-1 EXTRUDERS=2"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=7 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_HBK_Dual_115200 DEFINES="'VERSION_BASE=\"Ultimaker:_${BUILD_NAME}\"' 'VERSION_PROFILE=\"115200_dual_HB\"' BAUDRATE=115200 TEMP_SENSOR_1=-1 EXTRUDERS=2"
-git checkout Marlin_UM_Original_Plus
-$MAKE -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_Plus_250000 DEFINES="'VERSION_BASE=\"Ultimaker+:${BUILD_NAME}\"' 'VERSION_PROFILE=\"250000_single\"' BAUDRATE=250000 TEMP_SENSOR_1=0 EXTRUDERS=1"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_Plus_115200 DEFINES="'VERSION_BASE=\"Ultimaker+:${BUILD_NAME}\"' 'VERSION_PROFILE=\"115200_single\"' BAUDRATE=115200 TEMP_SENSOR_1=0 EXTRUDERS=1"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_Plus_Dual_250000 DEFINES="'VERSION_BASE=\"Ultimaker+:${BUILD_NAME}\"' 'VERSION_PROFILE=\"250000_dual\"' BAUDRATE=250000 TEMP_SENSOR_1=20 EXTRUDERS=2"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_UltimakerMarlin_Plus_Dual_115200 DEFINES="'VERSION_BASE=\"Ultimaker+:${BUILD_NAME}\"' 'VERSION_PROFILE=\"115200_dual\"' BAUDRATE=115200 TEMP_SENSOR_1=20 EXTRUDERS=2"
-cd -
-
-gitClone git@github.com:Ultimaker/Ultimaker2Marlin.git _Ultimaker2Marlin
-cd _Ultimaker2Marlin/Marlin
-git checkout master
-$MAKE -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_Ultimaker2 DEFINES="'STRING_CONFIG_H_AUTHOR=\"Version:_${BUILD_NAME}\"' TEMP_SENSOR_1=0 EXTRUDERS=1"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_Ultimaker2Dual DEFINES="'STRING_CONFIG_H_AUTHOR=\"Version:_${BUILD_NAME}\"' TEMP_SENSOR_1=20 EXTRUDERS=2"
-git checkout UM2go
-$MAKE -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_Ultimaker2go DEFINES="'STRING_CONFIG_H_AUTHOR=\"Version:_${BUILD_NAME}go\"' TEMP_SENSOR_1=0 EXTRUDERS=1"
-git checkout UM2extended
-$MAKE -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_Ultimaker2extended DEFINES="'STRING_CONFIG_H_AUTHOR=\"Version:_${BUILD_NAME}ex\"' TEMP_SENSOR_1=0 EXTRUDERS=1"
-$MAKE -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} BUILD_DIR=_Ultimaker2extendedDual DEFINES="'STRING_CONFIG_H_AUTHOR=\"Version:_${BUILD_NAME}ex\"' TEMP_SENSOR_1=20 EXTRUDERS=2"
-cd -
-
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_250000/Marlin.hex resources/firmware/MarlinUltimaker-250000.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_115200/Marlin.hex resources/firmware/MarlinUltimaker-115200.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_Dual_250000/Marlin.hex resources/firmware/MarlinUltimaker-250000-dual.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_Dual_115200/Marlin.hex resources/firmware/MarlinUltimaker-115200-dual.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_HBK_250000/Marlin.hex resources/firmware/MarlinUltimaker-HBK-250000.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_HBK_115200/Marlin.hex resources/firmware/MarlinUltimaker-HBK-115200.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_HBK_Dual_250000/Marlin.hex resources/firmware/MarlinUltimaker-HBK-250000-dual.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_HBK_Dual_115200/Marlin.hex resources/firmware/MarlinUltimaker-HBK-115200-dual.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_Plus_250000/Marlin.hex resources/firmware/MarlinUltimaker-UMOP-250000.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_Plus_115200/Marlin.hex resources/firmware/MarlinUltimaker-UMOP-115200.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_Plus_Dual_250000/Marlin.hex resources/firmware/MarlinUltimaker-UMOP-250000-dual.hex
-cp _UltimakerMarlin/Marlin/_UltimakerMarlin_Plus_Dual_115200/Marlin.hex resources/firmware/MarlinUltimaker-UMOP-115200-dual.hex
-cp _Ultimaker2Marlin/Marlin/_Ultimaker2/Marlin.hex resources/firmware/MarlinUltimaker2.hex
-cp _Ultimaker2Marlin/Marlin/_Ultimaker2Dual/Marlin.hex resources/firmware/MarlinUltimaker2-dual.hex
-cp _Ultimaker2Marlin/Marlin/_Ultimaker2go/Marlin.hex resources/firmware/MarlinUltimaker2go.hex
-cp _Ultimaker2Marlin/Marlin/_Ultimaker2extended/Marlin.hex resources/firmware/MarlinUltimaker2extended.hex
-cp _Ultimaker2Marlin/Marlin/_Ultimaker2extendedDual/Marlin.hex resources/firmware/MarlinUltimaker2extended-dual.hex
+cp -v _cura_binary_data/cura/resources/firmware/* resources/firmware/
 
 #############################
 # Darwin
 #############################
 
 if [ "$BUILD_TARGET" = "darwin" ]; then
-    TARGET_DIR=Cura-${BUILD_NAME}-MacOS
+    TARGET_DIR=Cura-${BUILD_VERSION}-MacOS
 
        rm -rf scripts/darwin/build
        rm -rf scripts/darwin/dist
@@ -215,11 +170,11 @@ if [ "$BUILD_TARGET" = "darwin" ]; then
        fi
 
     #Add cura version file (should read the version from the bundle with pyobjc, but will figure that out later)
-    echo $BUILD_NAME > scripts/darwin/dist/Cura.app/Contents/Resources/version
+    echo $BUILD_VERSION > scripts/darwin/dist/Cura.app/Contents/Resources/version
        rm -rf CuraEngine
        gitClone ${CURA_ENGINE_REPO} CuraEngine
     if [ $? != 0 ]; then echo "Failed to clone CuraEngine"; exit 1; fi
-       $MAKE -C CuraEngine VERSION=${BUILD_NAME}
+       $MAKE -C CuraEngine VERSION=${BUILD_VERSION}
     if [ $? != 0 ]; then echo "Failed to build CuraEngine"; exit 1; fi
        cp CuraEngine/build/CuraEngine scripts/darwin/dist/Cura.app/Contents/Resources/CuraEngine
 
@@ -235,13 +190,13 @@ if [ "$BUILD_TARGET" = "darwin" ]; then
        cd ..
 
        # Create sparse image for distribution
-       hdiutil detach /Volumes/Cura\ -\ Ultimaker/ || true
+       hdiutil detach /Volumes/Cura\ -\ Lulzbot/ || true
        rm -rf Cura.dmg.sparseimage
        hdiutil convert DmgTemplateCompressed.dmg -format UDSP -o Cura.dmg
        hdiutil resize -size 500m Cura.dmg.sparseimage
        hdiutil attach Cura.dmg.sparseimage
-       cp -a dist/Cura.app /Volumes/Cura\ -\ Ultimaker/Cura/
-       hdiutil detach /Volumes/Cura\ -\ Ultimaker
+       cp -a dist/Cura.app /Volumes/Cura\ -\ Lulzbot/Cura/
+       hdiutil detach /Volumes/Cura\ -\ Lulzbot
        hdiutil convert Cura.dmg.sparseimage -format UDZO -imagekey zlib-level=9 -ov -o ../../${TARGET_DIR}.dmg
        exit
 fi
@@ -255,7 +210,7 @@ if [ "$BUILD_TARGET" = "freebsd" ]; then
        gitClone https://github.com/GreatFruitOmsk/Power Power
        gitClone ${CURA_ENGINE_REPO} CuraEngine
     if [ $? != 0 ]; then echo "Failed to clone CuraEngine"; exit 1; fi
-       gmake -j4 -C CuraEngine VERSION=${BUILD_NAME}
+       gmake -j4 -C CuraEngine VERSION=${BUILD_VERSION}
     if [ $? != 0 ]; then echo "Failed to build CuraEngine"; exit 1; fi
        rm -rf scripts/freebsd/dist
        mkdir -p scripts/freebsd/dist/share/cura
@@ -269,7 +224,7 @@ if [ "$BUILD_TARGET" = "freebsd" ]; then
        cp scripts/freebsd/cura.desktop scripts/freebsd/dist/share/applications/
        cp scripts/freebsd/cura scripts/freebsd/dist/bin/
        cp -a Power/power scripts/freebsd/dist/share/cura/
-       echo $BUILD_NAME > scripts/freebsd/dist/share/cura/Cura/version
+       echo $BUILD_VERSION > scripts/freebsd/dist/share/cura/Cura/version
        #Create file list (pkg-plist)
        cd scripts/freebsd/dist
        find * -type f > ../pkg-plist
@@ -301,7 +256,7 @@ if [ "$BUILD_TARGET" = "debian_i386" ]; then
        gitClone https://github.com/GreatFruitOmsk/Power Power
        gitClone ${CURA_ENGINE_REPO} CuraEngine
     if [ $? != 0 ]; then echo "Failed to clone CuraEngine"; exit 1; fi
-       $MAKE -C CuraEngine VERSION=${BUILD_NAME}
+       $MAKE -C CuraEngine VERSION=${BUILD_VERSION}
     if [ $? != 0 ]; then echo "Failed to build CuraEngine"; exit 1; fi
        rm -rf scripts/linux/${BUILD_TARGET}/usr/share/cura
        mkdir -p scripts/linux/${BUILD_TARGET}/usr/share/cura
@@ -311,13 +266,13 @@ if [ "$BUILD_TARGET" = "debian_i386" ]; then
        cp -a CuraEngine/build/CuraEngine scripts/linux/${BUILD_TARGET}/usr/share/cura/
        cp scripts/linux/cura.py scripts/linux/${BUILD_TARGET}/usr/share/cura/
        cp -a Power/power scripts/linux/${BUILD_TARGET}/usr/share/cura/
-       echo $BUILD_NAME > scripts/linux/${BUILD_TARGET}/usr/share/cura/Cura/version
-       cat scripts/linux/debian_control | sed "s/\[BUILD_NAME\]/${BUILD_NAME}/" | sed 's/\[ARCH\]/i386/' > scripts/linux/${BUILD_TARGET}/DEBIAN/control
+       echo $BUILD_VERSION > scripts/linux/${BUILD_TARGET}/usr/share/cura/Cura/version
+       cat scripts/linux/debian_control | sed "s/\[BUILD_VERSION\]/${FULL_VERSION}/" | sed 's/\[ARCH\]/i386/' > scripts/linux/${BUILD_TARGET}/DEBIAN/control
        sudo chown root:root scripts/linux/${BUILD_TARGET} -R
        sudo chmod 755 scripts/linux/${BUILD_TARGET}/usr -R
        sudo chmod 755 scripts/linux/${BUILD_TARGET}/DEBIAN -R
        cd scripts/linux
-       dpkg-deb --build ${BUILD_TARGET} $(dirname ${TARGET_DIR})/cura_${BUILD_NAME}-${BUILD_TARGET}.deb
+       dpkg-deb -Zgzip --build ${BUILD_TARGET} $(dirname ${TARGET_DIR})/cura_${FULL_VERSION}_i386.deb
        sudo chown `id -un`:`id -gn` ${BUILD_TARGET} -R
        exit
 fi
@@ -331,7 +286,7 @@ if [ "$BUILD_TARGET" = "debian_amd64" ]; then
        gitClone https://github.com/GreatFruitOmsk/Power Power
        gitClone ${CURA_ENGINE_REPO} CuraEngine
     if [ $? != 0 ]; then echo "Failed to clone CuraEngine"; exit 1; fi
-       $MAKE -C CuraEngine VERSION=${BUILD_NAME}
+       $MAKE -C CuraEngine VERSION=${BUILD_VERSION}
     if [ $? != 0 ]; then echo "Failed to build CuraEngine"; exit 1; fi
        rm -rf scripts/linux/${BUILD_TARGET}/usr/share/cura
        mkdir -p scripts/linux/${BUILD_TARGET}/usr/share/cura
@@ -341,13 +296,13 @@ if [ "$BUILD_TARGET" = "debian_amd64" ]; then
        cp -a CuraEngine/build/CuraEngine scripts/linux/${BUILD_TARGET}/usr/share/cura/
        cp scripts/linux/cura.py scripts/linux/${BUILD_TARGET}/usr/share/cura/
        cp -a Power/power scripts/linux/${BUILD_TARGET}/usr/share/cura/
-       echo $BUILD_NAME > scripts/linux/${BUILD_TARGET}/usr/share/cura/Cura/version
-       cat scripts/linux/debian_control | sed "s/\[BUILD_NAME\]/${BUILD_NAME}/" | sed 's/\[ARCH\]/amd64/' > scripts/linux/${BUILD_TARGET}/DEBIAN/control
+       echo $BUILD_VERSION > scripts/linux/${BUILD_TARGET}/usr/share/cura/Cura/version
+       cat scripts/linux/debian_control | sed "s/\[BUILD_VERSION\]/${FULL_VERSION}/" | sed 's/\[ARCH\]/amd64/' > scripts/linux/${BUILD_TARGET}/DEBIAN/control
        sudo chown root:root scripts/linux/${BUILD_TARGET} -R
        sudo chmod 755 scripts/linux/${BUILD_TARGET}/usr -R
        sudo chmod 755 scripts/linux/${BUILD_TARGET}/DEBIAN -R
        cd scripts/linux
-       dpkg-deb --build ${BUILD_TARGET} $(dirname ${TARGET_DIR})/cura_${BUILD_NAME}-${BUILD_TARGET}.deb
+       dpkg-deb -Zgzip --build ${BUILD_TARGET} $(dirname ${TARGET_DIR})/cura_${FULL_VERSION}_amd64.deb
        sudo chown `id -un`:`id -gn` ${BUILD_TARGET} -R
        exit
 fi
@@ -361,7 +316,7 @@ if [ "$BUILD_TARGET" = "debian_armhf" ]; then
        gitClone https://github.com/GreatFruitOmsk/Power Power
        gitClone ${CURA_ENGINE_REPO} CuraEngine
     if [ $? != 0 ]; then echo "Failed to clone CuraEngine"; exit 1; fi
-       $MAKE -C CuraEngine VERSION=${BUILD_NAME}
+       $MAKE -C CuraEngine VERSION=${BUILD_VERSION}
     if [ $? != 0 ]; then echo "Failed to build CuraEngine"; exit 1; fi
        rm -rf scripts/linux/${BUILD_TARGET}/usr/share/cura
        mkdir -p scripts/linux/${BUILD_TARGET}/usr/share/cura
@@ -371,13 +326,13 @@ if [ "$BUILD_TARGET" = "debian_armhf" ]; then
        cp -a CuraEngine/build/CuraEngine scripts/linux/${BUILD_TARGET}/usr/share/cura/
        cp scripts/linux/cura.py scripts/linux/${BUILD_TARGET}/usr/share/cura/
        cp -a Power/power scripts/linux/${BUILD_TARGET}/usr/share/cura/
-       echo $BUILD_NAME > scripts/linux/${BUILD_TARGET}/usr/share/cura/Cura/version
-       cat scripts/linux/debian_control | sed "s/\[BUILD_NAME\]/${BUILD_NAME}/" | sed 's/\[ARCH\]/armhf/' > scripts/linux/${BUILD_TARGET}/DEBIAN/control
+       echo $BUILD_VERSION > scripts/linux/${BUILD_TARGET}/usr/share/cura/Cura/version
+       cat scripts/linux/debian_control | sed "s/\[BUILD_VERSION\]/${FULL_VERSION}/" | sed 's/\[ARCH\]/armhf/' > scripts/linux/${BUILD_TARGET}/DEBIAN/control
        sudo chown root:root scripts/linux/${BUILD_TARGET} -R
        sudo chmod 755 scripts/linux/${BUILD_TARGET}/usr -R
        sudo chmod 755 scripts/linux/${BUILD_TARGET}/DEBIAN -R
        cd scripts/linux
-       dpkg-deb --build ${BUILD_TARGET} $(dirname ${TARGET_DIR})/cura_${BUILD_NAME}-${BUILD_TARGET}.deb
+       dpkg-deb --build ${BUILD_TARGET} $(dirname ${TARGET_DIR})/cura_${BUILD_VERSION}-${BUILD_TARGET}.deb
        sudo chown `id -un`:`id -gn` ${BUILD_TARGET} -R
        exit
 fi
@@ -452,7 +407,7 @@ function fedoraCreateSRPM() {
 
 function buildFedora() {
   local _nameForRpm="Cura"
-  local _versionForRpm="$(sanitiseVersion "$BUILD_NAME")"
+  local _versionForRpm="$(sanitiseVersion "$BUILD_VERSION")"
 
   #
   # SRPM
@@ -484,7 +439,9 @@ function buildFedora() {
     fi
 
     mkdir -pv "$_dstRpmDir/$_mockRelease"
-    mock \
+    # Need to use /usr/bin/mock because depending on $PATH, if /usr/sbin/mock is
+    # run instead, it will give an error.
+    /usr/bin/mock \
       $_mockReleaseArg \
       --resultdir="$_dstRpmDir/$_mockRelease" \
       "$_srpmFile"
@@ -520,9 +477,7 @@ fi
 if [ $BUILD_TARGET = "win32" ]; then
        #Get portable python for windows and extract it. (Linux and Mac need to install python themselfs)
        downloadURL http://ftp.nluug.nl/languages/python/portablepython/v2.7/PortablePython_${WIN_PORTABLE_PY_VERSION}.exe
-       downloadURL http://sourceforge.net/projects/pyserial/files/pyserial/2.5/pyserial-2.5.win32.exe
        downloadURL http://sourceforge.net/projects/pyopengl/files/PyOpenGL/3.0.1/PyOpenGL-3.0.1.win32.exe
-       downloadURL http://sourceforge.net/projects/numpy/files/NumPy/1.6.2/numpy-1.6.2-win32-superpack-python2.7.exe
        downloadURL http://videocapture.sourceforge.net/VideoCapture-0.9-5.zip
        #downloadURL http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20120927-git-13f0cd6-win32-static.7z
        downloadURL http://sourceforge.net/projects/comtypes/files/comtypes/0.6.2/comtypes-0.6.2.win32.exe
@@ -549,12 +504,8 @@ if [ $BUILD_TARGET = "win32" ]; then
        fi
        
        #For windows extract portable python to include it.
-       extract PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/App
-       extract PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/Lib/site-packages
-       extract pyserial-2.5.win32.exe PURELIB
+       extract PortablePython_${WIN_PORTABLE_PY_VERSION}.exe App
        extract PyOpenGL-3.0.1.win32.exe PURELIB
-       extract numpy-1.6.2-win32-superpack-python2.7.exe numpy-1.6.2-sse2.exe
-       extract numpy-1.6.2-sse2.exe PLATLIB
        extract VideoCapture-0.9-5.zip VideoCapture-0.9-5/Python27/DLLs/vidcap.pyd
        #extract ffmpeg-20120927-git-13f0cd6-win32-static.7z ffmpeg-20120927-git-13f0cd6-win32-static/bin/ffmpeg.exe
        #extract ffmpeg-20120927-git-13f0cd6-win32-static.7z ffmpeg-20120927-git-13f0cd6-win32-static/licenses
@@ -563,24 +514,28 @@ if [ $BUILD_TARGET = "win32" ]; then
 
        mkdir -p ${TARGET_DIR}/python
        mkdir -p ${TARGET_DIR}/Cura/
-       mv \$_OUTDIR/App/* ${TARGET_DIR}/python
-       mv \$_OUTDIR/Lib/site-packages/wx* ${TARGET_DIR}/python/Lib/site-packages/
-       mv PURELIB/serial ${TARGET_DIR}/python/Lib
+       mv App/Lib/site-packages/ PURELIB/
+       mv App/* ${TARGET_DIR}/python
+       mkdir -p ${TARGET_DIR}/python/Lib/site-packages/
+       mv PURELIB/site-packages/setuptools* PURELIB/site-packages/site.py PURELIB/site-packages/easy_install.py ${TARGET_DIR}/python/Lib/site-packages/
+       mv PURELIB/site-packages/numpy* ${TARGET_DIR}/python/Lib/site-packages/
+       mv PURELIB/site-packages/serial* ${TARGET_DIR}/python/Lib/site-packages/
+       mv PURELIB/site-packages/pyserial* ${TARGET_DIR}/python/Lib/site-packages/
+       mv PURELIB/site-packages/wx* ${TARGET_DIR}/python/Lib/site-packages/
        mv PURELIB/OpenGL ${TARGET_DIR}/python/Lib
        mv PURELIB/comtypes ${TARGET_DIR}/python/Lib
-       mv PLATLIB/numpy ${TARGET_DIR}/python/Lib
        mv Power/power ${TARGET_DIR}/python/Lib
        mv VideoCapture-0.9-5/Python27/DLLs/vidcap.pyd ${TARGET_DIR}/python/DLLs
        #mv ffmpeg-20120927-git-13f0cd6-win32-static/bin/ffmpeg.exe ${TARGET_DIR}/Cura/
        #mv ffmpeg-20120927-git-13f0cd6-win32-static/licenses ${TARGET_DIR}/Cura/ffmpeg-licenses/
        mv Win32/EjectMedia.exe ${TARGET_DIR}/Cura/
+       cp -a scripts/win32/nsisPlugins/libgcc_s_dw2-1.dll ${TARGET_DIR}
+       cp -a scripts/win32/nsisPlugins/libstdc++-6.dll ${TARGET_DIR}
        
        rm -rf Power/
-       rm -rf \$_OUTDIR
+       rm -rf App
        rm -rf PURELIB
-       rm -rf PLATLIB
        rm -rf VideoCapture-0.9-5
-       rm -rf numpy-1.6.2-sse2.exe
        #rm -rf ffmpeg-20120927-git-13f0cd6-win32-static
 
        #Clean up portable python a bit, to keep the package size down.
@@ -590,13 +545,18 @@ if [ $BUILD_TARGET = "win32" ]; then
        rm -rf ${TARGET_DIR}/python/tcl
        rm -rf ${TARGET_DIR}/python/Lib/test
        rm -rf ${TARGET_DIR}/python/Lib/distutils
-       rm -rf ${TARGET_DIR}/python/Lib/site-packages/wx-2.8-msw-unicode/wx/tools
-       rm -rf ${TARGET_DIR}/python/Lib/site-packages/wx-2.8-msw-unicode/wx/locale
+       rm -rf ${TARGET_DIR}/python/Lib/site-packages/wx-3.0-msw/wx/tools
+       rm -rf ${TARGET_DIR}/python/Lib/site-packages/wx-3.0-msw/wx/locale
        #Remove the gle files because they require MSVCR71.dll, which is not included. We also don't need gle, so it's safe to remove it.
        rm -rf ${TARGET_DIR}/python/Lib/OpenGL/DLLS/gle*
 
-    #Build the C++ engine
-       $MAKE -C CuraEngine VERSION=${BUILD_NAME} OS=Windows_NT CXX=${CXX}
+       # New in 2.7.6.1
+       rm -rf ${TARGET_DIR}/python/PyCharm/
+       rm -rf ${TARGET_DIR}/python/share/
+       rm -rf ${TARGET_DIR}/python/qt.conf
+
+       #Build the C++ engine
+       $MAKE -C CuraEngine VERSION=${BUILD_VERSION} OS=Windows_NT CXX=${CXX}
     if [ $? != 0 ]; then echo "Failed to build CuraEngine"; exit 1; fi
 fi
 
@@ -606,15 +566,15 @@ cp -a Cura/* ${TARGET_DIR}/Cura
 cp -a resources/* ${TARGET_DIR}/resources
 cp -a plugins/* ${TARGET_DIR}/plugins
 #Add cura version file
-echo $BUILD_NAME > ${TARGET_DIR}/Cura/version
+echo $BUILD_VERSION > ${TARGET_DIR}/Cura/version
 
 #add script files
 if [ $BUILD_TARGET = "win32" ]; then
-    cp -a scripts/${BUILD_TARGET}/*.bat $TARGET_DIR/
+    cp -a scripts/win32/cura.bat $TARGET_DIR/
     cp CuraEngine/build/CuraEngine.exe $TARGET_DIR
-       cp /usr/lib/gcc/i686-w64-mingw32/4.8/libgcc_s_sjlj-1.dll $TARGET_DIR
-    cp /usr/i686-w64-mingw32/lib/libwinpthread-1.dll $TARGET_DIR
-    cp /usr/lib/gcc/i686-w64-mingw32/4.8/libstdc++-6.dll $TARGET_DIR
+    #cp /usr/lib/gcc/i686-w64-mingw32/4.8/libgcc_s_sjlj-1.dll $TARGET_DIR
+    #cp /usr/i686-w64-mingw32/lib/libwinpthread-1.dll $TARGET_DIR
+    #cp /usr/lib/gcc/i686-w64-mingw32/4.8/libstdc++-6.dll $TARGET_DIR
 fi
 
 #package the result
@@ -629,16 +589,16 @@ if (( ${ARCHIVE_FOR_DISTRIBUTION} )); then
                        #if we have wine, try to run our nsis script.
                        rm -rf scripts/win32/dist
                        ln -sf `pwd`/${TARGET_DIR} scripts/win32/dist
-                       wine ~/.wine/drive_c/Program\ Files\ \(x86\)/NSIS/makensis.exe /DVERSION=${BUILD_NAME} scripts/win32/installer.nsi
-            if [ $? != 0 ]; then echo "Failed to package NSIS installer"; exit 1; fi
-                       mv scripts/win32/Cura_${BUILD_NAME}.exe ./
+                       wine ~/.wine/drive_c/Program\ Files\ \(x86\)/NSIS/makensis.exe /DVERSION=${BUILD_VERSION} scripts/win32/installer.nsi
+                       if [ $? != 0 ]; then echo "Failed to package NSIS installer"; exit 1; fi
+                       mv scripts/win32/Cura_${FULL_VERSION}.exe ./
                fi
                if [ -f '/c/Program Files (x86)/NSIS/makensis.exe' ]; then
                        rm -rf scripts/win32/dist
                        mv "`pwd`/${TARGET_DIR}" scripts/win32/dist
-                       '/c/Program Files (x86)/NSIS/makensis.exe' -DVERSION=${BUILD_NAME} 'scripts/win32/installer.nsi' >> log.txt
-            if [ $? != 0 ]; then echo "Failed to package NSIS installer"; exit 1; fi
-                       mv scripts/win32/Cura_${BUILD_NAME}.exe ./
+                       '/c/Program Files (x86)/NSIS/makensis.exe' -DVERSION=${BUILD_VERSION} 'scripts/win32/installer.nsi' >> log.txt
+                       if [ $? != 0 ]; then echo "Failed to package NSIS installer"; exit 1; fi
+                       mv scripts/win32/Cura_${BUILD_VERSION}.exe ./
                fi
        else
                echo "Archiving to ${TARGET_DIR}.tar.gz"