summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreode <aeon.descriptor@gmail.com>2020-11-28 21:35:38 +0000
committerDavid Faure <faure@kde.org>2020-11-28 21:35:38 +0000
commitcead5dc4a6988460df1533f624923fc5a31548c8 (patch)
tree08e46c61bc93f3c2d4837b64840e7cc26dde73d3
parent4f2884e16db35f2962d9b64312917c81be5cb54b (diff)
Standardize $HOME/.local/bin as the directory for the user-specific executables.
Based on patches by Lennart Poettering initially.
-rw-r--r--basedir/basedir-spec.xml97
1 files changed, 64 insertions, 33 deletions
diff --git a/basedir/basedir-spec.xml b/basedir/basedir-spec.xml
index 8658aa9..8b37220 100644
--- a/basedir/basedir-spec.xml
+++ b/basedir/basedir-spec.xml
@@ -1,6 +1,6 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
- ]>
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ ]>
<article id="index">
<articleinfo>
<title>XDG Base Directory Specification</title>
@@ -8,31 +8,40 @@
<pubdate>24th November 2010</pubdate>
<authorgroup>
<author>
- <firstname>Waldo</firstname>
- <surname>Bastian</surname>
- <affiliation>
- <address>
- <email>bastian@kde.org</email>
- </address>
- </affiliation>
+ <firstname>Waldo</firstname>
+ <surname>Bastian</surname>
+ <affiliation>
+ <address>
+ <email>bastian@kde.org</email>
+ </address>
+ </affiliation>
</author>
<author>
- <firstname>Ryan</firstname>
- <surname>Lortie</surname>
- <affiliation>
- <address>
- <email>desrt@desrt.ca</email>
- </address>
- </affiliation>
+ <firstname>Allison</firstname>
+ <surname>Karlitskaya</surname>
+ <affiliation>
+ <address>
+ <email>desrt@desrt.ca</email>
+ </address>
+ </affiliation>
</author>
<author>
- <firstname>Lennart</firstname>
- <surname>Poettering</surname>
- <affiliation>
- <address>
- <email>lennart@poettering.net</email>
- </address>
- </affiliation>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <affiliation>
+ <address>
+ <email>lennart@poettering.net</email>
+ </address>
+ </affiliation>
+ </author>
+ <author>
+ <firstname>Johannes</firstname>
+ <surname>Löthberg</surname>
+ <affiliation>
+ <address>
+ <email>johannes@kyriasis.com</email>
+ </address>
+ </affiliation>
</author>
</authorgroup>
</articleinfo>
@@ -75,6 +84,12 @@
</listitem>
<listitem>
<para>
+ There is a single base directory relative to which
+ user-specific executable files may be written.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
There is a set of preference ordered base directories relative to
which data files should be searched. This set of directories is defined
by the environment variable <literal>$XDG_DATA_DIRS</literal>.
@@ -107,24 +122,25 @@
</itemizedlist>
</para>
- <para>All paths set in these environment variables must be
- absolute. If an implementation encounters a relative path in any
- of these variables it should consider the path invalid and ignore
- it.</para>
+ <para>
+ All paths set in these environment variables must be
+ absolute. If an implementation encounters a relative path in any
+ of these variables it should consider the path invalid and ignore
+ it.
+ </para>
</sect1>
-
<sect1 id="variables">
<title>Environment variables</title>
<para>
<literal>$XDG_DATA_HOME</literal> defines the base directory relative to
- which user specific data files should be stored. If
+ which user-specific data files should be stored. If
<literal>$XDG_DATA_HOME</literal> is either not set or empty, a default equal to
<literal>$HOME</literal>/.local/share should be used.
</para>
<para>
<literal>$XDG_CONFIG_HOME</literal> defines the base directory relative to
- which user specific configuration files should be stored. If
+ which user-specific configuration files should be stored. If
<literal>$XDG_CONFIG_HOME</literal> is either not set or empty, a default equal to
<literal>$HOME</literal>/.config should be used.
</para>
@@ -145,6 +161,21 @@
</itemizedlist>
</para>
<para>
+ User-specific executable files may be stored in
+ <literal>$HOME</literal>/.local/bin. Distributions should ensure
+ this directory shows up in the UNIX <literal>$PATH</literal>
+ environment variable, at an appropriate place.
+ </para>
+ <para>
+ Since <literal>$HOME</literal> might be shared between systems
+ of different achitectures, installing compiled binaries to
+ <literal>$HOME</literal>/.local/bin could cause
+ problems when used on systems of differing architectures. This
+ is often not a problem, but the fact that
+ <literal>$HOME</literal> becomes partially achitecture-specific
+ if compiled binaries are placed in it should be kept in mind.
+ </para>
+ <para>
<literal>$XDG_DATA_DIRS</literal> defines the preference-ordered set of
base directories to search for data files in addition to the
<literal>$XDG_DATA_HOME</literal> base directory.
@@ -179,7 +210,7 @@
</para>
<para>
<literal>$XDG_CACHE_HOME</literal> defines the base directory relative to
- which user specific non-essential data files should be stored. If
+ which user-specific non-essential data files should be stored. If
<literal>$XDG_CACHE_HOME</literal> is either not set or empty, a default equal to
<literal>$HOME</literal>/.cache should be used.
</para>
@@ -242,7 +273,7 @@
</listitem>
<listitem>
<para>
- A user specific version of the data file may be created in
+ A user-specific version of the data file may be created in
<literal>$XDG_DATA_HOME</literal>/subdir/filename, taking into
account the default value for <literal>$XDG_DATA_HOME</literal> if
<literal>$XDG_DATA_HOME</literal> is not set.
@@ -272,7 +303,7 @@
</listitem>
<listitem>
<para>
- A user specific version of the configuration file may be created in
+ A user-specific version of the configuration file may be created in
<literal>$XDG_CONFIG_HOME</literal>/subdir/filename, taking into
account the default value for <literal>$XDG_CONFIG_HOME</literal> if
<literal>$XDG_CONFIG_HOME</literal> is not set.