mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 06:15:26 +00:00
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:
parent
79b8e558cd
commit
d3065d811a
2 changed files with 35 additions and 36 deletions
|
@ -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
|
||||
|
|
27
packaging/macosx/sign
Normal file
27
packaging/macosx/sign
Normal file
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo -- signing staging/Subsurface.app
|
||||
cd staging
|
||||
|
||||
#echo -- signing application
|
||||
#
|
||||
#codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app/Contents/MacOS/Subsurface
|
||||
|
||||
echo -- signing Qt frameworks
|
||||
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app//Contents/Frameworks/QtCore.framework/Versions/4/QtCore
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app//Contents/Frameworks/QtDeclarative.framework/Versions/4/QtDeclarative
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app//Contents/Frameworks/QtGui.framework/Versions/4/QtGui
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app//Contents/Frameworks/QtNetwork.framework/Versions/4/QtNetwork
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app//Contents/Frameworks/QtScript.framework/Versions/4/QtScript
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app//Contents/Frameworks/QtSql.framework/Versions/4/QtSql
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app//Contents/Frameworks/QtSvg.framework/Versions/4/QtSvg
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app//Contents/Frameworks/QtWebKit.framework/Versions/4/QtWebkit
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app//Contents/Frameworks/QtXml.framework/Versions/4/QtXml
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app//Contents/Frameworks/QtXmlPatterns.framework/Versions/4/QtXmlPatterns
|
||||
|
||||
echo -- signing plugins
|
||||
find ./Subsurface.app/Contents/PlugIns -name \*.dylib | xargs codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8
|
||||
|
||||
echo -- finally sign .app
|
||||
codesign --keychain /Users/hohndel/Library/Keychains/login.keychain -s 3A8CE62A483083EDEA5581A61E770EC1FA8BECE8 ./Subsurface.app
|
Loading…
Add table
Reference in a new issue