Re: Relocatability of packages



On Thu, Sep 24, 1998 at 12:38:06PM +0800, James Henstridge wrote:
> Most other program files are (should be?) found using the function calls
> in libgnome/gnome-util.h.  If we defined an extra function to libgnome
> (maybe called gnome_locale_dir()), the call to bindtextdomain could be
> changed to:
>   bindtextdomain(PACKAGE, gnome_locale_dir())
> 
> With this change, dynamically linked binaries could be put in relocatable
> packages and installed to where ever a particular systems gnome
> installation is.

After going back and re-reading this, I realized that this is _not_
what you want. What you want it for packages (i.e. applications) to be
able to be installed _anywhere_, and have them find their datafiles
based on where they are installed, not based on where Gnome is
installed. This, among other things, will allow non-root users to
install apps, and it will allow Nextstep style atomic app-wrappers.

I believe Emacs uses a technique to ask the OS for the full path of
it's application binary, and then it walks up and back down the path
to find it's datafiles. This is the same kind of thing we should be
doing to let an app locate it's datafiles. For example, instead of:

/usr/local/bin/balsa
/usr/local/balsa/foo_bar_file

we would have:

<somepath>/balsa.app/balsa
                    /foo_bar_file

The program would pull it's current install path out of the full path
for the "balsa" executable. In this case it might be
"/home/jeske/mailapps/balsa.app/balsa". Then it would remove the
"balsa" from the end and use that as the base for relative access to
it's own data. (i.e. it would bindtextdomain(PACKAGE,my_app_path), or
something).

Among other things, this will allow users to install apps without
being administrator, and it will allow apps to be launched from any
location (i.e. REALLY no more location dependence).

-- 
David Jeske (N9LCA) + http://www.chat.net/~jeske/ + jeske@chat.net



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