[basedir-spec] XDG_DATA_HOME and reboot-preserved read-write state?

Sebastian Pipping sebastian at pipping.org
Sun Feb 7 19:47:54 UTC 2021


Hi piegames,


On 07.02.21 19:02, piegames wrote:
>> I don't see that in the spec, I just re-checked.  What makes you
>> think
>> it's read-write, more than write-once?  what part/sentences of the
>> spec are your source on that?
> 
> Well, the spec states "There is a single base directory relative to
> which user-specific data files should be written. This directory is
> defined by the environment variable $XDG_DATA_HOME." I've never heard
> of something being write-once in this context. What would that be and
> what for?

by write-once I mean the same write-once that applies to /usr/share from
a user point of view: The package manager puts things there through
packages, that's the first write for any file involved.  After that,
nothing but the package manager is supposed to replace or even change
files in /usr/share, right?  (I'm ignoring at cases without a package
manager and/or a technically immutable /usr/share here.)  That's what I
mean by "write-once".

Now the question is whether ~/.local/share has the same semantics or not
and if not, why it's called "share" then.


> Either you have the write permission or you don't and if you
> have it's up to you what and how often you write.

The root user often has write permissions to /usr/share but they are
still not supposed to write to /usr/share directly, as explained above.
 So "can" and "should" are two different pairs of shoes, no?


>> e.g. when XDG_DATA_HOME just contains regular /usr/share
>> like content that is shipped by the upstream application
> 
> I think you are misunderstanding the specification. Why should
> XDG_DATA_HOME contain this data?

For instance, because someone installed an application just to its own
user space because they cannot get root permissions or do not want to
install for every single user.


> Everything that is shipped by the
> distribution is already available in the XDG_DATA_DIRS, that's what
> they are for.

As I said: user-specific installation when system-wide installation is
not or not a good option.


> Only relevant data shall be put into XDG_DATA_HOME.

I'm not sure what "relevant" means.


>> What does it take to get a new version of basedir-spec released in
>> general — is that documented somewhere?
> 
> Great question. I've opened 
> https://gitlab.freedesktop.org/xdg/xdg-specs/-/issues/70

Cool.

Is commit a0d218ad7da9f01fc5d01867f361aecc5cd61342 considered to be the
official version 0.7?

No comment about my concern about "portable" and "important" in the
current text about XDG_STATE_HOME ?

Best



Sebastian


More information about the xdg mailing list