So, it seems like pretty much everyone agrees with this change. Could we actually get it in for the 1.9 release?
On Thu, Aug 13, 2015 at 4:47 AM, Ryo Munakata <[email protected]> wrote: > On Wed, 12 Aug 2015 19:34:31 -0700 > Dima Ryazanov <[email protected]> wrote: > > Hi Dima. > > Reviewed-by: Ryo Munakata <[email protected]> > > Thanks. > > > Although defaulting to wayland-0 seems convenient, it has an undesirable > > side effect: clients may unintentionally connect to the wrong compositor. > > Generally, it's safer to fail instead. Here's a real example: > > > > In Fedora 22, Gtk+ prefers Wayland over X11, though the default session > is still > > a normal X11 Gnome session. When you launch a Gtk+ app, it will try > Wayland, > > fail, then try X11, and succesfully start up. That works fine. > > > > Now suppose you launch Weston while running the Gnome session. Suddenly, > all > > of the Gtk+ apps launched from Gnome will show up inside Weston instead. > > That's unexpected. There's also no good way to prevent that from > happening > > (other than perhaps setting WAYLAND_DISPLAY to an invalid value when > launching > > an app). > > > > Not using wayland-0 as the default will solve that problem: an app > launched > > from the X11 Gnome session will use the X11 backend regardless of whether > > there's a wayland compositor running at the same time. > > > > Everything else should work as before. The compositor already sets > > the WAYLAND_DISPLAY when starting the session, so the lack of the > default value > > should not make a difference to the user. > > > > Signed-off-by: Dima Ryazanov <[email protected]> > > Acked-by: Pekka Paalanen <[email protected]> > > Acked-by: Giulio Camuffo <[email protected]> > > Acked-by: Daniel Stone <[email protected]> > > Acked-by: Jasper St. Pierre <[email protected]> > > --- > > doc/man/wl_display_connect.xml | 5 ++--- > > doc/publican/sources/Protocol.xml | 8 ++++---- > > src/wayland-client.c | 10 ++++++---- > > src/wayland-server.c | 6 +++--- > > 4 files changed, 15 insertions(+), 14 deletions(-) > > > > diff --git a/doc/man/wl_display_connect.xml > b/doc/man/wl_display_connect.xml > > index 7e6e05c..ded3cbd 100644 > > --- a/doc/man/wl_display_connect.xml > > +++ b/doc/man/wl_display_connect.xml > > @@ -57,9 +57,8 @@ > > 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 > > - <constant>"wayland-0"</constant>). The environment variable > > - <envar>WAYLAND_DISPLAY</envar> replaces the default value. If > > + the socket or <constant>NULL</constant> to use the default > > + (which is the value of <envar>WAYLAND_DISPLAY</envar>). 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> > > diff --git a/doc/publican/sources/Protocol.xml > b/doc/publican/sources/Protocol.xml > > index 477063b..9464953 100644 > > --- a/doc/publican/sources/Protocol.xml > > +++ b/doc/publican/sources/Protocol.xml > > @@ -60,10 +60,10 @@ > > <title>Wire Format</title> > > <para> > > The protocol is sent over a UNIX domain stream socket, where the > endpoint > > - 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 > > + 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 > > 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. > > diff --git a/src/wayland-client.c b/src/wayland-client.c > > index 09c594a..ffbca4b 100644 > > --- a/src/wayland-client.c > > +++ b/src/wayland-client.c > > @@ -764,8 +764,11 @@ connect_to_socket(const char *name) > > > > if (name == NULL) > > name = getenv("WAYLAND_DISPLAY"); > > - if (name == NULL) > > - name = "wayland-0"; > > + if (name == NULL) { > > + wl_log("error: WAYLAND_DISPLAY not set in the > environment.\n"); > > + errno = ENOENT; > > + return -1; > > + } > > > > fd = wl_os_socket_cloexec(PF_LOCAL, SOCK_STREAM, 0); > > if (fd < 0) > > @@ -869,8 +872,7 @@ 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 if it is set, otherwise display "wayland-0" will be used. > > + * its value will be replaced with the WAYLAND_DISPLAY environment > variable. > > * > > * \memberof wl_display > > */ > > diff --git a/src/wayland-server.c b/src/wayland-server.c > > index 0f04f66..1ea53f9 100644 > > --- a/src/wayland-server.c > > +++ b/src/wayland-server.c > > @@ -1209,8 +1209,8 @@ wl_display_add_socket_auto(struct wl_display > *display) > > * connect to Wayland display. > > * > > * If NULL is passed as name, then it would look for WAYLAND_DISPLAY env > > - * variable for the socket name. If WAYLAND_DISPLAY is not set, then > default > > - * wayland-0 is used. > > + * variable for the socket name. If WAYLAND_DISPLAY is not set, this > function > > + * fails and returns -1. > > * > > * The Unix socket will be created in the directory pointed to by > environment > > * variable XDG_RUNTIME_DIR. If XDG_RUNTIME_DIR is not set, then this > function > > @@ -1235,7 +1235,7 @@ wl_display_add_socket(struct wl_display *display, > const char *name) > > if (name == NULL) > > name = getenv("WAYLAND_DISPLAY"); > > if (name == NULL) > > - name = "wayland-0"; > > + return -1; > > > > if (wl_socket_init_for_display_name(s, name) < 0) { > > wl_socket_destroy(s); > > -- > > 2.4.3 > > > > _______________________________________________ > > wayland-devel mailing list > > [email protected] > > http://lists.freedesktop.org/mailman/listinfo/wayland-devel > > > -- > Ryo Munakata <[email protected]> >
_______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
