summaryrefslogtreecommitdiffstats
path: root/packaging
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2012-10-21 13:38:19 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2012-10-21 13:40:35 -0700
commit79d204dde8dcab285d705cbfc76bf4bcafd5cb4a (patch)
tree8805dcdd31eba2251b3f022785231990b9a52cec /packaging
parentb1dbdf63228026f84450d445a960155a0529dd44 (diff)
downloadsubsurface-79d204dde8dcab285d705cbfc76bf4bcafd5cb4a.tar.gz
Add quick script to automate Mac dmg creation
This basically automates what is documented in the README Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'packaging')
-rw-r--r--packaging/macosx/README8
-rwxr-xr-xpackaging/macosx/make-package.sh29
2 files changed, 35 insertions, 2 deletions
diff --git a/packaging/macosx/README b/packaging/macosx/README
index c2c6caaef..47d49661c 100644
--- a/packaging/macosx/README
+++ b/packaging/macosx/README
@@ -1,6 +1,9 @@
Creating a Subsurface bundle
============================
+(we now have a small shell script that should automate this process;
+ look for make-package.sh)
+
install gtk-mac-bundler (this has been tested with version 0.7.0) and run
$ gtk-mac-bundler subsurface.bundle
@@ -19,6 +22,7 @@ Worse, gtk-mac-bundler misses fails to catch the .so files that
are part of the gdk-pixbuf loader infrastructure. So we need to
manually adjust the load paths in them:
+cd packaging/macosx/staging/Subsurface.app/Contents
for i in Resources/lib/gdk-pixbuf-2.0/2.10.0/loaders/* ; do \
~/gtk-mac-bundler/bundler/run-install-name-tool-change.sh $i \
/Applications/Subsurface.app/Contents/Resources Resources change ; \
@@ -26,12 +30,12 @@ done
Finally, you need to change the IDs of the libraries:
-cd packagin/macosx/staging/Subsurface.app/Contents
for i in Resources/lib/*.dylib; do install_name_tool -id "@executable_path/../$i" $i; done
You still need to manually build a DMG if you want to easily distribute this.
- hdiutil create -volname Subsurface -srcfolder staging Subsurface-<version>.dmg
+cd ../../..
+hdiutil create -volname Subsurface -srcfolder staging Subsurface-<version>.dmg
Caveats
-------
diff --git a/packaging/macosx/make-package.sh b/packaging/macosx/make-package.sh
new file mode 100755
index 000000000..328e73454
--- /dev/null
+++ b/packaging/macosx/make-package.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+#
+# this simply automates the steps to create a DMG we can ship
+# for this to work you need to have a custom build of MacPorts / gtk / etc
+# with prefix=/Applications/Subsurface.app/Contents/Resources
+# yes, that's a major hack, but otherwise gettext cannot seem to find
+# the gtk related .mo files and localization is only partial
+#
+# run this from the packaging/macosx directory
+
+VERSION=`grep -1 CFBundleVersionString Info.plist | tail -1 | cut -d\> -f 2 | cut -d\< -f 1`
+BUNDLER="../../../.local/bin/gtk-mac-bundler"
+
+${BUNDLER} subsurface.bundle
+cd staging/Subsurface.app/Contents
+for i in Resources/lib/gdk-pixbuf-2.0/2.10.0/loaders/* ; do
+ ~/gtk-mac-bundler/bundler/run-install-name-tool-change.sh $i /Applications/Subsurface.app/Contents/Resources Resources change ;
+done
+for i in Resources/lib/*.dylib;
+do
+ install_name_tool -id "@executable_path/../$i" $i
+done
+
+cd ../../..
+if [ -f Subsurface-${VERSION}.dmg ]; then
+ mv Subsurface-${VERSION}.dmg Subsurface-${VERSION}.dmg.bak
+fi
+hdiutil create -volname Subsurface -srcfolder staging Subsurface-${VERSION}.dmg
+