gnuradio-for-mac-without-macports
gnuradio-for-mac-without-macports copied to clipboard
GTK environment variables
To support .app relocation, GTK will need a few more environment variables in grenv.sh
Check out: https://developer.gnome.org/gtk2/stable/gtk-running.html
For example, see inside of GNURadio.app/Contents/MacOS/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
Fortunately, both GIMP and Inkscape appear to use pygtk.
In Inkscape's case, they somehow got their loaders.cache Inkscape.app/Contents/Resources/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
to use references like @loader_path/../lib/gdk-pixbuf-2.0/2.10.0/loaders/io-wmf.so
:)
I'll take a stab at this too -- perhaps just after attacking #41
To document my quest, this piece may be needed in the final solution:
zero(ttys004):...out-macports> git diff
diff --git a/build.sh b/build.sh
index 137ccb3..ab32b7c 100644
--- a/build.sh
+++ b/build.sh
@@ -1894,6 +1894,12 @@ GRPP=\${GRSHARE}/python/site-packages
PYTHONPATH=\${GRPP}:\${PYTHONPATH}
PATH=\${INSTALL_DIR}/usr/bin:/opt/X11/bin:\${PATH}
+# from "man gdk-pixbuf-query-loaders" -->
+GDK_PIXBUF_MODULE_FILE="\${INSTALL_DIR}/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
+GDK_PIXBUF_MODULEDIR="\${INSTALL_DIR}/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders"
+export GDK_PIXBUF_MODULE_FILE
+export GDK_PIXBUF_MODULEDIR
+
EOF
if [ $? -ne 0 ]; then
zero(ttys004):...out-macports>
@cfriedt A quick brain dump: Here's a summary of web pages highlighting the variety of environment variables to attack:
- https://developer.gnome.org/gtk2/stable/gtk-running.html
- https://wiki.gnome.org/Projects/GTK%2B/OSX/Bundling
- http://ascend4.org/Porting_to_Mac/gtk-mac-bundler
- Some of Inkscape's antics: https://fossies.org/linux/inkscape/packaging/macosx/osx-app.sh
I don't know if we have to include the exact mechanisms highlighted above. I was more interested in these pages to get a sense for just a list of environment variables and potential approaches we might consider.
@dholl - do you think you might be able to come up with a pull-request for this?