subsurface/packaging/macosx/README

59 lines
2 KiB
Text
Raw Normal View History

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
This should install a self-contained Subsurface application under
./staging/Subsurface.app
Sadly because of the way gettext accesses the gtk20.mo file, this fails
for localized use - in that case you need to rebuild MacPorts with
-prefix /Applications/Subsurface.app/Contents/Resources
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:
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 ; \
done
Finally, you need to change the IDs of the libraries:
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.
cd ../../..
hdiutil create -volname Subsurface -srcfolder staging Subsurface-<version>.dmg
Caveats
-------
* You need (at least with MacPorts) to build pango like this:
$ sudo port install pango +builtin_modules +no_x11 +quartz
Without the builtin modules the installed application fails to find the modules and doesn't render any text.
Also note the comment above about the -prefix
* It seems that gtk-mac-bundler expects the charset.alias file to be
in the ${prefix}/lib folder which it isn't with the current version of
MacPorts. The following fixes that:
$ sudo cp /usr/lib/charset.alias /opt/local/lib
* libdivecomputer needs to be configured with --with-prefix=/opt/local
(or /Applications/Subsurface.app/Contents/Resources for localized builds)