Menu-spec update (Was: [Patch] Update 'How to' to clarify computation of datadir)

Joerg Barfurth Joerg.Barfurth at Sun.COM
Fri Mar 24 18:06:48 EET 2006

cobaco (aka Bart Cornelis) wrote:

>> This installer must be non-interactive too.
> as above, NOTE:
> - ask with debconf at medium priority, which means that only people who want 
> to be bothered with questions about settings like this will be bothered, 
> everyone else will get it placed in the first writeable XDG_*_DIR
>>   * an RPM package that can be installed on any rpm-based system. This
>> installer must be non-interactive.
> can anyone on the list confirm wether or not rpm has something similar to 
> debconf priorities?

I doesn't. RPM has no support for any kind of interactivity during 

>> This supposes we can come up with defaults that work across Linux
>> distributions...

Note that is about free desktops on any (at least free) 
system, not specifically Linux.

> first XDG_*_DIR that's writeable seems reasonable to me, sofar I haven't 
> seen anyone saying it would be unreasonable.

I think there were several arguments pointing out that this *is* 

1. The XDG_*_DIR settings are user or even session specific. Thus if you 
install according to the XDG_*_DIR settings of some administrative 
session, the chosen location may be unrelated to the XDG_*_DIR of a user 

2. A searchpath is unsuitable to define the target of an installation. 
The result would be too ill-defined. How would this deal with currently 
unavailable mount points or network shares? How to diagnose wrong 
behaviour (or even define correct behaviour), when executing an 
installation twice (by different users or with different histories) may 
lead to a different result without a visible clue (like an explicitly 
set parameter).

3. It couples two unrelated things. What should be done, if the 
XDG_*_DIR a users needs for software installation (e.g. to run some 
installation tool) is different from the XDG_*_DIR of the target user 
configuration. (This is issue 1. from a reverse angle).

This is about as unreasonable as defining that end user binaries should 
be installed into the first (writable) directory in the installing 
user's PATH.

The reasonable solutions I can see are:

A. Install into the installation prefix of the application. If that 
doesn't integrate into the global menu, then it is the responsibility of 
the sysadmin to perform that integration.

B. Do A. and then run a well defined tool (akin to update-mime-database) 
to perform the integration. Distros can customize their version of this 
tool to honor their preferred locations and/or sysadmin policy.

C. Always install into /usr/local/share. If a distro or admin chooses to 
change XDG_DATA_DIRS not to include /usr/local/share, then they 
consciously decide against automatically getting new apps into the menu. 
Arguably this is against the spirit of the FHS and prefix-oriented 
installation, because it misuses /usr/local by mixing data for /opt (or 
whereever) -installed software into this location. Usually global 
registration of a new service takes place in /etc. OTOH it has been 
common existing practice to make files globally available by installing 
(or symlinking) them into some place under /usr.

D. As a variation of the preceding: Install into the prefix and them 
symlink into /usr[/local]/share.

Joerg Barfurth           phone: +49 40 23646662 / x66662
Software Engineer        mailto:joerg.barfurth at
Desktop Technology       http://reserv.ireland/twiki/bin/view/Argus/
Thin Client Software
Sun Microsystems GmbH

More information about the xdg mailing list