Tools to create nice signed DMG

These are only useful for me, but having them in git makes my life so much
easier...

Instead of using macdeployqt to create my DMG I use the tool that I used for
Subsurface 3. This allows for much prettier DMG content as well.

Fixes #329

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2013-12-15 11:19:01 -08:00
parent 79b8e558cd
commit d3065d811a
2 changed files with 35 additions and 36 deletions

View file

@ -9,55 +9,27 @@
#
# run this from the top subsurface directory
# adjust to your install location of gtk-mac-bundler. I appear to need at
# least 0.7.2
BUNDLER=../.local/bin/gtk-mac-bundler
BUNDLER_SRC=$HOME/gtk-mac-bundler
# install location of yourway-create-dmg
DMGCREATE=../yoursway-create-dmg/create-dmg
# This is the directory into which MacPorts, libdivecomputer and all the
# other components have been installed
PREFIX=/Applications/Subsurface.app/Contents/Resources
INFOPLIST=./packaging/macosx/Info.plist
# same git version magic as in the Makefile
# for the naming of volume and dmg we don't need the "always 3 digits"
# darwin version - the 'regular' version that has 2 digits for releases
# is better
VERSION=$(./scripts/get-version linux)
# gtk-mac-bundler allegedly supports signing by setting this environment
# variable, but this fails as we change the shared objects below and all
# the signatures become invalid.
# export APPLICATION_CERT=Dirk
# force rebuilding of Info.plist
rm $INFOPLIST
# first build and install Subsurface and then clean up the staging area
sudo rm -rf ./Subsurface.app
make
make install-macosx
sudo make mac-deploy
# copy things into staging so we can create a nice DMG
rm -rf ./staging
mkdir ./staging
cp -a ./Subsurface.app ./staging
# now populate it with the bundle
$BUNDLER packaging/macosx/subsurface.bundle
# correct the paths and names
cd staging/Subsurface.app/Contents
for i in Resources/lib/gdk-pixbuf-2.0/2.10.0/loaders/*; do
$BUNDLER_SRC/bundler/run-install-name-tool-change.sh $i $PREFIX Resources change
done
for i in Resources/lib/*.dylib; do
install_name_tool -id "@executable_path/../$i" $i
done
cd ../../..
codesign -s Dirk ./staging/Subsurface.app/Contents/MacOS/subsurface \
./staging/Subsurface.app/Contents/MacOS/subsurface-bin
sudo sh ./packaging/macosx/sign
if [ -f ./Subsurface-$VERSION.dmg ]; then
rm ./Subsurface-$VERSION.dmg.bak
@ -67,5 +39,5 @@ fi
$DMGCREATE --background ./packaging/macosx/DMG-Background.png \
--window-size 500 300 --icon-size 96 --volname Subsurface-$VERSION \
--app-drop-link 380 205 \
--volicon ~/subsurface/packaging/macosx/Subsurface.icns \
--volicon ~/src/subsurface/packaging/macosx/Subsurface.icns \
--icon "Subsurface" 110 205 ./Subsurface-$VERSION.dmg ./staging