<p dir="ltr">Lennart, </p>
<p dir="ltr">I've told you some time ago that Xorg-server since release 1.16 no longer requires multi-seat-x wrapper. </p>
<div class="gmail_quote">Em 27/10/2014 11:00, "Lennart Poettering" <<a href="mailto:lennart@poettering.net">lennart@poettering.net</a>> escreveu:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sun, 26.10.14 00:30, Timofey Titovets (<a href="mailto:nefelim4ag@gmail.com">nefelim4ag@gmail.com</a>) wrote:<br>
<br>
> Completed TODO: remove multi-seat-x<br>
<br>
Hmm, I don't remember the details of this, did X release a new version<br>
which makes this tool unnecessary? I think they commited code that<br>
made it unnecessary, but did they actually release it?<br>
<br>
><br>
> From 57b2655d2041d2bb2e9b25bef577ead9b27ce6ee Mon Sep 17 00:00:00 2001<br>
> From: Timofey Titovets <<a href="mailto:nefelim4ag@gmail.com">nefelim4ag@gmail.com</a>><br>
> Date: Sun, 26 Oct 2014 00:17:24 +0300<br>
> Subject: [PATCH] login: remove multi-seat-x<br>
><br>
> ---<br>
>  Makefile.am              |  14 ------<br>
>  TODO                     |   2 -<br>
>  <a href="http://configure.ac" target="_blank">configure.ac</a>             |   8 ----<br>
>  src/login/multi-seat-x.c | 108<br>
> -----------------------------------------------<br>
>  4 files changed, 132 deletions(-)<br>
>  delete mode 100644 src/login/multi-seat-x.c<br>
><br>
> diff --git a/Makefile.am b/Makefile.am<br>
> index fae946a..fc86b45 100644<br>
> --- a/Makefile.am<br>
> +++ b/Makefile.am<br>
> @@ -5400,20 +5400,6 @@ SYSTEM_UNIT_ALIASES += \<br>
>  BUSNAMES_TARGET_WANTS += \<br>
>       org.freedesktop.login1.busname<br>
><br>
> -if ENABLE_MULTI_SEAT_X<br>
> -<br>
> -systemd_multi_seat_x_SOURCES = \<br>
> -     src/login/multi-seat-x.c<br>
> -<br>
> -systemd_multi_seat_x_LDADD = \<br>
> -     <a href="http://libsystemd-label.la" target="_blank">libsystemd-label.la</a> \<br>
> -     <a href="http://libsystemd-shared.la" target="_blank">libsystemd-shared.la</a><br>
> -<br>
> -rootlibexec_PROGRAMS += \<br>
> -     systemd-multi-seat-x<br>
> -<br>
> -endif<br>
> -<br>
>  dist_udevrules_DATA += \<br>
>       src/login/70-uaccess.rules \<br>
>       src/login/70-power-switch.rules<br>
> diff --git a/TODO b/TODO<br>
> index ed00661..195ca55 100644<br>
> --- a/TODO<br>
> +++ b/TODO<br>
> @@ -102,8 +102,6 @@ Features:<br>
><br>
>  * maybe introduce AssertXYZ= similar to ConditionXYZ= that causes a unit to<br>
> fail (instead of skipping it) if some condition is not true...<br>
><br>
> -* remove multi-seat-x now<br>
> -<br>
>  * refcounting in sd-resolve is borked<br>
><br>
>  * exponential backoff in timesyncd and resolved when we cannot reach a<br>
> server<br>
> diff --git a/<a href="http://configure.ac" target="_blank">configure.ac</a> b/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
> index c3b4ea3..f69eb82 100644<br>
> --- a/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
> +++ b/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
> @@ -1063,14 +1063,6 @@ fi<br>
>  AM_CONDITIONAL(ENABLE_EFI, [test "x$have_efi" = "xyes"])<br>
><br>
>  # ------------------------------------------------------------------------------<br>
> -have_multi_seat_x=no<br>
> -AC_ARG_ENABLE(multi_seat_x, AS_HELP_STRING([--disable-multi-seat-x], [do<br>
> not build multi-seat-x]))<br>
> -if test "x$enable_multi_seat_x" != "xno"; then<br>
> -        have_multi_seat_x=yes<br>
> -fi<br>
> -AM_CONDITIONAL(ENABLE_MULTI_SEAT_X, [test "$have_multi_seat_x" = "yes"])<br>
> -<br>
> -# ------------------------------------------------------------------------------<br>
>  have_terminal=no<br>
>  AC_ARG_ENABLE(terminal, AS_HELP_STRING([--enable-terminal], [enable<br>
> terminal support]))<br>
>  if test "x$enable_terminal" = "xyes"; then<br>
> diff --git a/src/login/multi-seat-x.c b/src/login/multi-seat-x.c<br>
> deleted file mode 100644<br>
> index 83760d4..0000000<br>
> --- a/src/login/multi-seat-x.c<br>
> +++ /dev/null<br>
> @@ -1,108 +0,0 @@<br>
> -/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/<br>
> -<br>
> -/***<br>
> -  This file is part of systemd.<br>
> -<br>
> -  Copyright 2011 Lennart Poettering<br>
> -<br>
> -  systemd is free software; you can redistribute it and/or modify it<br>
> -  under the terms of the GNU Lesser General Public License as published by<br>
> -  the Free Software Foundation; either version 2.1 of the License, or<br>
> -  (at your option) any later version.<br>
> -<br>
> -  systemd is distributed in the hope that it will be useful, but<br>
> -  WITHOUT ANY WARRANTY; without even the implied warranty of<br>
> -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br>
> -  Lesser General Public License for more details.<br>
> -<br>
> -  You should have received a copy of the GNU Lesser General Public License<br>
> -  along with systemd; If not, see <<a href="http://www.gnu.org/licenses/" target="_blank">http://www.gnu.org/licenses/</a>>.<br>
> -***/<br>
> -<br>
> -#include <string.h><br>
> -#include <unistd.h><br>
> -<br>
> -#include "util.h"<br>
> -#include "mkdir.h"<br>
> -<br>
> -int main(int argc, char *argv[]) {<br>
> -<br>
> -        int i;<br>
> -        const char *seat = NULL;<br>
> -        char **new_argv;<br>
> -        _cleanup_free_ char *path = NULL;<br>
> -        int r;<br>
> -        _cleanup_fclose_ FILE *f = NULL;<br>
> -<br>
> -        /* This binary will go away as soon as X natively takes the<br>
> -         * arguments in question as command line parameters, instead<br>
> -         * of requiring them in the configuration file. */<br>
> -<br>
> -        /* If this file is removed, don't forget to remove the code<br>
> -         * that invokes this in gdm and other display managers. */<br>
> -<br>
> -        for (i = 1; i < argc; i++)<br>
> -                if (streq(argv[i], "-seat"))<br>
> -                        seat = argv[i+1];<br>
> -<br>
> -        if (isempty(seat) || streq(seat, "seat0")) {<br>
> -                argv[0] = (char*) X_SERVER;<br>
> -                execv(X_SERVER, argv);<br>
> -                log_error("Failed to execute real X server: %m");<br>
> -                goto fail;<br>
> -        }<br>
> -<br>
> -        r = mkdir_safe_label("/run/systemd/multi-session-x", 0755, 0, 0);<br>
> -        if (r < 0) {<br>
> -                log_error("Failed to create directory: %s", strerror(-r));<br>
> -                goto fail;<br>
> -        }<br>
> -<br>
> -        path = strappend("/run/systemd/multi-session-x/", seat);<br>
> -        if (!path) {<br>
> -                log_oom();<br>
> -                goto fail;<br>
> -        }<br>
> -<br>
> -        f = fopen(path, "we");<br>
> -        if (!f) {<br>
> -                log_error("Failed to write configuration file: %m");<br>
> -                goto fail;<br>
> -        }<br>
> -<br>
> -        fprintf(f,<br>
> -                "Section \"ServerFlags\"\n"<br>
> -                "        Option \"AutoAddDevices\" \"True\"\n"<br>
> -                "        Option \"AllowEmptyInput\" \"True\"\n"<br>
> -                "        Option \"DontVTSwitch\" \"True\"\n"<br>
> -                "EndSection\n"<br>
> -                "Section \"InputClass\"\n"<br>
> -                "        Identifier \"Force Input Devices to Seat\"\n"<br>
> -                "        Option \"GrabDevice\" \"True\"\n"<br>
> -                "EndSection\n");<br>
> -<br>
> -        fflush(f);<br>
> -<br>
> -        if (ferror(f)) {<br>
> -                log_error("Failed to write configuration file: %m");<br>
> -                goto fail;<br>
> -        }<br>
> -<br>
> -        fclose(f);<br>
> -        f = NULL;<br>
> -<br>
> -        new_argv = newa(char*, argc + 3 + 1);<br>
> -        memcpy(new_argv, argv, sizeof(char*) * (argc + 2 + 1));<br>
> -<br>
> -        new_argv[0] = (char*) X_SERVER;<br>
> -        new_argv[argc+0] = (char*) "-config";<br>
> -        new_argv[argc+1] = path;<br>
> -        new_argv[argc+2] = (char*) "-sharevts";<br>
> -        new_argv[argc+3] = NULL;<br>
> -<br>
> -        execv(X_SERVER, new_argv);<br>
> -        log_error("Failed to execute real X server: %m");<br>
> -<br>
> -fail:<br>
> -        return EXIT_FAILURE;<br>
> -}<br>
> --<br>
> 2.1.2<br>
><br>
><br>
<br>
> >From 57b2655d2041d2bb2e9b25bef577ead9b27ce6ee Mon Sep 17 00:00:00 2001<br>
> From: Timofey Titovets <<a href="mailto:nefelim4ag@gmail.com">nefelim4ag@gmail.com</a>><br>
> Date: Sun, 26 Oct 2014 00:17:24 +0300<br>
> Subject: [PATCH] login: remove multi-seat-x<br>
><br>
> ---<br>
>  Makefile.am              |  14 ------<br>
>  TODO                     |   2 -<br>
>  <a href="http://configure.ac" target="_blank">configure.ac</a>             |   8 ----<br>
>  src/login/multi-seat-x.c | 108 -----------------------------------------------<br>
>  4 files changed, 132 deletions(-)<br>
>  delete mode 100644 src/login/multi-seat-x.c<br>
><br>
> diff --git a/Makefile.am b/Makefile.am<br>
> index fae946a..fc86b45 100644<br>
> --- a/Makefile.am<br>
> +++ b/Makefile.am<br>
> @@ -5400,20 +5400,6 @@ SYSTEM_UNIT_ALIASES += \<br>
>  BUSNAMES_TARGET_WANTS += \<br>
>       org.freedesktop.login1.busname<br>
><br>
> -if ENABLE_MULTI_SEAT_X<br>
> -<br>
> -systemd_multi_seat_x_SOURCES = \<br>
> -     src/login/multi-seat-x.c<br>
> -<br>
> -systemd_multi_seat_x_LDADD = \<br>
> -     <a href="http://libsystemd-label.la" target="_blank">libsystemd-label.la</a> \<br>
> -     <a href="http://libsystemd-shared.la" target="_blank">libsystemd-shared.la</a><br>
> -<br>
> -rootlibexec_PROGRAMS += \<br>
> -     systemd-multi-seat-x<br>
> -<br>
> -endif<br>
> -<br>
>  dist_udevrules_DATA += \<br>
>       src/login/70-uaccess.rules \<br>
>       src/login/70-power-switch.rules<br>
> diff --git a/TODO b/TODO<br>
> index ed00661..195ca55 100644<br>
> --- a/TODO<br>
> +++ b/TODO<br>
> @@ -102,8 +102,6 @@ Features:<br>
><br>
>  * maybe introduce AssertXYZ= similar to ConditionXYZ= that causes a unit to fail (instead of skipping it) if some condition is not true...<br>
><br>
> -* remove multi-seat-x now<br>
> -<br>
>  * refcounting in sd-resolve is borked<br>
><br>
>  * exponential backoff in timesyncd and resolved when we cannot reach a server<br>
> diff --git a/<a href="http://configure.ac" target="_blank">configure.ac</a> b/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
> index c3b4ea3..f69eb82 100644<br>
> --- a/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
> +++ b/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
> @@ -1063,14 +1063,6 @@ fi<br>
>  AM_CONDITIONAL(ENABLE_EFI, [test "x$have_efi" = "xyes"])<br>
><br>
>  # ------------------------------------------------------------------------------<br>
> -have_multi_seat_x=no<br>
> -AC_ARG_ENABLE(multi_seat_x, AS_HELP_STRING([--disable-multi-seat-x], [do not build multi-seat-x]))<br>
> -if test "x$enable_multi_seat_x" != "xno"; then<br>
> -        have_multi_seat_x=yes<br>
> -fi<br>
> -AM_CONDITIONAL(ENABLE_MULTI_SEAT_X, [test "$have_multi_seat_x" = "yes"])<br>
> -<br>
> -# ------------------------------------------------------------------------------<br>
>  have_terminal=no<br>
>  AC_ARG_ENABLE(terminal, AS_HELP_STRING([--enable-terminal], [enable terminal support]))<br>
>  if test "x$enable_terminal" = "xyes"; then<br>
> diff --git a/src/login/multi-seat-x.c b/src/login/multi-seat-x.c<br>
> deleted file mode 100644<br>
> index 83760d4..0000000<br>
> --- a/src/login/multi-seat-x.c<br>
> +++ /dev/null<br>
> @@ -1,108 +0,0 @@<br>
> -/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/<br>
> -<br>
> -/***<br>
> -  This file is part of systemd.<br>
> -<br>
> -  Copyright 2011 Lennart Poettering<br>
> -<br>
> -  systemd is free software; you can redistribute it and/or modify it<br>
> -  under the terms of the GNU Lesser General Public License as published by<br>
> -  the Free Software Foundation; either version 2.1 of the License, or<br>
> -  (at your option) any later version.<br>
> -<br>
> -  systemd is distributed in the hope that it will be useful, but<br>
> -  WITHOUT ANY WARRANTY; without even the implied warranty of<br>
> -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br>
> -  Lesser General Public License for more details.<br>
> -<br>
> -  You should have received a copy of the GNU Lesser General Public License<br>
> -  along with systemd; If not, see <<a href="http://www.gnu.org/licenses/" target="_blank">http://www.gnu.org/licenses/</a>>.<br>
> -***/<br>
> -<br>
> -#include <string.h><br>
> -#include <unistd.h><br>
> -<br>
> -#include "util.h"<br>
> -#include "mkdir.h"<br>
> -<br>
> -int main(int argc, char *argv[]) {<br>
> -<br>
> -        int i;<br>
> -        const char *seat = NULL;<br>
> -        char **new_argv;<br>
> -        _cleanup_free_ char *path = NULL;<br>
> -        int r;<br>
> -        _cleanup_fclose_ FILE *f = NULL;<br>
> -<br>
> -        /* This binary will go away as soon as X natively takes the<br>
> -         * arguments in question as command line parameters, instead<br>
> -         * of requiring them in the configuration file. */<br>
> -<br>
> -        /* If this file is removed, don't forget to remove the code<br>
> -         * that invokes this in gdm and other display managers. */<br>
> -<br>
> -        for (i = 1; i < argc; i++)<br>
> -                if (streq(argv[i], "-seat"))<br>
> -                        seat = argv[i+1];<br>
> -<br>
> -        if (isempty(seat) || streq(seat, "seat0")) {<br>
> -                argv[0] = (char*) X_SERVER;<br>
> -                execv(X_SERVER, argv);<br>
> -                log_error("Failed to execute real X server: %m");<br>
> -                goto fail;<br>
> -        }<br>
> -<br>
> -        r = mkdir_safe_label("/run/systemd/multi-session-x", 0755, 0, 0);<br>
> -        if (r < 0) {<br>
> -                log_error("Failed to create directory: %s", strerror(-r));<br>
> -                goto fail;<br>
> -        }<br>
> -<br>
> -        path = strappend("/run/systemd/multi-session-x/", seat);<br>
> -        if (!path) {<br>
> -                log_oom();<br>
> -                goto fail;<br>
> -        }<br>
> -<br>
> -        f = fopen(path, "we");<br>
> -        if (!f) {<br>
> -                log_error("Failed to write configuration file: %m");<br>
> -                goto fail;<br>
> -        }<br>
> -<br>
> -        fprintf(f,<br>
> -                "Section \"ServerFlags\"\n"<br>
> -                "        Option \"AutoAddDevices\" \"True\"\n"<br>
> -                "        Option \"AllowEmptyInput\" \"True\"\n"<br>
> -                "        Option \"DontVTSwitch\" \"True\"\n"<br>
> -                "EndSection\n"<br>
> -                "Section \"InputClass\"\n"<br>
> -                "        Identifier \"Force Input Devices to Seat\"\n"<br>
> -                "        Option \"GrabDevice\" \"True\"\n"<br>
> -                "EndSection\n");<br>
> -<br>
> -        fflush(f);<br>
> -<br>
> -        if (ferror(f)) {<br>
> -                log_error("Failed to write configuration file: %m");<br>
> -                goto fail;<br>
> -        }<br>
> -<br>
> -        fclose(f);<br>
> -        f = NULL;<br>
> -<br>
> -        new_argv = newa(char*, argc + 3 + 1);<br>
> -        memcpy(new_argv, argv, sizeof(char*) * (argc + 2 + 1));<br>
> -<br>
> -        new_argv[0] = (char*) X_SERVER;<br>
> -        new_argv[argc+0] = (char*) "-config";<br>
> -        new_argv[argc+1] = path;<br>
> -        new_argv[argc+2] = (char*) "-sharevts";<br>
> -        new_argv[argc+3] = NULL;<br>
> -<br>
> -        execv(X_SERVER, new_argv);<br>
> -        log_error("Failed to execute real X server: %m");<br>
> -<br>
> -fail:<br>
> -        return EXIT_FAILURE;<br>
> -}<br>
> --<br>
> 2.1.2<br>
><br>
<br>
> _______________________________________________<br>
> systemd-devel mailing list<br>
> <a href="mailto:systemd-devel@lists.freedesktop.org">systemd-devel@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/systemd-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/systemd-devel</a><br>
<br>
<br>
<br>
Lennart<br>
<br>
--<br>
Lennart Poettering, Red Hat<br>
_______________________________________________<br>
systemd-devel mailing list<br>
<a href="mailto:systemd-devel@lists.freedesktop.org">systemd-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/systemd-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/systemd-devel</a><br>
</blockquote></div>