forked from pool/xorg-x11-server
- Update to version 1.18.0
- refreshed N_zap_warning_xserver.diff, N_Force-swcursor-for-KMS-drivers-without-hw-cursor-sup.patch - supersedes u_fbdevhw.diff, U_linux-Add-linux_parse_vt_settings-and-linux_get_keep.patch, U_linux-Add-a-may_fail-paramter-to-linux_parse_vt_sett.patch, U_systemd-logind-Only-use-systemd-logind-integration-t.patch OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=592
This commit is contained in:
parent
583d3a6724
commit
220bffcd27
@ -4,26 +4,17 @@ Date: Mon, 16 Feb 2015 16:55:04 +0100
|
|||||||
Subject: [PATCH] Force swcursor for KMS drivers without hw cursor support
|
Subject: [PATCH] Force swcursor for KMS drivers without hw cursor support
|
||||||
|
|
||||||
hwcursor still considered broken on cirrus KMS (bnc#864141, bnc#866152)
|
hwcursor still considered broken on cirrus KMS (bnc#864141, bnc#866152)
|
||||||
---
|
--- xorg-server-1.18.0.orig/hw/xfree86/drivers/modesetting/driver.c 2015-11-10 14:24:35.978379000 +0100
|
||||||
hw/xfree86/drivers/modesetting/driver.c | 5 ++---
|
+++ xorg-server-1.18.0/hw/xfree86/drivers/modesetting/driver.c 2015-11-10 14:58:55.846459000 +0100
|
||||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
@@ -855,9 +855,8 @@ PreInit(ScrnInfoPtr pScrn, int flags)
|
||||||
|
|
||||||
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
|
|
||||||
index d52517d..e1af7d4 100644
|
|
||||||
--- a/hw/xfree86/drivers/modesetting/driver.c
|
|
||||||
+++ b/hw/xfree86/drivers/modesetting/driver.c
|
|
||||||
@@ -764,9 +764,8 @@ PreInit(ScrnInfoPtr pScrn, int flags)
|
|
||||||
if (!xf86SetDefaultVisual(pScrn, -1))
|
if (!xf86SetDefaultVisual(pScrn, -1))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
- if (xf86ReturnOptValBool(ms->Options, OPTION_SW_CURSOR, FALSE)) {
|
- if (xf86ReturnOptValBool(ms->drmmode.Options, OPTION_SW_CURSOR, FALSE)) {
|
||||||
- ms->drmmode.sw_cursor = TRUE;
|
- ms->drmmode.sw_cursor = TRUE;
|
||||||
- }
|
- }
|
||||||
+ /* hw cursor still considered broken on cirrus */
|
+ /* hw cursor still considered broken on cirrus */
|
||||||
+ ms->drmmode.sw_cursor = xf86ReturnOptValBool(ms->Options, OPTION_SW_CURSOR, TRUE);
|
+ ms->drmmode.sw_cursor = TRUE;
|
||||||
|
|
||||||
ms->cursor_width = 64;
|
ms->cursor_width = 64;
|
||||||
ms->cursor_height = 64;
|
ms->cursor_height = 64;
|
||||||
--
|
|
||||||
1.8.4.5
|
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Events.c
|
|||||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Events.c
|
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Events.c
|
||||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86Events.c
|
+++ xorg-server-1.12.1/hw/xfree86/common/xf86Events.c
|
||||||
@@ -182,13 +182,25 @@ xf86ProcessActionEvent(ActionEvent actio
|
@@ -182,13 +182,25 @@ xf86ProcessActionEvent(ActionEvent actio
|
||||||
DebugF("ProcessActionEvent(%d,%x)\n", (int) action, arg);
|
DebugF("ProcessActionEvent(%d,%p)\n", (int) action, arg);
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case ACTION_TERMINATE:
|
case ACTION_TERMINATE:
|
||||||
- if (!xf86Info.dontZap) {
|
- if (!xf86Info.dontZap) {
|
||||||
|
@ -1,114 +0,0 @@
|
|||||||
From 81bcada14e339fe2a2fb3f3a040566d94dc20bad Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
Date: Wed, 13 May 2015 13:17:09 +0200
|
|
||||||
Subject: [PATCH] linux: Add a may_fail paramter to linux_parse_vt_settings
|
|
||||||
|
|
||||||
linux_parse_vt_settings() was split out of xf86OpenConsole so that it can
|
|
||||||
be called earlier during systemd-logind init, but it is possible to run
|
|
||||||
the xserver in such a way that xf86OpenConsole() is never used.
|
|
||||||
|
|
||||||
The FatalError calls in linux_parse_vt_settings() may stop the Xorg xserver
|
|
||||||
from working when e.g. no /dev/tty0 is present in such a setup.
|
|
||||||
|
|
||||||
This commit adds a may_fail parameter to linux_parse_vt_settings() which
|
|
||||||
can be used to make linux_parse_vt_settings() fail silenty with an error
|
|
||||||
return in this case, rather then calling FatalError().
|
|
||||||
|
|
||||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
hw/xfree86/os-support/linux/linux.h | 2 +-
|
|
||||||
hw/xfree86/os-support/linux/lnx_init.c | 29 +++++++++++++++++++++--------
|
|
||||||
2 files changed, 22 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
--- a/hw/xfree86/os-support/linux/linux.h
|
|
||||||
+++ b/hw/xfree86/os-support/linux/linux.h
|
|
||||||
@@ -26,7 +26,7 @@
|
|
||||||
#ifndef XF86_LINUX_H
|
|
||||||
#define XF86_LINUX_H
|
|
||||||
|
|
||||||
-void linux_parse_vt_settings(void);
|
|
||||||
+int linux_parse_vt_settings(int may_fail);
|
|
||||||
int linux_get_keeptty(void);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
--- a/hw/xfree86/os-support/linux/lnx_init.c
|
|
||||||
+++ b/hw/xfree86/os-support/linux/lnx_init.c
|
|
||||||
@@ -87,8 +87,8 @@ switch_to(int vt, const char *from, Bool
|
|
||||||
#pragma GCC diagnostic push
|
|
||||||
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
|
|
||||||
|
|
||||||
-void
|
|
||||||
-linux_parse_vt_settings(void)
|
|
||||||
+int
|
|
||||||
+linux_parse_vt_settings(int may_fail)
|
|
||||||
{
|
|
||||||
int i, fd = -1, ret, current_vt = -1;
|
|
||||||
struct vt_stat vts;
|
|
||||||
@@ -100,7 +100,7 @@ linux_parse_vt_settings(void)
|
|
||||||
static int vt_settings_parsed = 0;
|
|
||||||
|
|
||||||
if (vt_settings_parsed)
|
|
||||||
- return;
|
|
||||||
+ return 1;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* setup the virtual terminal manager
|
|
||||||
@@ -117,24 +117,36 @@ linux_parse_vt_settings(void)
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (fd < 0)
|
|
||||||
+ if (fd < 0) {
|
|
||||||
+ if (may_fail)
|
|
||||||
+ return 0;
|
|
||||||
FatalError("parse_vt_settings: Cannot open /dev/tty0 (%s)\n",
|
|
||||||
strerror(errno));
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (xf86Info.ShareVTs) {
|
|
||||||
SYSCALL(ret = ioctl(fd, VT_GETSTATE, &vts));
|
|
||||||
- if (ret < 0)
|
|
||||||
+ if (ret < 0) {
|
|
||||||
+ if (may_fail)
|
|
||||||
+ return 0;
|
|
||||||
FatalError("parse_vt_settings: Cannot find the current"
|
|
||||||
" VT (%s)\n", strerror(errno));
|
|
||||||
+ }
|
|
||||||
xf86Info.vtno = vts.v_active;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
SYSCALL(ret = ioctl(fd, VT_OPENQRY, &xf86Info.vtno));
|
|
||||||
- if (ret < 0)
|
|
||||||
+ if (ret < 0) {
|
|
||||||
+ if (may_fail)
|
|
||||||
+ return 0;
|
|
||||||
FatalError("parse_vt_settings: Cannot find a free VT: "
|
|
||||||
"%s\n", strerror(errno));
|
|
||||||
- if (xf86Info.vtno == -1)
|
|
||||||
+ }
|
|
||||||
+ if (xf86Info.vtno == -1) {
|
|
||||||
+ if (may_fail)
|
|
||||||
+ return 0;
|
|
||||||
FatalError("parse_vt_settings: Cannot find a free VT\n");
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
close(fd);
|
|
||||||
}
|
|
||||||
@@ -158,6 +170,7 @@ linux_parse_vt_settings(void)
|
|
||||||
}
|
|
||||||
|
|
||||||
vt_settings_parsed = 1;
|
|
||||||
+ return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
@@ -175,7 +188,7 @@ xf86OpenConsole(void)
|
|
||||||
const char *vcs[] = { "/dev/vc/%d", "/dev/tty%d", NULL };
|
|
||||||
|
|
||||||
if (serverGeneration == 1) {
|
|
||||||
- linux_parse_vt_settings();
|
|
||||||
+ linux_parse_vt_settings(FALSE);
|
|
||||||
|
|
||||||
if (!KeepTty) {
|
|
||||||
pid_t ppid = getppid();
|
|
@ -1,229 +0,0 @@
|
|||||||
From 1dba5a0b194653b0effb01a918bd7338b0c6bcb9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
Date: Wed, 21 Jan 2015 09:31:39 +0100
|
|
||||||
Subject: [PATCH] linux: Add linux_parse_vt_settings and linux_get_keeptty
|
|
||||||
helpers
|
|
||||||
|
|
||||||
systemd-logind integration does not work when starting X on a new tty, as
|
|
||||||
that detaches X from the current session and after hat systemd-logind revokes
|
|
||||||
all rights on any already open fds and refuses to open new fds for X.
|
|
||||||
|
|
||||||
This means that currently e.g. "startx -- vt7" breaks, and breaks badly,
|
|
||||||
requiring ssh access to the system to kill X.
|
|
||||||
|
|
||||||
The fix for this is easy, we must not use systemd-logind integration when
|
|
||||||
not using KeepTty, or iow we may only use systemd-logind integration together
|
|
||||||
with KeepTty.
|
|
||||||
|
|
||||||
But the final KeepTty value is not known until the code to chose which vtno to
|
|
||||||
run on has been called, which currently happens after intializing
|
|
||||||
systemd-logind.
|
|
||||||
|
|
||||||
This commit is step 1 in fixing the "startx -- vt7" breakage, it factors out
|
|
||||||
the linux xf86OpenConsole bits which set xf86Info.vtno and keepTty so that
|
|
||||||
these can be called earlier. Calling this earlier is safe as this code has
|
|
||||||
no side effects other than setting xf86Info.vtno and keepTty.
|
|
||||||
|
|
||||||
Note this basically only moves a large chunk of xf86OpenConsole() into
|
|
||||||
linux_parse_vt_settings() without changing a single line of it, this is
|
|
||||||
hard to see in the diff because the identation level has changed.
|
|
||||||
|
|
||||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
hw/xfree86/os-support/linux/linux.h | 32 ++++++++
|
|
||||||
hw/xfree86/os-support/linux/lnx_init.c | 126 +++++++++++++++++++--------------
|
|
||||||
2 files changed, 107 insertions(+), 51 deletions(-)
|
|
||||||
create mode 100644 hw/xfree86/os-support/linux/linux.h
|
|
||||||
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/hw/xfree86/os-support/linux/linux.h
|
|
||||||
@@ -0,0 +1,32 @@
|
|
||||||
+/*
|
|
||||||
+ * Copyright © 2015 Red Hat, Inc.
|
|
||||||
+ *
|
|
||||||
+ * Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
+ * copy of this software and associated documentation files (the "Software"),
|
|
||||||
+ * to deal in the Software without restriction, including without limitation
|
|
||||||
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
+ * and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
+ * Software is furnished to do so, subject to the following conditions:
|
|
||||||
+ *
|
|
||||||
+ * The above copyright notice and this permission notice (including the next
|
|
||||||
+ * paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
+ * Software.
|
|
||||||
+ *
|
|
||||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
+ * DEALINGS IN THE SOFTWARE.
|
|
||||||
+ *
|
|
||||||
+ * Author: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#ifndef XF86_LINUX_H
|
|
||||||
+#define XF86_LINUX_H
|
|
||||||
+
|
|
||||||
+void linux_parse_vt_settings(void);
|
|
||||||
+int linux_get_keeptty(void);
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
--- a/hw/xfree86/os-support/linux/lnx_init.c
|
|
||||||
+++ b/hw/xfree86/os-support/linux/lnx_init.c
|
|
||||||
@@ -31,6 +31,7 @@
|
|
||||||
#include <X11/Xmd.h>
|
|
||||||
|
|
||||||
#include "compiler.h"
|
|
||||||
+#include "linux.h"
|
|
||||||
|
|
||||||
#include "xf86.h"
|
|
||||||
#include "xf86Priv.h"
|
|
||||||
@@ -87,71 +88,94 @@ switch_to(int vt, const char *from, Bool
|
|
||||||
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
|
|
||||||
|
|
||||||
void
|
|
||||||
-xf86OpenConsole(void)
|
|
||||||
+linux_parse_vt_settings(void)
|
|
||||||
{
|
|
||||||
int i, fd = -1, ret, current_vt = -1;
|
|
||||||
- struct vt_mode VT;
|
|
||||||
struct vt_stat vts;
|
|
||||||
struct stat st;
|
|
||||||
MessageType from = X_PROBED;
|
|
||||||
const char *tty0[] = { "/dev/tty0", "/dev/vc/0", NULL };
|
|
||||||
- const char *vcs[] = { "/dev/vc/%d", "/dev/tty%d", NULL };
|
|
||||||
|
|
||||||
- if (serverGeneration == 1) {
|
|
||||||
- /*
|
|
||||||
- * setup the virtual terminal manager
|
|
||||||
- */
|
|
||||||
- if (xf86Info.vtno != -1) {
|
|
||||||
- from = X_CMDLINE;
|
|
||||||
- }
|
|
||||||
- else {
|
|
||||||
+ /* Only do this once */
|
|
||||||
+ static int vt_settings_parsed = 0;
|
|
||||||
|
|
||||||
- i = 0;
|
|
||||||
- while (tty0[i] != NULL) {
|
|
||||||
- if ((fd = open(tty0[i], O_WRONLY, 0)) >= 0)
|
|
||||||
- break;
|
|
||||||
- i++;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- if (fd < 0)
|
|
||||||
- FatalError("xf86OpenConsole: Cannot open /dev/tty0 (%s)\n",
|
|
||||||
- strerror(errno));
|
|
||||||
-
|
|
||||||
- if (xf86Info.ShareVTs) {
|
|
||||||
- SYSCALL(ret = ioctl(fd, VT_GETSTATE, &vts));
|
|
||||||
- if (ret < 0)
|
|
||||||
- FatalError("xf86OpenConsole: Cannot find the current"
|
|
||||||
- " VT (%s)\n", strerror(errno));
|
|
||||||
- xf86Info.vtno = vts.v_active;
|
|
||||||
- }
|
|
||||||
- else {
|
|
||||||
- SYSCALL(ret = ioctl(fd, VT_OPENQRY, &xf86Info.vtno));
|
|
||||||
- if (ret < 0)
|
|
||||||
- FatalError("xf86OpenConsole: Cannot find a free VT: "
|
|
||||||
- "%s\n", strerror(errno));
|
|
||||||
- if (xf86Info.vtno == -1)
|
|
||||||
- FatalError("xf86OpenConsole: Cannot find a free VT\n");
|
|
||||||
- }
|
|
||||||
- close(fd);
|
|
||||||
- }
|
|
||||||
+ if (vt_settings_parsed)
|
|
||||||
+ return;
|
|
||||||
|
|
||||||
- xf86Msg(from, "using VT number %d\n\n", xf86Info.vtno);
|
|
||||||
+ /*
|
|
||||||
+ * setup the virtual terminal manager
|
|
||||||
+ */
|
|
||||||
+ if (xf86Info.vtno != -1) {
|
|
||||||
+ from = X_CMDLINE;
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
|
|
||||||
- /* Some of stdin / stdout / stderr maybe redirected to a file */
|
|
||||||
- for (i = STDIN_FILENO; i <= STDERR_FILENO; i++) {
|
|
||||||
- ret = fstat(i, &st);
|
|
||||||
- if (ret == 0 && S_ISCHR(st.st_mode) && major(st.st_rdev) == 4) {
|
|
||||||
- current_vt = minor(st.st_rdev);
|
|
||||||
+ i = 0;
|
|
||||||
+ while (tty0[i] != NULL) {
|
|
||||||
+ if ((fd = open(tty0[i], O_WRONLY, 0)) >= 0)
|
|
||||||
break;
|
|
||||||
- }
|
|
||||||
+ i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!KeepTty && current_vt == xf86Info.vtno) {
|
|
||||||
- xf86Msg(X_PROBED,
|
|
||||||
- "controlling tty is VT number %d, auto-enabling KeepTty\n",
|
|
||||||
- current_vt);
|
|
||||||
- KeepTty = TRUE;
|
|
||||||
+ if (fd < 0)
|
|
||||||
+ FatalError("parse_vt_settings: Cannot open /dev/tty0 (%s)\n",
|
|
||||||
+ strerror(errno));
|
|
||||||
+
|
|
||||||
+ if (xf86Info.ShareVTs) {
|
|
||||||
+ SYSCALL(ret = ioctl(fd, VT_GETSTATE, &vts));
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ FatalError("parse_vt_settings: Cannot find the current"
|
|
||||||
+ " VT (%s)\n", strerror(errno));
|
|
||||||
+ xf86Info.vtno = vts.v_active;
|
|
||||||
}
|
|
||||||
+ else {
|
|
||||||
+ SYSCALL(ret = ioctl(fd, VT_OPENQRY, &xf86Info.vtno));
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ FatalError("parse_vt_settings: Cannot find a free VT: "
|
|
||||||
+ "%s\n", strerror(errno));
|
|
||||||
+ if (xf86Info.vtno == -1)
|
|
||||||
+ FatalError("parse_vt_settings: Cannot find a free VT\n");
|
|
||||||
+ }
|
|
||||||
+ close(fd);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ xf86Msg(from, "using VT number %d\n\n", xf86Info.vtno);
|
|
||||||
+
|
|
||||||
+ /* Some of stdin / stdout / stderr maybe redirected to a file */
|
|
||||||
+ for (i = STDIN_FILENO; i <= STDERR_FILENO; i++) {
|
|
||||||
+ ret = fstat(i, &st);
|
|
||||||
+ if (ret == 0 && S_ISCHR(st.st_mode) && major(st.st_rdev) == 4) {
|
|
||||||
+ current_vt = minor(st.st_rdev);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!KeepTty && current_vt == xf86Info.vtno) {
|
|
||||||
+ xf86Msg(X_PROBED,
|
|
||||||
+ "controlling tty is VT number %d, auto-enabling KeepTty\n",
|
|
||||||
+ current_vt);
|
|
||||||
+ KeepTty = TRUE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ vt_settings_parsed = 1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+linux_get_keeptty(void)
|
|
||||||
+{
|
|
||||||
+ return KeepTty;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void
|
|
||||||
+xf86OpenConsole(void)
|
|
||||||
+{
|
|
||||||
+ int i, ret;
|
|
||||||
+ struct vt_stat vts;
|
|
||||||
+ struct vt_mode VT;
|
|
||||||
+ const char *vcs[] = { "/dev/vc/%d", "/dev/tty%d", NULL };
|
|
||||||
+
|
|
||||||
+ if (serverGeneration == 1) {
|
|
||||||
+ linux_parse_vt_settings();
|
|
||||||
|
|
||||||
if (!KeepTty) {
|
|
||||||
pid_t ppid = getppid();
|
|
@ -1,64 +0,0 @@
|
|||||||
From c88a325899381d1133e63e6c33c29db079e20a87 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
Date: Wed, 21 Jan 2015 10:13:20 +0100
|
|
||||||
Subject: [PATCH] systemd-logind: Only use systemd-logind integration together
|
|
||||||
with keeptty
|
|
||||||
|
|
||||||
systemd-logind integration does not work when starting X on a new tty, as
|
|
||||||
that detaches X from the current session and after hat systemd-logind revokes
|
|
||||||
all rights any already open fds and refuses to open new fds for X.
|
|
||||||
|
|
||||||
This means that currently e.g. "startx -- vt7" breaks, and breaks badly,
|
|
||||||
requiring ssh access to the system to kill X.
|
|
||||||
|
|
||||||
The fix for this is easy, we must not use systemd-logind integration when
|
|
||||||
not using KeepTty, or iow we may only use systemd-logind integration together
|
|
||||||
with KeepTty.
|
|
||||||
|
|
||||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
Tested-by: Aaron Plattner <aplattner@nvidia.com>
|
|
||||||
---
|
|
||||||
hw/xfree86/man/Xorg.man | 6 +++---
|
|
||||||
hw/xfree86/os-support/linux/systemd-logind.c | 8 ++++++++
|
|
||||||
2 files changed, 11 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
--- a/hw/xfree86/man/Xorg.man
|
|
||||||
+++ b/hw/xfree86/man/Xorg.man
|
|
||||||
@@ -271,9 +271,9 @@ is ignored if
|
|
||||||
is anything other than \(oqPCI\(cq.
|
|
||||||
.TP 8
|
|
||||||
.B \-keeptty
|
|
||||||
-Prevent the server from detaching its initial controlling terminal.
|
|
||||||
-This option is only useful when debugging the server. Not all platforms
|
|
||||||
-support (or can use) this option.
|
|
||||||
+Prevent the server from detaching its initial controlling terminal. If you
|
|
||||||
+want to use systemd-logind integration you must specify this option.
|
|
||||||
+Not all platforms support (or can use) this option.
|
|
||||||
.TP 8
|
|
||||||
.BI \-keyboard " keyboard-name"
|
|
||||||
Use the xorg.conf(__filemansuffix__) file
|
|
||||||
--- a/hw/xfree86/os-support/linux/systemd-logind.c
|
|
||||||
+++ b/hw/xfree86/os-support/linux/systemd-logind.c
|
|
||||||
@@ -34,6 +34,7 @@
|
|
||||||
|
|
||||||
#include "os.h"
|
|
||||||
#include "dbus-core.h"
|
|
||||||
+#include "linux.h"
|
|
||||||
#include "xf86.h"
|
|
||||||
#include "xf86platformBus.h"
|
|
||||||
#include "xf86Xinput.h"
|
|
||||||
@@ -596,6 +597,13 @@ static struct dbus_core_hook core_hook =
|
|
||||||
int
|
|
||||||
systemd_logind_init(void)
|
|
||||||
{
|
|
||||||
+ if (linux_parse_vt_settings(TRUE) && !linux_get_keeptty()) {
|
|
||||||
+ LogMessage(X_INFO,
|
|
||||||
+ "systemd-logind: logind integration requires -keeptty and "
|
|
||||||
+ "-keeptty was not provided, disabling logind integration\n");
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return dbus_core_add_hook(&core_hook);
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
|||||||
From: Egbert Eich <eich@suse.de>
|
|
||||||
|
|
||||||
Make error message about FBIOBLANK missing less prominent but more telling
|
|
||||||
|
|
||||||
The FBIOBLANK ioctl is not present in some fbdev kernel drivers. This
|
|
||||||
however is not a huge problem. This don't mark it as error in the log
|
|
||||||
instead give more information on the possible cause.
|
|
||||||
|
|
||||||
Index: hw/xfree86/fbdevhw/fbdevhw.c
|
|
||||||
===================================================================
|
|
||||||
--- hw/xfree86/fbdevhw/fbdevhw.c.orig
|
|
||||||
+++ hw/xfree86/fbdevhw/fbdevhw.c
|
|
||||||
@@ -858,9 +858,10 @@ fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mo
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* Novell Bug #146462 */
|
|
||||||
if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *) fbmode))
|
|
||||||
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
|
||||||
- "FBIOBLANK: %s\n", strerror(errno));
|
|
||||||
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
|
||||||
+ "FBIOBLANK: %s (Screen blanking not supported by vesafb of Linux Kernel)\n", strerror(errno));
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
@@ -875,9 +876,10 @@ fbdevHWSaveScreen(ScreenPtr pScreen, int
|
|
||||||
|
|
||||||
unblank = xf86IsUnblank(mode);
|
|
||||||
|
|
||||||
+ /* Novell Bug #146462 */
|
|
||||||
if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *) (1 - unblank))) {
|
|
||||||
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
|
||||||
- "FBIOBLANK: %s\n", strerror(errno));
|
|
||||||
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
|
||||||
+ "FBIOBLANK: %s (Screen blanking not supported by vesafb of Linux Kernel)\n", strerror(errno));
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:0c4b45c116a812a996eb432d8508cf26c2ec8c3916ff2a50781796882f8d6457
|
|
||||||
size 5791384
|
|
3
xorg-server-1.18.0.tar.bz2
Normal file
3
xorg-server-1.18.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:195670819695d9cedd8dde95fbe069be0d0f488a77797a2d409f9f702daf312e
|
||||||
|
size 5818703
|
@ -1,4 +1,4 @@
|
|||||||
Provides: X11_ABI_XINPUT = 21.0
|
Provides: X11_ABI_XINPUT = 22.1
|
||||||
Provides: X11_ABI_VIDEODRV = 19.0
|
Provides: X11_ABI_VIDEODRV = 20.0
|
||||||
Provides: X11_ABI_ANSIC = 0.4
|
Provides: X11_ABI_ANSIC = 0.4
|
||||||
Provides: X11_ABI_EXTENSION = 9.0
|
Provides: X11_ABI_EXTENSION = 9.0
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Nov 10 13:42:47 UTC 2015 - sndirsch@suse.com
|
||||||
|
|
||||||
|
- Update to version 1.18.0
|
||||||
|
- refreshed N_zap_warning_xserver.diff,
|
||||||
|
N_Force-swcursor-for-KMS-drivers-without-hw-cursor-sup.patch
|
||||||
|
- supersedes u_fbdevhw.diff,
|
||||||
|
U_linux-Add-linux_parse_vt_settings-and-linux_get_keep.patch,
|
||||||
|
U_linux-Add-a-may_fail-paramter-to-linux_parse_vt_sett.patch,
|
||||||
|
U_systemd-logind-Only-use-systemd-logind-integration-t.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Oct 28 17:32:07 UTC 2015 - sndirsch@suse.com
|
Wed Oct 28 17:32:07 UTC 2015 - sndirsch@suse.com
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
Name: xorg-x11-server
|
Name: xorg-x11-server
|
||||||
|
|
||||||
%define dirsuffix 1.17.4
|
%define dirsuffix 1.18.0
|
||||||
|
|
||||||
Summary: X
|
Summary: X
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -164,7 +164,6 @@ Patch3: N_driver-autoconfig.diff
|
|||||||
Patch4: N_fix_fglrx_screendepth_issue.patch
|
Patch4: N_fix_fglrx_screendepth_issue.patch
|
||||||
Patch6: N_fix-dpi-values.diff
|
Patch6: N_fix-dpi-values.diff
|
||||||
|
|
||||||
Patch100: u_fbdevhw.diff
|
|
||||||
Patch101: u_confine_to_shape.diff
|
Patch101: u_confine_to_shape.diff
|
||||||
# PATCH-FIX-UPSTREAM u_x86emu-include-order.patch schwab@suse.de -- Change include order to avoid conflict with system header, remove duplicate definitions
|
# PATCH-FIX-UPSTREAM u_x86emu-include-order.patch schwab@suse.de -- Change include order to avoid conflict with system header, remove duplicate definitions
|
||||||
Patch102: u_x86emu-include-order.patch
|
Patch102: u_x86emu-include-order.patch
|
||||||
@ -181,9 +180,6 @@ Patch117: xorg-x11-server-byte-order.patch
|
|||||||
|
|
||||||
Patch160: u_vesa-Add-VBEDPMSGetCapabilities-VBEDPMSGet.patch
|
Patch160: u_vesa-Add-VBEDPMSGetCapabilities-VBEDPMSGet.patch
|
||||||
|
|
||||||
Patch201: U_linux-Add-linux_parse_vt_settings-and-linux_get_keep.patch
|
|
||||||
Patch202: U_linux-Add-a-may_fail-paramter-to-linux_parse_vt_sett.patch
|
|
||||||
Patch203: U_systemd-logind-Only-use-systemd-logind-integration-t.patch
|
|
||||||
Patch204: U_systemd-logind-do-not-rely-on-directed-signals.patch
|
Patch204: U_systemd-logind-do-not-rely-on-directed-signals.patch
|
||||||
|
|
||||||
Patch1000: n_xserver-optimus-autoconfig-hack.patch
|
Patch1000: n_xserver-optimus-autoconfig-hack.patch
|
||||||
@ -262,7 +258,6 @@ cp %{SOURCE90} .
|
|||||||
%patch4 -p0
|
%patch4 -p0
|
||||||
%patch6 -p0
|
%patch6 -p0
|
||||||
#
|
#
|
||||||
%patch100
|
|
||||||
%patch101
|
%patch101
|
||||||
%patch102 -p1
|
%patch102 -p1
|
||||||
%patch104 -p1
|
%patch104 -p1
|
||||||
@ -278,9 +273,6 @@ cp %{SOURCE90} .
|
|||||||
|
|
||||||
%patch160 -p1
|
%patch160 -p1
|
||||||
|
|
||||||
%patch201 -p1
|
|
||||||
%patch202 -p1
|
|
||||||
%patch203 -p1
|
|
||||||
%patch204 -p1
|
%patch204 -p1
|
||||||
|
|
||||||
%patch1000 -p1
|
%patch1000 -p1
|
||||||
|
Loading…
Reference in New Issue
Block a user