-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Greetings, all. I'd like to start some discussion about explicitly setting sysconfdir (or confdir or whatever the package uses) back to /etc instead of letting the default prefix decide it. I'd love to hear what everyone thinks of this because it's causing me and jdolan at least a few issues. Here's the problem: XDG-compliant apps (freedesktop.org XDG stuff) look for XDG_DATA_DIRS and XDG_CONFIG_DIRS (and possibly XDG_DATA_HOME and XDG_CONFIG_HOME) in the environment and try to use those if they exist. If they do not, /etc/xdg and /usr/share are the defaults. While this doesn't sound like a problem from that small description, graveman and gnome-menus both behave badly under certain circumstances due to these. gnome-menus first: gnome-menus expects to use XDG_CONFIG_DIRS for its menu population. If the environment variables are NOT set, the default /etc/xdg is assumed and you won't see any custom menus or most of the default editable entries in gnome. If the environment variables ARE set, the menus appear correctly. But then graveman doesn't work. graveman uses XDG_DATA_DIRS for its themes/icons/whatever. That would be fine except that there seems to be a bug (posted but not yet acknowledged) in how graveman searches for these files. The port installs files in /usr/share/graveman. If the env vars are not set, these are found. If they ARE set, XDG_DATA_DIRS will be /usr/share but graveman for some reason adds the config file name to that as a directory and goes from there. So you see something like this: stat64("/usr/share/graveman/graveman.conf/themes/default/Menu-Other-48.png", 0xbfffe8a0) = -1 ENOENT (No such file or directory) It's appending "graveman.conf" to an otherwise correct XDG_DATA_DIRS+graveman location. Symlinking graveman.conf to . in /usr/share/graveman will work around this but that's ugly as hell, IMO. Openbox also uses these but it doesn't seem to care whether its XDG configs are in /usr/etc/xdg or /etc/xdg. HOWEVER, if they are in one and the env var is set to the other, menus fail to work as might be expected. So here's what I'm getting at: Why do we use /usr/etc? Is it simply because that's the default when --prefix=/usr is used? If so, does anyone object to setting --sysconfdir=/etc for those apps which honor it? This isn't really a lot of apps, it seems mostly gnome stuff. However, pango and gtk2 at least are included: jaeger::charon::/usr/etc => ls bonobo-activation gnome-lite gnopernicus-1.0 pear.conf esd.conf gnome-vfs-2.0 gtk-2.0 sound gconf gnome-vfs-mime-magic pango xdg pear, esound, pango, gtk appear to be affected but this is still a very small list. I can understand not wanting to put things in /etc that aren't vital to the running of the system but on the other hand, things are starting to fail in weird ways the more apps I install (graveman today was what really brought this to my attention, though). While it seems we can force some things to use /usr/etc/xdg instead of /etc/xdg, others just flat-out don't support a non-default location correctly, from what I'm seeing. Thoughts? - -- Matt Housh (jaeger@freenode/#crux) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCe4jnGFVQ7mavvGgRAo6nAJ9Mo9I5asQnepwu4i+OiZPpuLCXSwCfQqsp DNUfai8k/abGfnIL3hSopxk= =cS43 -----END PGP SIGNATURE-----