diff options
author | kyak | 2015-07-02 22:26:43 +0300 |
---|---|---|
committer | kyak | 2015-07-02 22:26:43 +0300 |
commit | 587dbbd76a3daa4ae9011e4ba2e098c9ab4e0079 (patch) | |
tree | df7d71e9a8a6c0f31f46941204989c07e2fd6542 | |
parent | c54784938be08a7b39b677fa1ab5c35ec5e6853e (diff) | |
download | aur-587dbbd76a3daa4ae9011e4ba2e098c9ab4e0079.tar.gz |
Add a kdbus fix
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | 0001-systemd-logind-do-not-rely-on-directed-signals.patch | 55 | ||||
-rw-r--r-- | PKGBUILD | 10 |
3 files changed, 66 insertions, 3 deletions
@@ -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 + @@ -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 \ |