diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2012-10-21 13:38:19 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2012-10-21 13:40:35 -0700 |
commit | 79d204dde8dcab285d705cbfc76bf4bcafd5cb4a (patch) | |
tree | 8805dcdd31eba2251b3f022785231990b9a52cec /packaging | |
parent | b1dbdf63228026f84450d445a960155a0529dd44 (diff) | |
download | subsurface-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/README | 8 | ||||
-rwxr-xr-x | packaging/macosx/make-package.sh | 29 |
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 + |