GLib cross-platform runtime relocation support (was Re: Glib: a Win32 discussion)



At 07.04.2011 02:26, Paul Davis wrote:
On Wed, Apr 6, 2011 at 5:34 PM, Kean Johnston<kean johnston gmail com>  wrote:

Last, but by no means least, is the reliance on "compiled" files, like
compiled schemas (or in the case of Gtk, icon caches). On UNIX systems where
things are installed in a universally-accessible location, this isn't a
problem, but on Win32, where multiple applications could all include their
own private copies of the DLL's, this is a problem. Fixing this is a bit

the same thing applies to anyone who wants to make a relocatable Unix
"bundle". i've demonstrated that this is entirely possible even
without any win32-style mechanisms, although it breaks when GSettings
has been used by the desktop to specify modules that GTK should load
which are not included in the bundle. the new binary-only packages of
Ardour3 use the bag of tricks i've come up with to make GTK, Glib,
Gdk-Pixbuf and Pango all find files inside the bundle in preference to
any outside of it.
This set of functionality is supported for Gtk+/win32 from quite the beginning. Of course it uses win32 specific APIs to calculate the pathes at runtime.

it doesn't require any changes to glib, or gtk etc,
but the app has to do some stuff. see fixup_bundle_environment() (the
OS X or linux cases) here:

http://subversion.ardour.org/svn/ardour2/branches/3.0/gtk2_ardour/main.cc

This code looks similar to what is done in GLib/Pango/Gtk+/Dia ...
Maybe it is time to provide a cross-platform GLib API to simplify it?

-------- Hans "at" Breuer "dot" Org -----------
Tell me what you need, and I'll tell you how to
get along without it.                -- Dilbert


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]