Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
Admin message
The migration is almost done, at least the rest should happen in the background. There are still a few technical difference between the old cluster and the new ones, and they are summarized in this issue. Please pay attention to the TL:DR at the end of the comment.
Use XDG base directory instead of $HOME for .ICEauthority
I think that libICE/X.org should use same locations than the vast majority of Desktop environment and applications.
There are real advantages of following this specification :
a lot less cluttered $HOME
Make backups a lot more safer and easier.
Backuping your $XDG_DATA_HOME along with your files is enough
(or just excluding $XDG_CACHE_HOME)
A lot easier to reset a default configuration if you want/need it (and
without any risk to loose informations). Even for the software itself
could choose to reset $XDG_CONFIG_HOME if needed.
Avoid some strange bugs that happens because you had a old version of
some configuration file
A lot more of flexibility and portability because no path are hardcoded.
What is planned about FreeDesktop.org XDG base directory specification for
libice/x.org
There are no plans. No one has actively worked on or made plans for enhancing
libICE in years. Change would have to come from people working on designs,
bringing them to the xorg-devel mailing list, and once agreed upon, submitting
patches to implement them. Simply making long bug reports about why someone
else should do it results in no one ever doing it.
In case it's of interest for upstream, we recently came across this issue in Endless, since we realized that storing .ICEauthority under the user's home directory was particularly problematic when in ENOSPC situations, as the shell (via Mutter) would fail to notify the session manager that the shell has started due to not being able to write this file.
In this particular case, the net effect was that gnome-session, not seeing the shell's registered (even if it attempted to), would show an error dialog to the user after a 90 seconds timeout, forcing him/her to logout, even if there's no reason for it, as the shell is actually running and even present in the session bus.
To fix this issue, we decided to make libICE look for the .ICEauthority file under the XDG_RUNTIME_DIR directory instead, which works very nicely since that one is mounted in the tmpfs, and therefore unaware of the ENOSPC situation.
I realize XDG_RUNTIME_DIR is not the original proposal discussed here, but I'm attaching the patch anyway in case the project decides to merge it, or simply to spark any more discussion as needed. I particularly think it makes a lot of sense, but truth to be told I'm pretty ignorant on this domain, so who knows.
The patch here is almost perfect. The only thing I would change about it is that the filename should not have the leading dot when it is stored in the XDG_RUNTIME_DIR.
If I update the patch, is there any chance of it being accepted?
There is a theoretical edge case where the $HOME environment variable
could be set to the empty string. IceAuthFileName() unconditionally
checks index 1 of this string, which is out of bounds.
Fix that up by rejecting empty strings in the same way as we reject
NULL.
If we find that $XDG_RUNTIME_DIR is set (and $ICEAUTHORITY is not), then
the ICEauthority file is stored in the XDG_RUNTIME_DIR instead of the
home directory, and without a leading dot.