<div dir="ltr"><div><div><div>A direct message informed me that FreeBSD would use `/usr/local/etc/xdg` as the default for `$XDG_CONFIG_DIRS`.<br><br></div>Does anybody know how they make applications that strictly follow the XDG Base Directory specifications work fine in their system? Is FreeBSD guaranteeing the existence of the $XDG_CONFIG_DIRS?<br><br></div>I've been searching for inspiration in some open code bases, and so far, the default is FIXED in the code to `/etc/xdg`. Two examples are Emacs xdg library[1] and java-xdg[2].<br><br></div><div>Besides this, do you think it is a sane heuristic to check for $XDG_CONFIG_DIRS or /etc/xdg as explained previously?<br></div><div><br>[1] <a href="https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/xdg.el?id=0fab2649e288c7a350018293443e709eba6b0fe2#n131" target="_blank">https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/xdg.el?id=0fab2649e288c7a350018293443e709eba6b0fe2#n131</a><br>[2] <a href="https://github.com/omajid/xdg-java/blob/a6cab0e204190d65632d9f4d073093aeda074c9c/src/main/java/org/freedesktop/BaseDirectory.java#L107" target="_blank">https://github.com/omajid/xdg-java/blob/a6cab0e204190d65632d9f4d073093aeda074c9c/src/main/java/org/freedesktop/BaseDirectory.java#L107</a></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El mié, 10 abr 2024 a la(s) 9:02 p.m., Jesús Gómez (<a href="mailto:jgomo3@gmail.com" target="_blank">jgomo3@gmail.com</a>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I'm going to make a claim.<br><br></div><div>""" Your process runs in a system following XDG if the environment variable XDG_CONFIG_DIRS is defined OR the folder /etc/xdg exists.  """<br></div><div><br></div><div>Two things are essential to make that claim.  The name of the folder uses the term `xdg`.  This is different than the rules mentioning `/usr/share` or the folders at $HOME (e.g. $HOME/.config) in 2 aspects: 1, folders like `/usr/share` are not unique to systems following the XDG convention; 2, the folders at $HOME could not exists at first, and still be in a system following the conventions and so, the process could create those folders in the first place.<br><br></div><div>A test like this (if the assumptions I made are valid) could be used by applications like Clojure (my current interest) to switch between supporting or not XDG.<br><br></div><div>But first, I would like to verify that this claim makes sense to you. I would appreciate any feedback you can give me.<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El vie, 29 mar 2024 a la(s) 2:48 p.m., Jesús Gómez (<a href="mailto:jgomo3@gmail.com" target="_blank">jgomo3@gmail.com</a>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi.<br><br></div><div>I understand that the XDG_* environment variables are options for the users to customize their system, but the lack of them doesn't mean that the system is not following XDG.</div><div><br></div><div>I've been thinking about this, and the more I read the specifications, it seems to me that "Systems" don't have that responsibility and it is just an decision of the applications to follow the specifications or not.</div><div><br></div><div>I'm thinking this because of the Clojure CLI tool.  I've been discussing about this with the maintainers and there are 2 options:<br><br></div><div>1. Or Clojure could detect that the system is following the XDG specifications (even when no XDG environment variables are in place).<br></div><div>2. Define a flag at any time (installation, execution, packaging, etc., I think they will decide that part) for following these specs.<br><br></div><div>I think the more probable path is the flag, and it corresponds with the idea that the System doesn't have a responsibility to express whether it follows or not the specifications; but still, given only curiosity, I would still like to know if the Systems can publish that or if an application can detect that.<br><br></div><div>Thank you!<br></div></div>
</blockquote></div>
</blockquote></div>