#!/usr/bin/env bash
+set -e
+set -u
+
# This script is to package the Cura package for Windows/Linux and Mac OS X
# This script should run under Linux and Mac OS X, as well as Windows with Cygwin.
##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-RC7
-TARGET_DIR=Cura-${BUILD_NAME}-${BUILD_TARGET}
-##Revision
-export REVISION=1.19
+
+##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
##Which CuraEngine to use
-if [ -z ${CURA_ENGINE_REPO} ] ; then
- CURA_ENGINE_REPO="git@github.com:alephobjects/CuraEngine.git"
+if [ -z ${CURA_ENGINE_REPO:-} ] ; then
+ CURA_ENGINE_REPO="https://code.alephobjects.com/diffusion/CE/curaengine.git"
fi
#############################
echo "$0 debian_armhf"
echo "$0 darwin"
echo "$0 freebsd"
+ echo "$0 fedora # current system"
+ echo "$0 fedora \"mock_config_file\" ... # different system(s)"
exit 0
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
+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
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
cd ..
# Create sparse image for distribution
- hdiutil detach /Volumes/Cura\ -\ Lulzbot/
+ 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
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
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
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
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 -Zgzip --build ${BUILD_TARGET} $(dirname ${TARGET_DIR})/cura_${BUILD_NAME}-${REVISION}-${GIT_HASH}_i386.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
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
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 -Zgzip --build ${BUILD_TARGET} $(dirname ${TARGET_DIR})/cura_${BUILD_NAME}-${REVISION}-${GIT_HASH}_amd64.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
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
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
+#############################
+# Fedora Generic
+#############################
+
+function sanitiseVersion() {
+ local _version="$1"
+ echo "${_version//-/.}"
+}
+
+function fedoraCreateSRPM() {
+ local _curaName="$1"
+ local _version="$(sanitiseVersion "$2")"
+ local _srcSpecFile="$3"
+ local _srcSpecFileRelease="$4"
+ local _dstSrpmDir="$5"
+
+ local _dstTarSources="$HOME/rpmbuild/SOURCES/$_curaName-$_version.tar.gz"
+ local _dstSpec="$HOME/rpmbuild/SPECS/$_curaName-$_version.spec"
+
+ local _namePower="Power"
+ local _nameCuraEngine="CuraEngine"
+
+ gitClone "https://github.com/GreatFruitOmsk/Power" "$_namePower"
+ gitClone "$CURA_ENGINE_REPO" "$_nameCuraEngine"
+
+ cd "$_namePower"
+ local _gitPower="$(git rev-list -1 HEAD)"
+ cd -
+
+ cd "$_nameCuraEngine"
+ local _gitCuraEngine="$(git rev-list -1 HEAD)"
+ cd -
+
+ local _gitCura="$(git rev-list -1 HEAD)"
+
+ rpmdev-setuptree
+
+ rm -fv "$_dstTarSources"
+ tar \
+ --exclude-vcs \
+ --transform "s#^#$_curaName-$_version/#" \
+ -zcvf "$_dstTarSources" \
+ "$_nameCuraEngine" \
+ "$_namePower" \
+ Cura \
+ resources \
+ plugins \
+ scripts/linux/cura.py \
+ scripts/linux/fedora/usr
+
+ sed \
+ -e "s#__curaName__#$_curaName#" \
+ -e "s#__version__#$_version#" \
+ -e "s#__gitCura__#$_gitCura#" \
+ -e "s#__gitCuraEngine__#$_gitCuraEngine#" \
+ -e "s#__gitPower__#$_gitPower#" \
+ -e "s#__basedir__#scripts/linux/fedora#" \
+ "$_srcSpecFile" \
+ > "$_dstSpec"
+
+ rpmbuild -bs "$_dstSpec"
+
+ mkdir -pv "$_dstSrpmDir"
+ cp -v \
+ "$HOME/rpmbuild/SRPMS/$_curaName-$_version-$_srcSpecFileRelease.src.rpm" \
+ "$_dstSrpmDir"
+}
+
+function buildFedora() {
+ local _nameForRpm="Cura"
+ local _versionForRpm="$(sanitiseVersion "$BUILD_VERSION")"
+
+ #
+ # SRPM
+ #
+
+ local _srcSpecFile="scripts/linux/fedora/rpm.spec"
+ local _srcSpecFileRelease="$(rpmspec -P "$_srcSpecFile" | grep -E '^Release:'|awk '{print $NF}')"
+ local _dstSrpmDir="scripts/linux/fedora/SRPMS"
+
+ fedoraCreateSRPM \
+ "$_nameForRpm" \
+ "$_versionForRpm" \
+ "$_srcSpecFile" \
+ "$_srcSpecFileRelease" \
+ "$_dstSrpmDir"
+
+ #
+ # RPM
+ #
+
+ local _srpmFile="$_dstSrpmDir/$_nameForRpm-$_versionForRpm-$_srcSpecFileRelease.src.rpm"
+ local _dstRpmDir="scripts/linux/fedora/RPMS"
+
+ while [ $# -ne 0 ]; do
+ local _mockRelease="$(basename "${1%\.cfg}")"
+ local _mockReleaseArg=""
+ if [ -n "$_mockRelease" ]; then
+ _mockReleaseArg="-r $_mockRelease"
+ fi
+
+ mkdir -pv "$_dstRpmDir/$_mockRelease"
+ mock \
+ $_mockReleaseArg \
+ --resultdir="$_dstRpmDir/$_mockRelease" \
+ "$_srpmFile"
+
+ shift 1
+ done
+}
+
+#############################
+# Fedora RPMs
+#############################
+
+if [ "$BUILD_TARGET" = "fedora" ]; then
+ shift 1 # skip "fedora" arg
+
+ if [ $# -eq 0 ]; then
+ "$0" "$BUILD_TARGET" ""
+ else
+ buildFedora "${@}"
+ fi
+
+ exit
+fi
+
#############################
# Rest
#############################
rm -rf ${TARGET_DIR}/python/Lib/OpenGL/DLLS/gle*
#Build the C++ engine
- $MAKE -C CuraEngine VERSION=${BUILD_NAME} OS=Windows_NT CXX=${CXX}
+ $MAKE -C CuraEngine VERSION=${BUILD_VERSION} OS=Windows_NT CXX=${CXX}
if [ $? != 0 ]; then echo "Failed to build CuraEngine"; exit 1; fi
fi
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
#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
+ 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_${BUILD_NAME}-${REVISION}-${GIT_HASH}.exe ./
+ 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
+ mv "`pwd`/${TARGET_DIR}" scripts/win32/dist
+ '/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_NAME}.exe ./
+ mv scripts/win32/Cura_${BUILD_VERSION}.exe ./
fi
else
echo "Archiving to ${TARGET_DIR}.tar.gz"