aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2012-10-20 21:06:35 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2012-10-20 21:06:35 -0700
commite6454f177302b2fd078e717b8132891629a7fe96 (patch)
tree20bcc572f80c3d97baf8f87169fa857bf5054f5e
parent3afa7c4651f37f612518df68d1170c275a58448c (diff)
downloadsubsurface-e6454f177302b2fd078e717b8132891629a7fe96.tar.gz
Finally a fully working Mac dmg
The Makefile change simply gets us the same setup with make install-macosx that we are getting from the gtk-mac-bundler - with the launcher script and subsurface installed as subsurface-bin. The changes in the README are what make the difference for getting a working dmg - there are a bunch of .so files that are part of gtk that didn't have their dependency load paths updated - and those made the application either crash or at least not display its own icon correctly. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--Makefile3
-rw-r--r--packaging/macosx/README14
2 files changed, 16 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index dd325d7d7..e02579f54 100644
--- a/Makefile
+++ b/Makefile
@@ -159,7 +159,8 @@ install: $(NAME)
install-macosx: $(NAME)
$(INSTALL) -d -m 755 $(MACOSXINSTALL)/Contents/Resources
$(INSTALL) -d -m 755 $(MACOSXINSTALL)/Contents/MacOS
- $(INSTALL) $(NAME) $(MACOSXINSTALL)/Contents/MacOS/
+ $(INSTALL) $(NAME) $(MACOSXINSTALL)/Contents/MacOS/$(NAME)-bin
+ $(INSTALL) $(MACOSXFILES)/$(NAME).sh $(MACOSXINSTALL)/Contents/MacOS/$(NAME)
$(INSTALL) $(MACOSXFILES)/PkgInfo $(MACOSXINSTALL)/Contents/
$(INSTALL) $(MACOSXFILES)/Info.plist $(MACOSXINSTALL)/Contents/
$(INSTALL) $(ICONFILE) $(MACOSXINSTALL)/Contents/Resources/
diff --git a/packaging/macosx/README b/packaging/macosx/README
index 241057fca..c2c6caaef 100644
--- a/packaging/macosx/README
+++ b/packaging/macosx/README
@@ -15,6 +15,20 @@ And then things work correctly IFF the app gets installed with that path.
What a pain.
+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:
+
+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
+
+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