<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>