diff --git a/package/osx/make_dmg.sh b/package/osx/make_dmg.sh
index 0cd6a3867..5b06cd9f3 100755
--- a/package/osx/make_dmg.sh
+++ b/package/osx/make_dmg.sh
@@ -1,53 +1,55 @@
#!/bin/bash
+set -euo pipefail
# Assembles an installation bundle from a built copy of Slic3r.
# Requires PAR::Packer to be installed for the version of
# perl copied.
# Adapted from script written by bubnikv for Prusa3D.
# Run from slic3r repo root directory.
-SLIC3R_VERSION=$(grep "VERSION" xs/src/libslic3r/libslic3r.h | awk -F\" '{print $2}')
-
-if [ "$#" -ne 1 ]; then
- echo "Usage: $(basename $0) dmg_name"
- exit 1;
-fi
WD=$(dirname $0)
+appname=Slic3r
+
# Determine if this is a tagged (release) commit.
# Change the build id accordingly.
-if [ $(git describe &>/dev/null) ]; then
- TAGGED=true
+if [ $(git describe --exact-match &>/dev/null) ]; then
+ echo "This is a tagged build"
SLIC3R_BUILD_ID=$(git describe)
else
- TAGGED=false
- SLIC3R_BUILD_ID=${SLIC3R_VERSION}
-fi
-if [ -z ${GIT_BRANCH+x} ] && [ -z ${APPVEYOR_REPO_BRANCH+x} ]; then
- current_branch=$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!')
-else
- current_branch="unknown"
- if [ ! -z ${GIT_BRANCH+x} ]; then
- echo "Setting to GIT_BRANCH"
- current_branch=$(echo $GIT_BRANCH | cut -d / -f 2)
+ # Get the current branch
+ if [ -z ${GIT_BRANCH+x} ] && [ -z ${APPVEYOR_REPO_BRANCH+x} ]; then
+ current_branch=$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!')
+ else
+ current_branch="unknown"
+ if [ ! -z ${GIT_BRANCH+x} ]; then
+ echo "Setting to GIT_BRANCH"
+ current_branch=$(echo $GIT_BRANCH | cut -d / -f 2)
+ fi
+ if [ ! -z ${APPVEYOR_REPO_BRANCH+x} ]; then
+ echo "Setting to APPVEYOR_REPO_BRANCH"
+ current_branch=$APPVEYOR_REPO_BRANCH
+ fi
fi
- if [ ! -z ${APPVEYOR_REPO_BRANCH+x} ]; then
- echo "Setting to APPVEYOR_REPO_BRANCH"
- current_branch=$APPVEYOR_REPO_BRANCH
+
+ if [ "$current_branch" == "master" ]; then
+ echo "This is a build of the master branch"
+ SLIC3R_VERSION=$(grep "VERSION" xs/src/libslic3r/libslic3r.h | awk -F\" '{print $2}')
+ SLIC3R_BUILD_ID=${SLIC3R_VERSION}-$(git rev-parse --short HEAD)
+ else
+ echo "This is a build of a non-master branch"
+ appname=Slic3r-${current_branch}
+ SLIC3R_BUILD_ID=${current_branch}-$(git rev-parse --short HEAD)
fi
fi
+dmgfile=slic3r-${SLIC3R_BUILD_ID}.dmg
+echo "DMG filename: ${dmgfile}"
+
# If we're on a branch, add the branch name to the app name.
-if [ "$current_branch" == "master" ]; then
- appname=Slic3r
- dmgfile=slic3r-${SLIC3R_BUILD_ID}-${1}.dmg
-else
- appname=Slic3r-$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!')
- dmgfile=slic3r-${SLIC3R_BUILD_ID}-${1}-$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!').dmg
-fi
+
rm -rf $WD/_tmp
mkdir -p $WD/_tmp
-
# OSX Application folder shenanigans.
appfolder="$WD/${appname}.app"
macosfolder=$appfolder/Contents/MacOS
@@ -104,10 +106,9 @@ echo "Copying perl from $PERL_BIN"
cp -f $PERL_BIN $macosfolder/perl-local
${PP_BIN} \
-M $(grep -v "^#" ${WD}/../common/coreperl | xargs | awk 'BEGIN { OFS=" -M "}; {$1=$1; print $0}') \
- -B -p -e "print 123" -o $WD/_tmp/test.par
-unzip -o $WD/_tmp/test.par -d $WD/_tmp/
+ -B -p -e "print 123" -o $WD/_tmp/bundle.par
+unzip -o $WD/_tmp/bundle.par -d $WD/_tmp/
cp -rf $WD/_tmp/lib/* $macosfolder/local-lib/lib/perl5/
-rm -rf $WD/_tmp
echo "Cleaning bundle"
rm -rf $macosfolder/local-lib/bin
@@ -140,29 +141,31 @@ make_plist
echo $PkgInfoContents >$appfolder/Contents/PkgInfo
-if [[ -e "${KEYCHAIN_FILE}" ]]; then
+KEYCHAIN_FILE_=${KEYCHAIN_FILE:-}
+if [ ! -z $KEYCHAIN_FILE_ ]; then
echo "Signing app..."
chmod -R +w $macosfolder/*
- security list-keychains -s "${KEYCHAIN_FILE}"
- security default-keychain -s "${KEYCHAIN_FILE}"
- security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE}"
+ security list-keychains -s "${KEYCHAIN_FILE_}"
+ security default-keychain -s "${KEYCHAIN_FILE_}"
+ security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE_}"
codesign --sign "${KEYCHAIN_IDENTITY}" --deep "$appfolder"
else
echo "No KEYCHAIN_FILE env variable; skipping codesign"
fi
echo "Creating dmg file...."
-hdiutil create -fs HFS+ -srcfolder "$appfolder" -volname "$appname" "$dmgfile"
+hdiutil create -fs HFS+ -srcfolder "$appfolder" -volname "$appname" "$WD/_tmp/$dmgfile"
# Compress the DMG image
-hdiutil convert "$dmgfile" -format UDZO -imagekey zlib-level=9 -o "$dmgfile-compressed.dmg"
-mv "$dmgfile-compressed.dmg" "$dmgfile"
+hdiutil convert "$WD/_tmp/$dmgfile" -format UDZO -imagekey zlib-level=9 -o "$dmgfile"
-if [[ -e "${KEYCHAIN_FILE}" ]]; then
+if [ ! -z $KEYCHAIN_FILE_ ]; then
echo "Signing app dmg..."
chmod +w $dmgfile
- security list-keychains -s "${KEYCHAIN_FILE}"
- security default-keychain -s "${KEYCHAIN_FILE}"
- security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE}"
+ security list-keychains -s "${KEYCHAIN_FILE_}"
+ security default-keychain -s "${KEYCHAIN_FILE_}"
+ security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE_}"
codesign --sign "${KEYCHAIN_IDENTITY}" "$dmgfile"
fi
+
+rm -rf $WD/_tmp
diff --git a/package/osx/plist.sh b/package/osx/plist.sh
index 8c62d2088..331a03d01 100755
--- a/package/osx/plist.sh
+++ b/package/osx/plist.sh
@@ -18,11 +18,7 @@ cat << EOF > $plistfile
CFBundleShortVersionString
EOF
-if [ $TAGGED ]; then
- echo " Slic3r $SLIC3R_BUILD_ID" >>$plistfile
-else
- echo " Slic3r $SLIC3R_BUILD_ID-$(git rev-parse --short head)" >>$plistfile
-fi
+echo " Slic3r $SLIC3R_BUILD_ID" >>$plistfile
cat << EOF >> $plistfile
CFBundleIdentifier