Laszlo.Peter at Sun.COM
Thu May 13 15:35:29 EEST 2004
On Wed, 2004-05-12 at 01:26, Thomas Leonard wrote:
> So, you have to set XDG_DATA_DIRS to get a fully working desktop. And once
> you've done that, the datadir workaround isn't needed anyway.
Well, my starting point was that I find it broken that I have to
set an environment variable to get a fully working desktop.
I'm looking for a solution for this, not a workaround.
Let me try another example. Say I have GNOME in /opt/gnome and
I set XDG_DATA_DIRS to /opt/gnome/share for all users who log in
through gdm. Then I download ROX-Filer and install it in /opt/rox.
ROX-Filer will find the GNOME shared data in /opt/gnome/share, but
won't find its own files. (How broken is that??)
Similarly, GNOME won't know anything about ROX-Filer's shared data.
So I have to set XDG_DATA_DIRS to /opt/gnome/share:/opt/rox/share
and everything's happy, right?
Now, what I'm proposing is this: GNOME looks for shared data
in /opt/gnome/share first, so I don't need to set XDG_DATA_DIRS.
When I install ROX-Filer, it'll find its own data files in
/opt/rox/share, but won't find GNOME's. Similarly, GNOME won't
find ROX-Filer's files. (I find this situation a lot saner.)
So what do I do?
Set XDG_DATA_DIRS to /opt/gnome/share:/opt/rox/share.
So eventually, I have to do the exact same thing to get
everything fully working. If, however, XDG_DATA_DIRS is not set,
things will still work on their own in the 2nd scenario,
just won't interoperate. In the 1st scenario, one or the other
may be completely dead.
> You're saying that the *default* behaviour should be to use *different*
> versions of a *shared* database.
Heh... yes and no.
I'm saying that each package should look for shared data in its
own prefix _first_ and then look for other apps' shared data in the
usual prefixes, unless XDG_DATA_DIRS is set.
More information about the xdg