mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-11 11:31:29 +00:00
61066b9ea9
This updates the bundle to include the mime.cache and a library that somehow isn't picked up by the bundle tool. It also updates the README on how all this is supposed to work and puts some of the automation into the existing shell script. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
77 lines
2.7 KiB
Text
77 lines
2.7 KiB
Text
Creating a Subsurface bundle
|
|
============================
|
|
|
|
(we now have a small shell script that should automate this process;
|
|
look for make-package.sh)
|
|
|
|
After you build Subsurface and install it on your Mac
|
|
|
|
make install-macosx
|
|
|
|
you need gtk-mac-bundler (this has been tested with version 0.7.3); run
|
|
|
|
$ gtk-mac-bundler subsurface.bundle
|
|
|
|
This should install an almost self-contained Subsurface application under
|
|
./staging/Subsurface.app
|
|
|
|
Sadly because of the way gettext accesses the gtk20.mo file, this fails
|
|
for localized use - so I ended up building 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 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
|
|
|
|
Next you should sign your binaries if you plan to use them 10.8 (or later).
|
|
|
|
Then you can use git://github.com/dirkhh/yoursway-create-dmg.git to create
|
|
a DMG (use the readlink-fix branch - unless this has been pulled into the
|
|
main project by the time you read this).
|
|
|
|
Here is roughly how I run this to create the official DMG
|
|
|
|
~/yoursway-create-dmg/create-dmg --background ./Subsurface-Background.png \
|
|
--window-size 500 300 --icon-size 96 \
|
|
--volname "Subsurface-${VERSION}" --app-drop-link 380 205 \
|
|
--volicon ~/subsurface/packaging/macosx/Subsurface.icns \
|
|
--icon "Subsurface" 110 205 ./Subsurface-${VERSION}.dmg ./staging
|
|
|
|
The --volicon doesn't appear to work for me even though it does create the
|
|
correct file in the DMG. I'm leaving it in here to remind me to
|
|
investigate this issue.
|
|
|
|
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=/Applications/Subsurface.app/Contents/Resources
|
|
as well.
|