[PATCH wayland-web] building: Update the XDG_RUNTIME_DIR section for shell usage
Quentin Glidic
sardemff7+wayland at sardemff7.net
Fri Jun 14 01:30:26 PDT 2013
From: Quentin Glidic <sardemff7+git at sardemff7.net>
Signed-off-by: Quentin Glidic <sardemff7+git at sardemff7.net>
---
building.html | 54 ++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 40 insertions(+), 14 deletions(-)
diff --git a/building.html b/building.html
index d4b0ab5..1eed935 100644
--- a/building.html
+++ b/building.html
@@ -157,29 +157,55 @@ pixman.</p>
$ make && make install
</pre>
-<h2>$XDG_RUNTIME_DIR</h2>
+
+<h2><code>$XDG_RUNTIME_DIR</code></h2>
<p>Weston creates its unix socket file (for example, wayland-0)
in the directory specified by the required environment variable
-$XDG_RUNTIME_DIR . Clients use the same variable to find that socket.
-This is provided by Fedora using systemd.
+<code>$XDG_RUNTIME_DIR</code> . Clients use the same variable to find that
+socket. This is provided using systemd by some distributions (Fedora,
+<a href="https://www.archlinux.org/news/systemd-tools-replaces-udev/">Arch
+since June 2012</a> or Exherbo).
<a href="https://bugs.launchpad.net/ubuntu/+source/pam-xdg-support/+bug/894391">Ubuntu began providing it in Quantal.</a>
-<a href="https://www.archlinux.org/news/systemd-tools-replaces-udev/">Arch began providing it with systemd in June 2012.</a>
It is not provided by Gentoo.
-If you are using a distro that does not set $XDG_RUNTIME_DIR for you, do:
+</p>
+<p>
+If you are using a distro that does set <code>$XDG_RUNTIME_DIR</code> for you,
+you can skipthis part. Otherwise, you must set it using your shell profile
+capability.
+</p>
+<p>
+First, please read your shell manual to use the correct file. Some shells will
+read multiple files (Zshell), others will pick the first available one ignoring
+the others (Bash). <code>~/.profile</code> is generally a good guess, for most
+Bourne-shell compatible shells, <code>~/.zprofile</code> is the Zshell
+equivalent. You should use the profile file if there is any, otherwise the
+login file will do the trick.
+</p>
+<p>
+We will use <code>/tmp</code> as the base to put our
+<code>$XDG_RUNTIME_DIR</code> in. Since <code>/tmp</code> can be a tmpfs, and
+thus wiped on restart, we should take care of creating it when we need it. Also,
+if you share your computer between several users, you must take care of using a
+unique <code>$XDG_RUNTIME_DIR</code> for each one. We will also check if the
+variable is already set. This way, if your system start providing it, you will
+use it directly. It is also useful if you want to use your profile file on
+different systems.
+<br>
+Here is the code to put in your shell profile file (it is Bourne-shell
+compatible, feel free to adapt it to your shell’s internals):
</p>
-<pre> $ mkdir /tmp/wayland
- $ chmod 0700 /tmp/wayland
- $ su -c 'echo XDG_RUNTIME_DIR=/tmp/wayland >> /etc/environment'
+<pre>
+if test -z "${XDG_RUNTIME_DIR}"; then
+ export XDG_RUNTIME_DIR=/tmp/${UID}-runtime-dir
+ if ! test -d "${XDG_RUNTIME_DIR}"; then
+ mkdir "${XDG_RUNTIME_DIR}"
+ chmod 0700 "${XDG_RUNTIME_DIR}"
+ fi
+fi
</pre>
-<p>
-Using PAM like this involves some security concerns,
-and may break things. Don't forget to undo it. (<a
-href="https://bugs.freedesktop.org/show_bug.cgi?id=61877">Relevant
-bug.</a>)
-</p>
<h2>Weston and demo applications</h2>
--
1.8.3
More information about the wayland-devel
mailing list