Summary: | Use XDG base directory instead of $HOME for .ICEauthority | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | william.jon.mccann | ||||||||
Component: | Lib/ICE | Assignee: | Xorg Project Team <xorg-team> | ||||||||
Status: | RESOLVED MOVED | QA Contact: | Xorg Project Team <xorg-team> | ||||||||
Severity: | normal | ||||||||||
Priority: | medium | CC: | cosimoc, fdsfgs, felix+freedesktop, futureisborn-gimp, Heintzmann.Eric, mariusz.libera, msanchez, simon | ||||||||
Version: | unspecified | ||||||||||
Hardware: | Other | ||||||||||
OS: | All | ||||||||||
Whiteboard: | |||||||||||
i915 platform: | i915 features: | ||||||||||
Attachments: |
|
Description
william.jon.mccann
2012-04-26 08:25:25 UTC
* ping - http://ploum.net/post/207-modify-your-application-to-use-xdg-folders - https://live.gnome.org/GnomeGoals/XDGConfigFolders What is planned about FreeDesktop.org XDG base directory specification for libice/x.org According to XDG Basedir spec, ~/.ICEauthority should be moved to $XDG_CONFIG_HOME/subdir/ICEauthority More details at : http://ploum.net/post/207-modify-your-application-to-use-xdg-folders https://live.gnome.org/GnomeGoals/XDGConfigFolders Full specification can be found at: http://standards.freedesktop.org/basedir-spec/latest/ The Freedesktop.org XDG base directory specification that have good de facto adoption. It has been adopted by - GNOME ( https://live.gnome.org/GnomeGoals/XDGConfigFolders ) - GTK+ ( https://bugzilla.gnome.org/show_bug.cgi?id=646631 ) - KDE ( http://techbase.kde.org/KDE_System_Administration/XDG_Filesystem_Hierarchy#Freedesktop.org_and_Standard_Directories ) - QT ( http://harmattan-dev.nokia.com/docs/library/html/qt4/qsettings.html#setPath ) - XFCE ( http://docs.xfce.org/xfce/xfce4-session/advanced in Files and Environment Variables ) - LXDE - Razor-qt - VLC ( https://trac.videolan.org/vlc/ticket/1267 ) - GStreamer ( https://bugzilla.gnome.org/show_bug.cgi?id=518597 ) - Chrome ( http://code.google.com/p/chromium/issues/detail?id=16976 ) - many more upstream applications - Ubuntu ( http://brainstorm.ubuntu.com/idea/6557/ & http://packages.ubuntu.com/fr/source/precise/libxdg-basedir ) - Debian ( http://packages.debian.org/squeeze/libxdg-basedir1 ) - Fedora - Suse - many more distributions 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. (In reply to comment #3) > 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. Created attachment 123726 [details] [review] Patch proposal 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. Please let me know what you think, thanks! 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? Created attachment 124536 [details] [review] authutil: fix an out-of-bounds access 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. Created attachment 124537 [details] [review] authutil: support $XDG_RUNTIME_DIR/ICEauthority 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. JFTR I do also think those additions make sense. Thanks Allison for completing the patch. Ping? I'm also interested in getting this issue addressed. What can be done to get this moving again? (In reply to simon from comment #11) > I'm also interested in getting this issue addressed. What can be done to get > this moving again? Same here. FWIW, we have been carrying around Allison's patches for a while already and it would be great if this could land upstream eventually. -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/lib/libice/issues/2. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.