summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO16
-rw-r--r--0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch84
-rw-r--r--0001-systemd-logind-do-not-rely-on-directed-signals.patch55
-rw-r--r--PKGBUILD30
4 files changed, 74 insertions, 111 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c056b9aa948c..b7eee07584fe 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,5 +1,5 @@
pkgbase = xorg-server-dev
- pkgver = 1.17.99.902
+ pkgver = 1.18.0
pkgrel = 1
url = http://xorg.freedesktop.org
arch = i686
@@ -52,18 +52,16 @@ pkgbase = xorg-server-dev
makedepends = dri3proto
makedepends = libxshmfence
makedepends = libunwind
- source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.17.99.902.tar.bz2
- source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.17.99.902.tar.bz2.sig
- source = nvidia-drm-outputclass.conf
+ source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.18.0.tar.bz2
+ source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.18.0.tar.bz2.sig
source = xvfb-run
source = xvfb-run.1
- source = 0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch
- sha256sums = 0344d78d92ba5f1181e0adb98a9679d5906b06bc3c15978e1355b0d3be3749c0
+ source = 0001-systemd-logind-do-not-rely-on-directed-signals.patch
+ sha256sums = 195670819695d9cedd8dde95fbe069be0d0f488a77797a2d409f9f702daf312e
sha256sums = SKIP
- sha256sums = af1c3d2ea5de7f6a6b5f7c60951a189a4749d1495e5462f3157ae7ac8fe1dc56
sha256sums = ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9
sha256sums = 2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776
- sha256sums = bdcfc54ce0b64d29848efc56383d850778c6eeecf836c10b67ec2eda03a6160b
+ sha256sums = 3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c
pkgname = xorg-server-dev
pkgdesc = Xorg X server - Bleeding edge version
@@ -78,9 +76,9 @@ pkgname = xorg-server-dev
depends = libgcrypt
depends = libxau
depends = xorg-server-common-dev
- depends = xf86-input-evdev
depends = libxshmfence
depends = libgl
+ depends = xf86-input-driver
provides = X-ABI-VIDEODRV_VERSION=20.0
provides = X-ABI-XINPUT_VERSION=22.1
provides = X-ABI-EXTENSION_VERSION=9.0
diff --git a/0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch b/0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch
deleted file mode 100644
index a33840adcf09..000000000000
--- a/0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From ca355e9d6acab994453cdbb65cb213d09ee4a50f Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Wed, 14 Oct 2015 15:10:35 +0200
-Subject: [PATCH] linux: Do not call FatalError from xf86CloseConsole
-
-FatalError ends up calling xf86CloseConsole itself, so calling FatalError
-from within xf86CloseConsole is not a good idea.
-
-All the other error checking done in xf86CloseConsole uses
-xf86Msg(X_WARNING, ...) except for the switch_to() helper function,
-change things so that switch_to() also uses xf86Msg rather then FatalError
-when called from xf86CloseConsole.
-
-BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1269210
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- hw/xfree86/os-support/linux/lnx_init.c | 24 ++++++++++++++++--------
- 1 file changed, 16 insertions(+), 8 deletions(-)
-
-diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
-index ec06a05..9fec964 100644
---- a/hw/xfree86/os-support/linux/lnx_init.c
-+++ b/hw/xfree86/os-support/linux/lnx_init.c
-@@ -64,17 +64,25 @@ drain_console(int fd, void *closure)
- }
-
- static void
--switch_to(int vt, const char *from)
-+switch_to(int vt, Bool is_open)
- {
- int ret;
-
- SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt));
-- if (ret < 0)
-- FatalError("%s: VT_ACTIVATE failed: %s\n", from, strerror(errno));
-+ if (ret < 0) {
-+ if (is_open)
-+ FatalError("xf86OpenConsole: VT_ACTIVATE failed: %s\n", strerror(errno));
-+ else
-+ xf86Msg(X_WARNING, "xf86CloseConsole: VT_ACTIVATE failed: %s\n", strerror(errno));
-+ }
-
- SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt));
-- if (ret < 0)
-- FatalError("%s: VT_WAITACTIVE failed: %s\n", from, strerror(errno));
-+ if (ret < 0) {
-+ if (is_open)
-+ FatalError("xf86OpenConsole: VT_WAITACTIVE failed: %s\n", strerror(errno));
-+ else
-+ xf86Msg(X_WARNING, "xf86CloseConsole: VT_WAITACTIVE failed: %s\n", strerror(errno));
-+ }
- }
-
- #pragma GCC diagnostic push
-@@ -233,7 +241,7 @@ xf86OpenConsole(void)
- /*
- * now get the VT. This _must_ succeed, or else fail completely.
- */
-- switch_to(xf86Info.vtno, "xf86OpenConsole");
-+ switch_to(xf86Info.vtno, TRUE);
-
- SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_GETMODE, &VT));
- if (ret < 0)
-@@ -294,7 +302,7 @@ xf86OpenConsole(void)
- else { /* serverGeneration != 1 */
- if (!xf86Info.ShareVTs && xf86Info.autoVTSwitch) {
- /* now get the VT */
-- switch_to(xf86Info.vtno, "xf86OpenConsole");
-+ switch_to(xf86Info.vtno, TRUE);
- }
- }
- }
-@@ -346,7 +354,7 @@ xf86CloseConsole(void)
- * Perform a switch back to the active VT when we were started
- */
- if (activeVT >= 0) {
-- switch_to(activeVT, "xf86CloseConsole");
-+ switch_to(activeVT, FALSE);
- activeVT = -1;
- }
- }
---
-2.5.0
-
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 f47a12177da8..1786c75b1f56 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
_pkgbase=xorg-server
pkgname=('xorg-server-dev' 'xorg-server-xephyr-dev' 'xorg-server-xdmx-dev' 'xorg-server-xvfb-dev' 'xorg-server-xnest-dev' 'xorg-server-xwayland-dev' 'xorg-server-common-dev' 'xorg-server-devel-dev')
-pkgver=1.17.99.902 # 1.18.0 RC2: http://lists.x.org/archives/xorg-announce/2015-October/002646.html
+pkgver=1.18.0 # http://lists.x.org/archives/xorg-announce/2015-November/002654.html
pkgrel=1
arch=('i686' 'x86_64')
license=('custom')
@@ -14,27 +14,25 @@ makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtra
'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres'
'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util' 'glproto' 'dri2proto' 'libgcrypt' 'libepoxy'
'xcb-util' 'xcb-util-image' 'xcb-util-renderutil' 'xcb-util-wm' 'xcb-util-keysyms' 'dri3proto'
- 'libxshmfence' 'libunwind')
+ 'libxshmfence' 'libunwind')
source=(${url}/releases/individual/xserver/${_pkgbase}-${pkgver}.tar.bz2{,.sig}
- nvidia-drm-outputclass.conf
xvfb-run
xvfb-run.1
- 0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch)
+ 0001-systemd-logind-do-not-rely-on-directed-signals.patch)
validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
'C383B778255613DFDB409D91DB221A6900000011'
'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3')
-sha256sums=('0344d78d92ba5f1181e0adb98a9679d5906b06bc3c15978e1355b0d3be3749c0'
+sha256sums=('195670819695d9cedd8dde95fbe069be0d0f488a77797a2d409f9f702daf312e'
'SKIP'
- 'af1c3d2ea5de7f6a6b5f7c60951a189a4749d1495e5462f3157ae7ac8fe1dc56'
'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
- 'bdcfc54ce0b64d29848efc56383d850778c6eeecf836c10b67ec2eda03a6160b')
+ '3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c')
prepare() {
cd "${_pkgbase}-${pkgver}"
- msg2 "fix FS#46741, taken from Fedora"
- patch -Np1 -i ../0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch
+ msg2 "fix VT switching with kdbus; from upstream"
+ patch -Np1 -i ../0001-systemd-logind-do-not-rely-on-directed-signals.patch
msg2 "Starting autoreconf..."
autoreconf -fvi
@@ -57,9 +55,7 @@ build() {
--enable-xephyr \
--enable-glamor \
--enable-xwayland \
- --enable-glx-tls \
--enable-kdrive \
- --enable-kdrive-evdev \
--enable-kdrive-kbd \
--enable-kdrive-mouse \
--enable-config-udev \
@@ -77,7 +73,7 @@ build() {
--with-xkb-output=/var/lib/xkb \
--with-fontrootdir=/usr/share/fonts \
--with-sha1=libgcrypt
-
+
# --without-dtrace \
# --disable-linux-acpi --disable-linux-apm \
@@ -116,7 +112,8 @@ package_xorg-server-common-dev() {
package_xorg-server-dev() {
pkgdesc="Xorg X server - Bleeding edge version"
- depends=(libepoxy libxdmcp libxfont libpciaccess libdrm pixman libgcrypt libxau xorg-server-common-dev xf86-input-evdev libxshmfence libgl)
+ depends=(libepoxy libxdmcp libxfont libpciaccess libdrm pixman libgcrypt libxau xorg-server-common-dev libxshmfence libgl xf86-input-driver)
+
# see src/xorg-server-*/hw/xfree86/common/xf86Module.h for ABI versions - we provide major numbers that drivers can depend on
# and /usr/lib/pkgconfig/xorg-server.pc in xorg-server-devel-dev pkg
for VAR in VIDEODRV XINPUT EXTENSION; do
@@ -132,11 +129,10 @@ package_xorg-server-dev() {
msg2 "Starting make install..."
make DESTDIR="${pkgdir}" install
-
+
# distro specific files must be installed in /usr/share/X11/xorg.conf.d
install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d"
- install -m644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/"
-
+
# Needed for non-mesa drivers, libgl will restore it
mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
"${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg"
@@ -152,8 +148,6 @@ package_xorg-server-dev() {
rm -rf "${pkgdir}/usr/lib/pkgconfig"
rm -rf "${pkgdir}/usr/include"
rm -rf "${pkgdir}/usr/share/aclocal"
- # this is now part of xf86-input-evdev
- rm -rf "${pkgdir}/usr/share/X11/xorg.conf.d/10-evdev.conf"
}
package_xorg-server-xephyr-dev() {