Commit c7dbaa1c authored by Pekka Paalanen's avatar Pekka Paalanen

Revert "client: require WAYLAND_DISPLAY to be set"

This reverts commit fb7e1302.

Developers have been trying to reduce the number of by default required
environment variables, and the mentioned commit is a step backwards in
that sense. The fundamental assumption is that a user has only one main
(Wayland) display server where all programs should connect to by
default, and do so with an a priori known socket name.

The commit also broke various use cases in the wild, some accidentally
due to other causes, some intentionally. This revert allows those use
cases to continue.

The original problem of running Weston in a window in an existing GNOME
X11 session and getting applications unintentionally launched into
Weston can be circumvented by letting Weston use a non-default socket
name, leaving wayland-0 unused.

Discussion:
http://lists.freedesktop.org/archives/wayland-devel/2015-August/023927.html
http://lists.freedesktop.org/archives/wayland-devel/2015-August/023937.html

Cc: Dima Ryazanov <dima@gmail.com>
Cc: Giulio Camuffo <giuliocamuffo@gmail.com>
Cc: Daniel Stone <daniel@fooishbar.org>
Cc: Jasper St. Pierre <jstpierre@mecheye.net>
Cc: Ryo Munakata <ryomnktml@gmail.com>
Cc: Ray Strode <halfline@gmail.com>
Cc: Peter Hutterer <peter.hutterer@who-t.net>
Cc: Matthias Clasen <mclasen@redhat.com>
Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
Acked-by: Ray Strode's avatarRay Strode <rstrode@redhat.com>
Acked-by: Dima Ryazanov's avatarDima Ryazanov <dima@gmail.com>
Reviewed-by: 's avatarBryce Harrington <bryce@osg.samsung.com>
Acked-By: 's avatarSjoerd Simons <sjoerd.simons@collabora.co.uk>
Acked-By: 's avatarRyo Munakata <ryomnktml@gmail.com>
Acked-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
parent c0636ddc
......@@ -57,8 +57,9 @@
that was previously opened by a Wayland server. The server socket must
be placed in <envar>XDG_RUNTIME_DIR</envar> for this function to
find it. The <varname>name</varname> argument specifies the name of
the socket or <constant>NULL</constant> to use the default
(which is the value of <envar>WAYLAND_DISPLAY</envar>). If
the socket or <constant>NULL</constant> to use the default (which is
<constant>"wayland-0"</constant>). The environment variable
<envar>WAYLAND_DISPLAY</envar> replaces the default value. If
<envar>WAYLAND_SOCKET</envar> is set, this function behaves like
<function>wl_display_connect_to_fd</function> with the file-descriptor
number taken from the environment variable.</para>
......
......@@ -60,10 +60,10 @@
<title>Wire Format</title>
<para>
The protocol is sent over a UNIX domain stream socket, where the endpoint
name is determined by the <emphasis>WAYLAND_DISPLAY</emphasis>
environment variable. Its value will usually be
<systemitem class="service">wayland-0</systemitem>. The protocol is message-based.
A message sent by a client to the server is called request. A message
usually is named <systemitem class="service">wayland-0</systemitem>
(although it can be changed via <emphasis>WAYLAND_DISPLAY</emphasis>
in the environment). The protocol is message-based. A
message sent by a client to the server is called request. A message
from the server to a client is called event. Every message is
structured as 32-bit words, values are represented in the host's
byte-order.
......
......@@ -764,11 +764,8 @@ connect_to_socket(const char *name)
if (name == NULL)
name = getenv("WAYLAND_DISPLAY");
if (name == NULL) {
wl_log("error: WAYLAND_DISPLAY not set in the environment.\n");
errno = ENOENT;
return -1;
}
if (name == NULL)
name = "wayland-0";
fd = wl_os_socket_cloexec(PF_LOCAL, SOCK_STREAM, 0);
if (fd < 0)
......@@ -872,7 +869,8 @@ wl_display_connect_to_fd(int fd)
* \return A \ref wl_display object or \c NULL on failure
*
* Connect to the Wayland display named \c name. If \c name is \c NULL,
* its value will be replaced with the WAYLAND_DISPLAY environment variable.
* its value will be replaced with the WAYLAND_DISPLAY environment
* variable if it is set, otherwise display "wayland-0" will be used.
*
* \memberof wl_display
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment