summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorkyak2015-07-02 22:26:43 +0300
committerkyak2015-07-02 22:26:43 +0300
commit587dbbd76a3daa4ae9011e4ba2e098c9ab4e0079 (patch)
treedf7d71e9a8a6c0f31f46941204989c07e2fd6542
parentc54784938be08a7b39b677fa1ab5c35ec5e6853e (diff)
downloadaur-587dbbd76a3daa4ae9011e4ba2e098c9ab4e0079.tar.gz
Add a kdbus fix
-rw-r--r--.SRCINFO4
-rw-r--r--0001-systemd-logind-do-not-rely-on-directed-signals.patch55
-rw-r--r--PKGBUILD10
3 files changed, 66 insertions, 3 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 459bce89b74a..713483adb4d9 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = xorg-server-bug865
pkgver = 1.17.2
- pkgrel = 1
+ pkgrel = 2
url = http://xorg.freedesktop.org
arch = i686
arch = x86_64
@@ -59,6 +59,7 @@ pkgbase = xorg-server-bug865
source = xvfb-run.1
source = 0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch
source = 0002-dix-hook-up-the-unaccelerated-valuator-masks.patch
+ source = 0001-systemd-logind-do-not-rely-on-directed-signals.patch
source = freedesktop-bug-865.patch
sha256sums = f61120612728f2c5034671d0ca3e2273438c60aba93b3dda4a8aa40e6a257993
sha256sums = SKIP
@@ -67,6 +68,7 @@ pkgbase = xorg-server-bug865
sha256sums = 2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776
sha256sums = 3dc795002b8763a7d29db94f0af200131da9ce5ffc233bfd8916060f83a8fad7
sha256sums = 416a1422eed71efcebb1d893de74e7f27e408323a56c4df003db37f5673b3f96
+ sha256sums = 3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c
sha256sums = ad64fd593cd4cdfdd830c4295ebe1acd4259e45cfc12a258a162ecdbb11fd7ca
pkgname = xorg-server-bug865
diff --git a/0001-systemd-logind-do-not-rely-on-directed-signals.patch b/0001-systemd-logind-do-not-rely-on-directed-signals.patch
new file mode 100644
index 000000000000..9daadf6f6336
--- /dev/null
+++ b/0001-systemd-logind-do-not-rely-on-directed-signals.patch
@@ -0,0 +1,55 @@
+From 780a69aff0ff57ef813179a2f09556eaf488cdfc Mon Sep 17 00:00:00 2001
+From: David Herrmann <dh.herrmann@gmail.com>
+Date: Mon, 22 Jun 2015 21:13:05 +0200
+Subject: systemd-logind: do not rely on directed signals
+
+Right now, Xorg does not install DBus matches for "PauseDevice" /
+"ResumeDevice". Therefore, it should usually not receive those DBus
+signals from logind. It is just a coincidence that systemd-logind sends
+those signals in a directed manner right now. Therefore, dbus-daemon
+bypasses the broadcast matches.
+
+However, this is not ABI and Xorg should not rely on this. systemd-logind
+is free to send those signals as broadcasts, in which case Xorg will
+freeze the VT. Fix this by always installing those matches.
+
+Cc: Hans de Goede <hdegoede@redhat.com>
+Cc: Keith Packard <keithp@keithp.com>
+Reported-by: Jan Alexander Steffens <jan.steffens@gmail.com>
+Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
+Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+Tested-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+
+diff --git a/hw/xfree86/os-support/linux/systemd-logind.c b/hw/xfree86/os-support/linux/systemd-logind.c
+index 69e2f67..2612d9e 100644
+--- a/hw/xfree86/os-support/linux/systemd-logind.c
++++ b/hw/xfree86/os-support/linux/systemd-logind.c
+@@ -507,6 +507,24 @@ connect_hook(DBusConnection *connection, void *data)
+ goto cleanup;
+ }
+
++ dbus_bus_add_match(connection,
++ "type='signal',sender='org.freedesktop.login1',interface='org.freedesktop.login1.Session',member='PauseDevice'",
++ &error);
++ if (dbus_error_is_set(&error)) {
++ LogMessage(X_ERROR, "systemd-logind: could not add match: %s\n",
++ error.message);
++ goto cleanup;
++ }
++
++ dbus_bus_add_match(connection,
++ "type='signal',sender='org.freedesktop.login1',interface='org.freedesktop.login1.Session',member='ResumeDevice'",
++ &error);
++ if (dbus_error_is_set(&error)) {
++ LogMessage(X_ERROR, "systemd-logind: could not add match: %s\n",
++ error.message);
++ goto cleanup;
++ }
++
+ /*
+ * HdG: This is not useful with systemd <= 208 since the signal only
+ * contains invalidated property names there, rather than property, val
+--
+cgit v0.10.2
+
diff --git a/PKGBUILD b/PKGBUILD
index 7116ca5cebfa..a7a2ee97d942 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@
pkgbase=xorg-server-bug865
pkgname=xorg-server-bug865
pkgver=1.17.2
-pkgrel=1 # build first with 0.1 and then rebuild it after xf86-input-evdev rebuild
+pkgrel=2 # build first with 0.1 and then rebuild it after xf86-input-evdev rebuild
arch=('i686' 'x86_64')
license=('custom')
url="http://xorg.freedesktop.org"
@@ -22,6 +22,7 @@ source=(${url}/releases/individual/xserver/xorg-server-${pkgver}.tar.bz2{,.sig}
xvfb-run.1
0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch
0002-dix-hook-up-the-unaccelerated-valuator-masks.patch
+ "0001-systemd-logind-do-not-rely-on-directed-signals.patch"
freedesktop-bug-865.patch)
validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
'C383B778255613DFDB409D91DB221A6900000011'
@@ -33,6 +34,7 @@ sha256sums=('f61120612728f2c5034671d0ca3e2273438c60aba93b3dda4a8aa40e6a257993'
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
'3dc795002b8763a7d29db94f0af200131da9ce5ffc233bfd8916060f83a8fad7'
'416a1422eed71efcebb1d893de74e7f27e408323a56c4df003db37f5673b3f96'
+ '3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c'
'ad64fd593cd4cdfdd830c4295ebe1acd4259e45cfc12a258a162ecdbb11fd7ca')
prepare() {
@@ -41,13 +43,17 @@ prepare() {
patch -Np1 -i ../0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch
patch -Np1 -i ../0002-dix-hook-up-the-unaccelerated-valuator-masks.patch
+ # fix VT switching with kdbus; from upstream
+ patch -Np1 -i "../0001-systemd-logind-do-not-rely-on-directed-signals.patch"
+
# The patch for freedesktop bug 865
patch -Np1 -i "${srcdir}/freedesktop-bug-865.patch"
+
+ autoreconf -fvi
}
build() {
cd "xorg-server-${pkgver}"
- autoreconf -fi
./configure --prefix=/usr \
--enable-ipv6 \
--enable-dri \