[RFC] Adding /local/lib and /usr/lib to default $XDG_DATA_DIRS search path

Lennart Poettering mzkqt at 0pointer.de
Mon Apr 4 09:06:38 PDT 2011


Heya,

Right now the XDG basedir spec says that $XDG_DATA_DIRS should default
to "/usr/local/share/:/usr/share/" if it is not set. I'd like to make
one change to this: add "/usr/local/lib" and "/usr/lib" to
it. Result: "/usr/local/share:/usr/local/lib:/usr/share:/usr/lib".

Rationale: for some data files it makes sense to have machine-specific
and OS-specific versions. In systemd for example we have a number of
services that only make sense on x86, and the binaries make that clear
in their path/name. Hence we believe the service files referring to them
should also live in /usr/lib. (because if we don't have that
then different archs might have different service files in /usr/share,
which defeats the point of /usr/share, and tools like rpmlint would
start whining).

This change does not change where people should place their data files,
it just alters a little where programs should look for it, to cover the few
cases where per-arch data files are needed.

This might be useful not only for stuff like systemd, but also for other
cases. For example, if people use gdbm data files (which are
arch-depedendant), or mmap'ble data files (which are most likely also
designed to be arch-dependent).

Opinions?

Lennart

-- 
Lennart Poettering - Red Hat, Inc.


More information about the xdg mailing list